On Sat, Dec 17, 2011 at 5:19 AM, 6.45 6.45.Vapuru <span dir="ltr"><<a href="mailto:6.45.vapuru@gmail.com">6.45.vapuru@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi<br>
<br>
I modify the OpenRtspClient so that<br>
<br>
-- Now instead of writing frames to file I collect them in a queue<br>
with incoming presenttaion times<br>
-- Then give the h264 frames to MP4 muxer [ Geraint Davies MP4 mux filter]<br>
-- Finally write muxed data to file...<br>
<br>
So I can able to save h264 stream into MP4 container...<br>
But the problem is that, some of the recorded data [NOT all of them]<br>
has wrong values for time duration:<br>
Suppose that a 10 minute record seems that it was 12 h stream...<br>
VLC play the 10 minute that play last  frame for the remaing time.<br></blockquote><div><br>First thing that comes to mind is you have an obvious overflow issue:<br>
<br>
#define TIMEVAL_TO_REFERENCE_TIME(x) ((__int64)(x.tv_sec * 1000000) + x.tv_usec) * 10<br>
<br>
...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.<br></div><div> </div>
</div>