1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

avcodec/mjpegdec fix last_dc for bits != 8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-09-06 00:55:32 +02:00
parent ae57e82469
commit 15071ed4fc

View File

@ -760,7 +760,7 @@ static int handle_rstn(MJpegDecodeContext *s, int nb_components)
if(s->restart_count == 0 && s->avctx->codec_id == AV_CODEC_ID_THP){ if(s->restart_count == 0 && s->avctx->codec_id == AV_CODEC_ID_THP){
align_get_bits(&s->gb); align_get_bits(&s->gb);
for (i = 0; i < nb_components; i++) /* reset dc */ for (i = 0; i < nb_components; i++) /* reset dc */
s->last_dc[i] = 1024; s->last_dc[i] = (4 << s->bits);
} }
i = 8 + ((-get_bits_count(&s->gb)) & 7); i = 8 + ((-get_bits_count(&s->gb)) & 7);
@ -774,7 +774,7 @@ static int handle_rstn(MJpegDecodeContext *s, int nb_components)
skip_bits(&s->gb, 8); skip_bits(&s->gb, 8);
if (get_bits_left(&s->gb) >= 8 && (get_bits(&s->gb, 8) & 0xF8) == 0xD0) { if (get_bits_left(&s->gb) >= 8 && (get_bits(&s->gb, 8) & 0xF8) == 0xD0) {
for (i = 0; i < nb_components; i++) /* reset dc */ for (i = 0; i < nb_components; i++) /* reset dc */
s->last_dc[i] = 1024; s->last_dc[i] = (4 << s->bits);
reset = 1; reset = 1;
} else } else
skip_bits_long(&s->gb, pos - get_bits_count(&s->gb)); skip_bits_long(&s->gb, pos - get_bits_count(&s->gb));
@ -1315,7 +1315,7 @@ int ff_mjpeg_decode_sos(MJpegDecodeContext *s, const uint8_t *mb_bitmask,
next_field: next_field:
for (i = 0; i < nb_components; i++) for (i = 0; i < nb_components; i++)
s->last_dc[i] = 1024; s->last_dc[i] = (4 << s->bits);
if (s->lossless) { if (s->lossless) {
av_assert0(s->picture_ptr == &s->picture); av_assert0(s->picture_ptr == &s->picture);