mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-06-16 04:32:47 +02:00
Make timestamp interpolation work with mpeg2 field pictures.
Cleaner/simpler solutions are welcome. Originally committed as revision 12156 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -2788,6 +2788,7 @@ typedef struct AVCodecParserContext {
|
||||
/* video info */
|
||||
int pict_type; /* XXX: Put it back in AVCodecContext. */
|
||||
int repeat_pict; /* XXX: Put it back in AVCodecContext. */
|
||||
int parity;
|
||||
int64_t pts; /* pts of the current frame */
|
||||
int64_t dts; /* dts of the current frame */
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
|
||||
int horiz_size_ext, vert_size_ext, bit_rate_ext;
|
||||
//FIXME replace the crap with get_bits()
|
||||
s->repeat_pict = 0;
|
||||
s->parity = 0;
|
||||
buf_end = buf + buf_size;
|
||||
while (buf < buf_end) {
|
||||
start_code= -1;
|
||||
@@ -105,8 +106,11 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
|
||||
|
||||
/* the packet only represents half a frame
|
||||
XXX,FIXME maybe find a different solution */
|
||||
if(picture_structure != 3)
|
||||
if(picture_structure != 3){
|
||||
s->repeat_pict = -1;
|
||||
s->parity = picture_structure-1;
|
||||
}else
|
||||
s->parity = !top_field_first;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user