s->frame_rate = (s->frame_rate * frame_rate_ext_n) / frame_rate_ext_d;
dprintf("sequence extension\n");
s->mpeg2 = 1;
+ s->avctx->sub_id = 2; /* indicates mpeg2 found */
}
static void mpeg_decode_quant_matrix_extension(MpegEncContext *s)
Mpeg1Context *s1 = avctx->priv_data;
MpegEncContext *s = &s1->mpeg_enc_ctx;
int width, height, i, v, j;
-
+
init_get_bits(&s->gb, buf, buf_size);
width = get_bits(&s->gb, 12);
s->avctx = avctx;
avctx->width = width;
avctx->height = height;
- avctx->frame_rate = frame_rate_tab[s->frame_rate_index];
+ if (s->frame_rate_index >= 9) {
+ /* at least give a valid frame rate (some old mpeg1 have this) */
+ avctx->frame_rate = 25 * FRAME_RATE_BASE;
+ } else {
+ avctx->frame_rate = frame_rate_tab[s->frame_rate_index];
+ }
s->frame_rate = avctx->frame_rate;
avctx->bit_rate = s->bit_rate;
s->picture_structure = PICT_FRAME;
s->frame_pred_frame_dct = 1;
s->mpeg2 = 0;
+ avctx->sub_id = 1; /* indicates mpeg1 */
return 0;
}