mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avformat/mov: Do not compute a grayscale palette for cinepak in mov.
This was never done for avi files, the decoder always produced output no matter if a palette was computed or not. Since a non-standard palette was needed, this simplifies the code. See issue 1067 and ticket #165. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
251c96a70b
commit
d63e994361
@ -1314,6 +1314,9 @@ static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb,
|
||||
/* figure out the palette situation */
|
||||
color_depth = st->codec->bits_per_coded_sample & 0x1F;
|
||||
color_greyscale = st->codec->bits_per_coded_sample & 0x20;
|
||||
/* Do not create a greyscale palette for cinepak */
|
||||
if (color_greyscale && st->codec->codec_id == AV_CODEC_ID_CINEPAK)
|
||||
return;
|
||||
|
||||
/* if the depth is 2, 4, or 8 bpp, file is palettized */
|
||||
if ((color_depth == 2) || (color_depth == 4) || (color_depth == 8)) {
|
||||
@ -1329,9 +1332,6 @@ static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb,
|
||||
color_index = 255;
|
||||
color_dec = 256 / (color_count - 1);
|
||||
for (j = 0; j < color_count; j++) {
|
||||
if (st->codec->codec_id == AV_CODEC_ID_CINEPAK){
|
||||
r = g = b = color_count - 1 - color_index;
|
||||
} else
|
||||
r = g = b = color_index;
|
||||
sc->palette[j] = (0xFFU << 24) | (r << 16) | (g << 8) | (b);
|
||||
color_index -= color_dec;
|
||||
|
Loading…
Reference in New Issue
Block a user