[Live-devel] Presentaition time problem at H264 streams

Jeremy Noring kidjan at gmail.com
Thu Dec 22 00:36:45 PST 2011


On Sat, Dec 17, 2011 at 5:19 AM, 6.45 6.45.Vapuru <6.45.vapuru at gmail.com>wrote:

> Hi
>
> I modify the OpenRtspClient so that
>
> -- Now instead of writing frames to file I collect them in a queue
> with incoming presenttaion times
> -- Then give the h264 frames to MP4 muxer [ Geraint Davies MP4 mux filter]
> -- Finally write muxed data to file...
>
> So I can able to save h264 stream into MP4 container...
> But the problem is that, some of the recorded data [NOT all of them]
> has wrong values for time duration:
> Suppose that a 10 minute record seems that it was 12 h stream...
> VLC play the 10 minute that play last  frame for the remaing time.
>

First thing that comes to mind is you have an obvious overflow issue:

#define TIMEVAL_TO_REFERENCE_TIME(x) ((__int64)(x.tv_sec * 1000000) +
x.tv_usec) * 10

...x.ty_sec and x.ty_usec are 32-bit signed (long).  You multimply x.tv_sec
by 1,000,000, and *then* cast to __int64.  So you'll overflow that in about
~2147 seconds.  You need to cast to __int64 *first* and then do your
multiplication.  This probably explains the weird jumping.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111222/e2983bd2/attachment.html>


More information about the live-devel mailing list