[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