[Live-devel] Sysclock sanity check causes slow-motion MPEG-2 TS playback from live555MediaServer

Ross Finlayson finlayson at live555.com
Mon Jan 3 18:52:52 PST 2011


>>If you're really seeing a problem with this new version,
>>then you're going to have to identify specifically what is causing it.
>
>I thought I had.  I got it down to just one variable, the OS I ran 
>the live555MediaServer binary on.

I meant: You're going to have to identify specifically what *in our 
code* is causing it, and why.  However, I think I might have now done 
this (except for the "why" part :-).  See below...


>Are negative time values always bad?

Yes, because the task scheduler code thinks it's seeing 'unsigned' 
(i.e., non-negative) values.  (If negative values get passed to it, 
then the code may have still worked, but that would just be by 
accident.)


>If that's not it, then maybe timeNow isn't always a "sane" value here.

Yes, I've realized that the assignment
	fNextSendTime = timeNow;
that we added at line 395 of "MultiFramedRTPSink.cpp" (as part of the 
'sanity check' patch) isn't really right, because it might lead to 
small delays accumulating over time.  (However, this doesn't explain 
the differences between OSs that you are apparently seeing.)

In any case, could you try commenting out that statement, and let us 
know if it improves things (on the problematic OS)?


>>It might be useful to see an example of a TS file that illustrates
>>the problem.
>
>I'll send you some URLs off-list.

Thanks.  Those helped confirm that the 'sanity check' code was really 
being hit (due to some very small inter-packet durations being 
computed by the "MPEG2TransportStreamFramer").
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list