mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-14 22:22:59 +02:00
Parse frame size code, see "svq3.c: parse frame size" thread on ML.
Originally committed as revision 19583 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
73f04f5e7d
commit
faccfeec0e
@ -819,14 +819,25 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
|
||||
if (extradata && !memcmp(extradata, "SEQH", 4)) {
|
||||
|
||||
GetBitContext gb;
|
||||
int frame_size_code;
|
||||
|
||||
size = AV_RB32(&extradata[4]);
|
||||
init_get_bits(&gb, extradata + 8, size*8);
|
||||
|
||||
/* 'frame size code' and optional 'width, height' */
|
||||
if (get_bits(&gb, 3) == 7) {
|
||||
skip_bits(&gb, 12);
|
||||
skip_bits(&gb, 12);
|
||||
frame_size_code = get_bits(&gb, 3);
|
||||
switch (frame_size_code) {
|
||||
case 0: avctx->width = 160; avctx->height = 120; break;
|
||||
case 1: avctx->width = 128; avctx->height = 96; break;
|
||||
case 2: avctx->width = 176; avctx->height = 144; break;
|
||||
case 3: avctx->width = 352; avctx->height = 288; break;
|
||||
case 4: avctx->width = 704; avctx->height = 576; break;
|
||||
case 5: avctx->width = 240; avctx->height = 180; break;
|
||||
case 6: avctx->width = 320; avctx->height = 240; break;
|
||||
case 7:
|
||||
avctx->width = get_bits(&gb, 12);
|
||||
avctx->height = get_bits(&gb, 12);
|
||||
break;
|
||||
}
|
||||
|
||||
h->halfpel_flag = get_bits1(&gb);
|
||||
|
Loading…
x
Reference in New Issue
Block a user