[Live-devel] Request to Fix inconsistent timestamps in openrtsp
Ross Finlayson
finlayson at live555.com
Mon Jan 18 18:18:12 PST 2010
>The problem I experience with VLC is that it takes the first set of
>presentation stamps as it's seed.
VLC's "live555" demux module (see "modules_demux_live555.cpp") does
not do this. (At least, it shouldn't be doing this. If - after
inspecting that code - you're *sure* there's a bug there, then please
report it to VLC (not to us; VLC is not our software).) Note, in
particular, the call to "hasBeenSynchronizedUsingRTCP()" in that
code. So, if you're not using the "live555" demux module, then you
probably should. Once again, please don't try to reinvent the wheel.
>I have tried playing with the code myself in vlc but have not had
>success getting a proper result out of it, it's beyond my ability to
>resolve.
Once again, are you using VLC's "live555" demux module? If not, why
not? (In any case, alleged bugs in VLC are off-topic for this
mailing list.)
>Could openRTSP
I think you mean "the LIVE555 Streaming Media libraries", not
"openRTSP". "openRTSP" is a demo application, not a library.
> not simply calculate an offset after the RCTP packet and adjust
>each subsequent packet by that offset to keep the whole PTS stream
>consistent?
Because - in the case where you have more than one substream (e.g.,
audio + video), that would *not* keep their presentation times in
sync.
Remember, once again, that the presentation times for the audio and
video streams - after "hasBeenSynchronizedUsingRTCP()" returns True
for both - will be accurate, and in sync with each other. But the
presentation times that occurred *before*
"hasBeenSynchronizedUsingRTCP()" returns True will not be in sync.
Therefore, although we could - in principle - add an offset to the
audio presentation times so that their presentation times after RTCP
sync are consistent with those before RTCP sync, we could not also do
the same for the video presentation times, without bringing the audio
and video presentation times out of sync with each other.
This is why only the presentation times that occur after
"hasBeenSynchronizedUsingRTCP()" returns True can be trusted for A/V
synchronization, and why VLC's "live555" demux module calls that
function.
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
More information about the live-devel
mailing list