diff parser.c @ 9090:cecf81f93756 libavcodec

Call ff_fetch_timestamp() for mpeg1/2 when a picture start code is found instead of calling it at the end of a frame with a large negative offset. This significantly reduces the maximal distance in container packets between the point where the first byte of the "access unit" was stored and where we call ff_fetch_timestamp() thus reducing the constraints on our parser. Also change the parser from next_frame_offset to cur, this is needed because now the reference is from container packet start instead of frame start. (i previously misinterpreted this as bug)
author michael
date Mon, 02 Mar 2009 14:53:18 +0000
parents d4c12f2d226b
children 4875c1559060
line wrap: on
line diff
--- a/parser.c	Mon Mar 02 09:22:17 2009 +0000
+++ b/parser.c	Mon Mar 02 14:53:18 2009 +0000
@@ -87,7 +87,7 @@
     s->dts= s->pts= AV_NOPTS_VALUE;
     s->offset= 0;
     for(i = 0; i < AV_PARSER_PTS_NB; i++) {
-        if (   s->next_frame_offset + off >= s->cur_frame_offset[i]
+        if (   s->cur_offset + off >= s->cur_frame_offset[i]
             &&(s->     frame_offset       <  s->cur_frame_offset[i] || !s->frame_offset)
             //check is disabled  becausue mpeg-ts doesnt send complete PES packets
             && /*s->next_frame_offset + off <*/  s->cur_frame_end[i]){