[Live-devel] Live555 presentation times jump when joining multicast streams
DJM-Avalesta
david.myers at avalesta.com
Tue Dec 21 06:15:27 PST 2021
> So, I suggest adding, to your server code, code that compares the value
> of 'fPresentationTime" computed your new way,
> with the value that would be computed by calling "gettimeofday()", and
> print out the difference
Thanks, Ross. I assume you mean, if the new presentation time becomes
different from wall clock time by a large amount, eg more than 1 second,
I should reallign fPresentationTime with wall clock time, like this
if (fPresentationTime.tv_sec == 0 && fPresentationTime.tv_usec == 0)
{
gettimeofday(&fPresentationTime, NULL);
INFO("setPresentationTime: %ld.%06ld\n",
fPresentationTime.tv_sec, fPresentationTime.tv_usec);
}
else
{
// Increment by the sample time
unsigned uSeconds = fPresentationTime.tv_usec +
(unsigned)(1000000.0/fMaxFps);
fPresentationTime.tv_sec += uSeconds/1000000;
fPresentationTime.tv_usec = uSeconds%1000000;
//check for basic alignment with 'wall clock' time
struct timeval wallclocktime;
gettimeofday(&wallclocktime, NULL);
if ((wallclocktime.tv_sec > fPresentationTime.tv_sec + 1) ||
(fPresentationTime.tv_sec > wallclocktime.tv_sec + 1) )
{ //we have drifted too far from wall clock time so need to
realign
fPresentationTime.tv_sec = wallclocktime.tv_sec;
fPresentationTime.tv_usec = wallclocktime.tv_usec;
INFO("Realigning PresentationTime with wall-clock time:
%ld.%06ld\n", fPresentationTime.tv_sec, fPresentationTime.tv_usec);
}
}
This seems to work but will need more testing. VLC seems to be very
sensitive to presentation time jumps or anomalies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20211221/87ee42a8/attachment.htm>
More information about the live-devel
mailing list