[Ffmpeg-cvslog] r8424 - trunk/libavformat/utils.c

Michael Niedermayer michaelni
Tue Mar 20 14:00:39 CET 2007


Hi

On Tue, Mar 20, 2007 at 01:38:27PM +0100, Baptiste Coudurier wrote:
> Michael Niedermayer wrote:
> > Hi
> > 
> > On Tue, Mar 20, 2007 at 12:46:05PM +0100, Baptiste Coudurier wrote:
> >> Michael Niedermayer wrote:
> >>> Hi
> >>>
> >>> On Tue, Mar 20, 2007 at 11:06:34AM +0100, Baptiste Coudurier wrote:
> >>>> Baptiste Coudurier wrote:
> >>>>> Hi
> >>>>>
> >>>>> michael wrote:
> >>>>>> Author: michael
> >>>>>> Date: Fri Mar 16 23:59:45 2007
> >>>>>> New Revision: 8424
> >>>>>>
> >>>>>> Modified:
> >>>>>>    trunk/libavformat/utils.c
> >>>>>>
> >>>>>> Log:
> >>>>>> add a delay variable to hold the timestamp buffer size
> >>>>>> set cur_dts correctly for delay>1
> >>>>>>
> >>>>>> [...]
> >>>>>> @@ -611,8 +612,7 @@ static void compute_pkt_fields(AVFormatC
> >>>>>>      }
> >>>>>>  
> >>>>>>      if(st->cur_dts == AV_NOPTS_VALUE){
> >>>>>> -        if(presentation_delayed) st->cur_dts = -pkt->duration;
> >>>>>> -        else                     st->cur_dts = 0;
> >>>>>> +        st->cur_dts = -delay * pkt->duration;
> >>>>>>      }
> >>>>>>  
> >>>>> Would adding a check for pkt->duration != AV_NOPTS_VALUE hurt here ?
> >>>> err read != 0, Im not yet awake.
> >>> yes it would hurt, all code afterwards assumes cur_dts != AV_NOPTS_VALUE
> >> So, what the code should do ?
> > 
> > what it does probably
> > 
> > 
> >> Lavf behaviour changed, old code returned pts to AV_NOPTS_VALUE,
> >> which is obviously more correct than always 0.
> > 
> > always returning AV_NOPTS_VALUE is hardly more correct, also the change
> > you quote does not cause this
> 
> IMHO AV_NOPTS_VALUE at least indicate that value is not
> set/present/valid, 0 means a valid timestamp of 0.
> 
> After checking it seems to be r8428, it seems at least one of
> dts/pts/duration
> needs to be available to compute pts/dts.
> 
> > you will have to send a proper bugreport or debug it yourself like everyone
> > else too i cant guess which codecs and containers you used ...
> 
> Right, sure, SWF/zeldaADPCM2bit.swf, should I use another thread ?
> Audio has no timestamps and frame size for adpcm is not computed,
> situation is a bit special.

the swf demuxer is broken it doesnt set timestamps, see the flash file
format spec (Frame Subdivision for Streaming Sound) this describes how
to mux audio with proper AV sync, just do the inverse in the demuxer and
you have exact timestamps

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20070320/271f2275/attachment.pgp>



More information about the ffmpeg-cvslog mailing list