mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
mpeg1/2 identifier - fixed frame rate for some bad mpeg1 streams
Originally committed as revision 542 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
4d7a0a0593
commit
fb4a4a5607
@ -1283,6 +1283,7 @@ static void mpeg_decode_sequence_extension(MpegEncContext *s)
|
||||
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)
|
||||
@ -1500,7 +1501,12 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx,
|
||||
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;
|
||||
|
||||
@ -1561,6 +1567,7 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx,
|
||||
s->picture_structure = PICT_FRAME;
|
||||
s->frame_pred_frame_dct = 1;
|
||||
s->mpeg2 = 0;
|
||||
avctx->sub_id = 1; /* indicates mpeg1 */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user