|
|
|
@@ -505,6 +505,8 @@ static void svq1_parse_string(GetBitContext *bitbuf, uint8_t *out) |
|
|
|
static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) |
|
|
|
{ |
|
|
|
int frame_size_code; |
|
|
|
int width = s->width; |
|
|
|
int height = s->height; |
|
|
|
|
|
|
|
skip_bits(bitbuf, 8); /* temporal_reference */ |
|
|
|
|
|
|
|
@@ -544,15 +546,15 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) |
|
|
|
|
|
|
|
if (frame_size_code == 7) { |
|
|
|
/* load width, height (12 bits each) */ |
|
|
|
s->width = get_bits(bitbuf, 12); |
|
|
|
s->height = get_bits(bitbuf, 12); |
|
|
|
width = get_bits(bitbuf, 12); |
|
|
|
height = get_bits(bitbuf, 12); |
|
|
|
|
|
|
|
if (!s->width || !s->height) |
|
|
|
if (!width || !height) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} else { |
|
|
|
/* get width, height from table */ |
|
|
|
s->width = ff_svq1_frame_size_table[frame_size_code].width; |
|
|
|
s->height = ff_svq1_frame_size_table[frame_size_code].height; |
|
|
|
width = ff_svq1_frame_size_table[frame_size_code].width; |
|
|
|
height = ff_svq1_frame_size_table[frame_size_code].height; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -575,6 +577,8 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) |
|
|
|
skip_bits(bitbuf, 8); |
|
|
|
} |
|
|
|
|
|
|
|
s->width = width; |
|
|
|
s->height = height; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|