aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2014-04-05 14:14:30 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2014-04-12 14:07:19 -0400
commitd9a542ace1b9ca5c0ea6d758127d03d4124b7801 (patch)
tree4f447d1b6fcb2424dc7a55373fc4388e31d38d6a
parent20c38c9c18b75e62f6c489d9b95bea88efdf3915 (diff)
downloadffmpeg-d9a542ace1b9ca5c0ea6d758127d03d4124b7801.tar.gz
swscale: Set alpha to opaque for internal palettes.
Fixes conversion of pal8 to rgb formats with alpha. Updated references for 2 FATE tests which previously encoded fully transparent images. Based on a patch by Baptiste Coudurier <baptiste.coudurier@gmail.com>
-rw-r--r--libswscale/swscale_unscaled.c10
-rw-r--r--tests/ref/fate/targa-conformance-CCM82
-rw-r--r--tests/ref/fate/targa-conformance-UCM82
3 files changed, 7 insertions, 7 deletions
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 9e50d48ac3..da1bde13b0 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -1217,33 +1217,33 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
y = av_clip_uint8((RY * r + GY * g + BY * b + ( 33 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
u = av_clip_uint8((RU * r + GU * g + BU * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
v = av_clip_uint8((RV * r + GV * g + BV * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
- c->pal_yuv[i] = y + (u << 8) + (v << 16);
+ c->pal_yuv[i] = y + (u << 8) + (v << 16) + (0xFFU << 24);
switch (c->dstFormat) {
case AV_PIX_FMT_BGR32:
#if !HAVE_BIGENDIAN
case AV_PIX_FMT_RGB24:
#endif
- c->pal_rgb[i] = r + (g << 8) + (b << 16);
+ c->pal_rgb[i] = r + (g << 8) + (b << 16) + (0xFFU << 24);
break;
case AV_PIX_FMT_BGR32_1:
#if HAVE_BIGENDIAN
case AV_PIX_FMT_BGR24:
#endif
- c->pal_rgb[i] = (r << 8) + (g << 16) + ((unsigned)b << 24);
+ c->pal_rgb[i] = 0xFF + (r << 8) + (g << 16) + ((unsigned)b << 24);
break;
case AV_PIX_FMT_RGB32_1:
#if HAVE_BIGENDIAN
case AV_PIX_FMT_RGB24:
#endif
- c->pal_rgb[i] = (b << 8) + (g << 16) + ((unsigned)r << 24);
+ c->pal_rgb[i] = 0xFF + (b << 8) + (g << 16) + ((unsigned)r << 24);
break;
case AV_PIX_FMT_RGB32:
#if !HAVE_BIGENDIAN
case AV_PIX_FMT_BGR24:
#endif
default:
- c->pal_rgb[i] = b + (g << 8) + (r << 16);
+ c->pal_rgb[i] = b + (g << 8) + (r << 16) + (0xFFU << 24);
}
}
}
diff --git a/tests/ref/fate/targa-conformance-CCM8 b/tests/ref/fate/targa-conformance-CCM8
index aad3bfc955..45bb18167b 100644
--- a/tests/ref/fate/targa-conformance-CCM8
+++ b/tests/ref/fate/targa-conformance-CCM8
@@ -1,2 +1,2 @@
#tb 0: 1/25
-0, 0, 0, 1, 65536, 0xcf98bc29
+0, 0, 0, 1, 65536, 0x47e97fe9
diff --git a/tests/ref/fate/targa-conformance-UCM8 b/tests/ref/fate/targa-conformance-UCM8
index aad3bfc955..45bb18167b 100644
--- a/tests/ref/fate/targa-conformance-UCM8
+++ b/tests/ref/fate/targa-conformance-UCM8
@@ -1,2 +1,2 @@
#tb 0: 1/25
-0, 0, 0, 1, 65536, 0xcf98bc29
+0, 0, 0, 1, 65536, 0x47e97fe9