aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/parser.c
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-06-21 03:50:26 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-06-21 03:50:26 +0000
commitb27758bc02c7111d32c1e0d36d7cbdb4ce5d0400 (patch)
tree23deea9d637b899e527425fbcc105720957a8962 /libavcodec/parser.c
parentf356fc57994188eaf3499c74937716ae116563cd (diff)
downloadffmpeg-b27758bc02c7111d32c1e0d36d7cbdb4ce5d0400.tar.gz
Fetch timestamp for the first frame of field only if frame_offset and
next_frame_offset are not set, because second field has next frame offset set but not frame_offset, otherwise this wrongly fetch timestamp for the second field. Originally committed as revision 19244 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/parser.c')
-rw-r--r--libavcodec/parser.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/parser.c b/libavcodec/parser.c
index 69215a47d0..0b007e9ee4 100644
--- a/libavcodec/parser.c
+++ b/libavcodec/parser.c
@@ -89,7 +89,8 @@ void ff_fetch_timestamp(AVCodecParserContext *s, int off, int remove){
s->offset= 0;
for(i = 0; i < AV_PARSER_PTS_NB; i++) {
if ( s->cur_offset + off >= s->cur_frame_offset[i]
- &&(s-> frame_offset < s->cur_frame_offset[i] || !s->frame_offset)
+ && (s->frame_offset < s->cur_frame_offset[i] ||
+ (!s->frame_offset && !s->next_frame_offset)) // first field/frame
//check is disabled becausue mpeg-ts doesnt send complete PES packets
&& /*s->next_frame_offset + off <*/ s->cur_frame_end[i]){
s->dts= s->cur_frame_dts[i];