|
|
|
@ -81,7 +81,7 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s, |
|
|
|
|
pc->height |=( vert_size_ext << 12); |
|
|
|
|
avctx->bit_rate += (bit_rate_ext << 18) * 400; |
|
|
|
|
avcodec_set_dimensions(avctx, pc->width, pc->height); |
|
|
|
|
avctx->time_base.den = pc->frame_rate.den * (frame_rate_ext_n + 1); |
|
|
|
|
avctx->time_base.den = pc->frame_rate.den * (frame_rate_ext_n + 1) * 2; |
|
|
|
|
avctx->time_base.num = pc->frame_rate.num * (frame_rate_ext_d + 1); |
|
|
|
|
avctx->codec_id = CODEC_ID_MPEG2VIDEO; |
|
|
|
|
avctx->sub_id = 2; /* forces MPEG2 */ |
|
|
|
@ -95,14 +95,15 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s, |
|
|
|
|
progressive_frame = buf[4] & (1 << 7); |
|
|
|
|
|
|
|
|
|
/* check if we must repeat the frame */ |
|
|
|
|
s->repeat_pict = 1; |
|
|
|
|
if (repeat_first_field) { |
|
|
|
|
if (pc->progressive_sequence) { |
|
|
|
|
if (top_field_first) |
|
|
|
|
s->repeat_pict = 4; |
|
|
|
|
s->repeat_pict = 5; |
|
|
|
|
else |
|
|
|
|
s->repeat_pict = 2; |
|
|
|
|
s->repeat_pict = 3; |
|
|
|
|
} else if (progressive_frame) { |
|
|
|
|
s->repeat_pict = 1; |
|
|
|
|
s->repeat_pict = 2; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|