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:
Michael Niedermayer
2008-02-20 03:20:06 +00:00
parent 8815bf011e
commit ff2635b273
4 changed files with 29 additions and 12 deletions
+1
View File
@@ -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 */
+5 -1
View File
@@ -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;
}