Also there are some streams which play without single sychro warning through live.com input but produce continuous synchro problems via standard VLC input...
Perhaps we need to implement clock synchronization based on RTP timestamps?
Here is what happens:
main warning: audio drift is too big (121949), dropping buffermain warning: resampling stopped after 7329301 usec (drift: -42755)main warning: buffer is 40992 late, triggering upsamplingmain warning: resampling stopped after 11681543 usec (drift: -12159)main warning: buffer is 41406 late, triggering upsamplingmain warning: resampling stopped after 3013031 usec (drift: 10287)main warning: buffer is 41295 late, triggering upsamplingmain warning: resampling stopped after 4237543 usec (drift: -24767)main warning: buffer is 41518 late, triggering upsamplingmain warning: resampling stopped after 4021932 usec (drift: 4351)main warning: buffer is 40541 late, triggering upsamplingmain warning: resampling stopped after 812689 usec (drift: -12016)main warning: output date isn't PTS date, requesting resampling (63655)main warning: buffer is 40452 late, triggering upsamplingmain warning: timing screwed, stopping resamplingmain warning: buffer is 65397 late, triggering upsamplingmain warning: resampling stopped after 13625783 usec (drift: -4295)main warning: output date isn't PTS date, requesting resampling (43687)main warning: buffer is 40083 late, triggering upsamplingmain warning: timing screwed, stopping resamplingmain warning: buffer is 58007 late, triggering upsamplingmain warning: resampling stopped after 4667434 usec (drift: -52786)main warning: buffer is 50834 late, triggering upsamplingmain warning: resampling stopped after 2631843 usec (drift: -38816)main warning: buffer is 41778 late, triggering upsamplingmain warning: resampling stopped after 1050067 usec (drift: -11205)
I realise that a PROPER fix for this requires a big rewrite and lots of work etc. But right now, VLC will often just stop playback with messages like 'late picture skipped (2688000)'.. waiting forever for the sync to catch up.
My suggestion: just build some temporary fix that will reset the PCR, reboot vlc, or quit vlc (so the shell can restart it) if the desync hits some optional limit!
See my forum topic for more details/suggestions. Please guys, even a temp fix is worth implementing because:
For serious use (a video stream server/transcoder you want to turn on and run forever) vlc is useless, it will just stop. You need someone to sit next to your server permanently and restart now and then!
For normal users who just want to watch a video a 'hiccup' (freeze, continue) is annoying but acceptable. A permanent pause is not they will switch to a 'better' player.
A lot of players (windows media, real, quicktime) also do the same, they just need to 'rebuffer' .. riight.
It is possible that it is related, however Ive heard of more situations (not network-related, but DVD playback with a scratched DVD for example) where a very similar situation happens.
So I essentially would generalize this to:
If the source is not perfect (enough) in some way, VLC sometimes stops decoding
If VLC stops, it will idle forever
If a source is 'bad' a user will often prefer a player that 'does its best, retries' over a player that 'gives up'.