[vlc-devel] EsOutDecodersStopBuffering screws up timestamps when transcoding

Laurent Aimar fenrir at via.ecp.fr
Tue Nov 4 20:48:28 CET 2008


On Tue, Nov 04, 2008, David Flynn wrote:
> Hi,
> 
> While trying to solve an issue with timestamps, i've discoverd that time
> briefly jumps bacwards when transcoding and input_clock_ChangeSystemOrigin
> gets called within EsOutDecodersStopBuffering.
> 
> Note that (B) now comes before (A).  This is unfortunate, since it
> screws up everything downstream related to timestamps; ie, it isn't
> possible to produce a correct stream.
> 
> If people wish to test it, the above example is avaliable with:
> 
> $ git checkout -b test-df-insanity origin/master
> $ git pull git://repo.or.cz/vlc/davidf-public.git df-rawvid
> 
> (Contains two patches, one to make rawvid actually do timestamps
> accurately [I'll submit this shortly for review], and another that
> adds msg_Dbg()s as above).
> 
> It looks like the issue is to do with:
> input_clock_ChangeSystemOrigin( p_sys->p_pgrm->p_clock, i_ts_delay - i_buffering_duration );
> 
> (if i remove that line, the clock doesn't become skewed)
> 
> This issue doesn't seem to occur when not transcoding (ie playback)
 The sout code in src/input/decoder.c is incomplete. I will finish it.
Thanks for the report.

-- 
fenrir



More information about the vlc-devel mailing list