set codec bps to grayscale bits, fix 256grey.mov

Originally committed as revision 12272 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Baptiste Coudurier 2008-02-28 16:05:19 +00:00
parent 2c62e737f4
commit 0de2157fa4

View File

@ -725,7 +725,8 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
st->codec->bits_per_sample = get_be16(pb); /* depth */
st->codec->color_table_id = get_be16(pb); /* colortable id */
dprintf(c->fc, "depth %d, ctab id %d\n",
st->codec->bits_per_sample, st->codec->color_table_id);
/* figure out the palette situation */
color_depth = st->codec->bits_per_sample & 0x1F;
color_greyscale = st->codec->bits_per_sample & 0x20;
@ -735,6 +736,7 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
(color_depth == 8)) {
if (color_greyscale) {
/* compute the greyscale palette */
st->codec->bits_per_sample = color_depth;
color_count = 1 << color_depth;
color_index = 255;
color_dec = 256 / (color_count - 1);