[vlc-devel] "Late picture skipped" thrashing condition receiving mmsh over the Net

Mark Moriarty mfmbusiness at earthlink.net
Mon Mar 28 04:15:29 CEST 2005


Problem:  VLC has some difficulty with acting as a client for mmsh Internet
streaming, particularly at higher bitrates.  When running against a 1.7Mbit
video stream you will get very high numbers of "late picture skipped" debug
messages, which then roll into other video-type warning and error messages.
In sdome cases VLC will recover, though the play remains poor (many sections
of garbled video, with late picture messages), while in other cases the
video pretty much goes belly up -- the software won't recover, keeps
generating video-type warnings and errors.

In video_output.c, I dropped a debugging statement at Line 815:
msg_Warn( p_vout,"%d", p_picture->date);

(I know, I know, I should have used a different format specifier -- it ends
up printing out negative numbers)

This is immediately before the condition test which generates the "late
picture skipped" messages.

I connected to one of Trax' high-speed test streams.  What you see is the
PTS changing by 40000 per frame, consistent with 25 fps play.    You'll see
a couple of small repeats, but the proper general trend as frames get
processed, then it appears that things get stuck -- the one frame with "PTS"
1282412506 is "stuck" -- that value is repeated 15 times in the code until a
new frame makes it in.
This is probably just normal TCP processing over the Net -- every once in a
while there will be a bad packet, a retransmit needed.
Anyhow, once a new PTS frame finally comes in, VLC declares an error, with
frame drop.  New frames keep on coming in, showing the proper PTS change of
40000, but VLC keeps declaring them "bad".

(Eventually, if the underlying connection error rate is very low, VLC throws
a few other buffer errors, resyncs, starts playing video again.
Unfortunately, this state of frozen/garbled video occurs any time there is a
delay on a given frame.)

I am not sure what the right thing to do is, just trying to provide
information for people to look at.  Perhaps there should be some internal
feedback to reestablish the clock baseline, else video_output.c maybe needs
to pick up a "delta" variable to handle a reset for such a missing/late
frame.  (the late frame was only that first one, the others, best I can
tell, really were OK, on time).

main warning: -1283055206           Generally good here -- we're seeing the
PTS' changing by 40000
main warning: -1283015206
main warning: -1282975206
main warning: -1282935206
main warning: -1282895206
main warning: -1282855206
main warning: -1282815206
main warning: -1282775206
main warning: -1282735206
main warning: -1282695206
main warning: -1282655206
main warning: -1282615206
main warning: -1282574206            Small "burp"
main warning: -1282574206
main warning: -1282574206
main warning: -1282535206            Got a new value
main warning: -1282535206
main warning: -1282495206
main warning: -1282455206
main warning: -1282415206             Start of the problem -- we're stuck
with the frame having PTS 128415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282415206
main warning: -1282375206             Finally get the next actual frame 
main warning: late picture skipped (210486)      I believe this is an OK
error.
main warning: -1282335206
main warning: late picture skipped (191746)   This, and the following
errors, are suspicious -- we should possibly be resetting the PTS basline
main warning: computed PTS is out of range (27764), clearing out
main warning: PTS is out of range (13618), dropping buffer
main warning: output PTS is out of range (40630), clearing out
main warning: -1282295206
main warning: late picture skipped (360101)     and not just keep declaring
error
main warning: -1282255206
main warning: late picture skipped (341254)
main warning: -1282215206
main warning: late picture skipped (408276)
main warning: -1282175206
main warning: late picture skipped (375023)
main warning: -1282135206
main warning: late picture skipped (355058)
main warning: computed PTS is out of range (161497), clearing out
main warning: PTS is out of range (150185), dropping buffer
main warning: output PTS is out of range (161807), clearing out
main warning: PTS is out of range (65177), dropping buffer
main warning: -1282095206
main warning: late picture skipped (498671)
main warning: -1282055206
main warning: late picture skipped (480323)
main warning: -1282015206
main warning: late picture skipped (504670)
main warning: -1281975206
main warning: late picture skipped (485130)
main warning: -1281935206
main warning: late picture skipped (465644)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20050327/e896f639/attachment.html>


More information about the vlc-devel mailing list