> we want to use live555 in one of our products on the WinCE platform and we 
> have some issues with timestamp calculation.
> From file liveMedia/RTPSink.cpp:
> u_int32_t RTPSink::convertToRTPTimestamp(struct timeval tv) {
> 
> // Begin by converting from "struct timeval" units to RTP timestamp units:
> 
> u_int32_t timestampIncrement = (fTimestampFrequency*tv.tv_sec);
> 
> timestampIncrement += (u_int32_t)((2.0*fTimestampFrequency*tv.tv_usec + 
> 1000000.0)/2000000);
> 
> // note: rounding
> 
> ...
> 
> Could you tell me why you are calculation the timstampIncrement like this?

It's done this way so that the result is rounded to the nearest integer.  
Suppose, for example, that "fTimestampFrequency*tv.tv_usec" is 1990000.  
Computing "tv.tv_usec*fTimestampFrequency/1000000.0" will give you 1 (when 
converted back to an "int").  However, computing 
"(2.0*fTimestampFrequency*tv.tv_usec + 1000000.0)/2000000" will give you 2, 
which is more accurate.

What specific 'issues' do you think you are having with timestamp calculation?  
Are you having a problem specifically with this line of code??  If not, then 
your 'issues' are probably not with timestamp calculation.  Note that 
developers usually don't need to concern themselves with RTP timestamps; our 
software automatically converts presentation times to RTP timestamps (on 
transmission), and then back to presentation times (on reception).  As a 
developer, the important thing that you need to concern yourself with is 
***presentation times***.  Your data sources' frames *must* have accurate 
presentation times, and they must be aligned to 'wall clock' time (i.e., the 
time that you would get by calling "gettimeofday()".)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to