[FFmpeg-cvslog] r18959 - in trunk: libavcodec/mpeg12.c tests/seek.regression.ref

Reimar Döffinger Reimar.Doeffinger
Wed Jun 3 12:06:08 CEST 2009


On Wed, May 27, 2009 at 11:08:11AM -0700, Baptiste Coudurier wrote:
> On 5/27/2009 5:40 AM, Michael Niedermayer wrote:
> > On Tue, May 26, 2009 at 11:38:19PM -0700, Baptiste Coudurier wrote:
> >> On 5/26/2009 9:40 PM, Mike Melanson wrote:
> >>> bcoudurier wrote:
> >>>> Author: bcoudurier
> >>>> Date: Wed May 27 02:14:32 2009
> >>>> New Revision: 18959
> >>>>
> >>>> Log:
> >>>> Fix off by one offset with fetch_timestamps, pts_parser_problem.mpg.
> >>>> Patch by Wolfram Gloger, wmglo at dentm dot med dot uni-muenchen dot de.
> >>>>
> >>>> Modified:
> >>>>    trunk/libavcodec/mpeg12.c
> >>>>    trunk/tests/seek.regression.ref
> >>> Do you have any idea why this might have broken the pva-demux test?
> >>>
> >>> http://fate.multimedia.cx/index.php?test_spec=298
> >>>
> >>> The file errors out with the following message:
> >>>
> >>> [NULL @ 0x120ab5730]error, non monotone timestamps 50151 >= 42951
> >>> av_interleaved_write_frame(): Error while opening file
> >> Yes, that's because now frames have pts correctly set :)
> >> This PVA samples does not start with a SEQ EXT therefore first frames
> >> dts are not computed accurately.
> >>
> > 
> >> Btw, any reason for not setting has_b_frames when a B frame is
> >> encountered or I frame with temp_ref != 0 ?
> > 
> > i guess setting has_b_frames when a b frame is hit is ok, though maybe
> > this could be done at a more central place
> 
> In compute_pkt_fields ? Patch attached.
> 
> -- 
> Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
> Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
> FFmpeg maintainer                                  http://www.ffmpeg.org

> Index: libavformat/utils.c
> ===================================================================
> --- libavformat/utils.c	(revision 18964)
> +++ libavformat/utils.c	(working copy)
> @@ -739,6 +746,9 @@
>      int num, den, presentation_delayed, delay, i;
>      int64_t offset;
>  
> +    if (pc && pc->pict_type == FF_B_TYPE)
> +        st->codec->has_b_frames = 1;
> +
>      /* do we have a video B-frame ? */
>      delay= st->codec->has_b_frames;
>      presentation_delayed = 0;

Hm, this mostly fixes pva demuxing, instead of many timestamp issues
there is then only a single one:
[NULL @ 0x2c3e010]error, non monotone timestamps 35751 >= 35751
But I think there's no way the time stamps can be correct, the file IMO
plays at half speed (I admit I have not seen how fast it played
previously).



More information about the ffmpeg-cvslog mailing list