From: Vishwanath Dixit <vdi...@akamai.com> This utility function creates 64-bit NTP time format as per the RFC 5905. A simple explaination of 64-bit NTP time format is here http://www.beaglesoft.com/Manual/page53.htm --- libavformat/internal.h | 8 ++++++++ libavformat/utils.c | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+)
diff --git a/libavformat/internal.h b/libavformat/internal.h index 3582682..e9f758f 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -240,6 +240,14 @@ void ff_read_frame_flush(AVFormatContext *s); uint64_t ff_ntp_time(void); /** + * Get the NTP time stamp formatted as per the RFC-5905. + * + * @param ntp_time NTP time in micro seconds (since NTP epoch) + * @return the formatted NTP time stamp + */ +uint64_t ff_time_ntp_format(uint64_t ntp_time); + +/** * Append the media-specific SDP fragment for the media stream c * to the buffer buff. * diff --git a/libavformat/utils.c b/libavformat/utils.c index c25eab4..b59d426 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -4637,6 +4637,26 @@ uint64_t ff_ntp_time(void) return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US; } +uint64_t ff_time_ntp_format(uint64_t ntp_time) +{ + uint64_t ntp_ts, frac_part; + uint32_t sec, usec; + + //current ntp time in seconds and micro seconds + sec = ntp_time / 1000000; + usec = ntp_time % 1000000; + + //encoding in ntp timestamp format + frac_part = usec * 0xFFFFFFFFULL; + frac_part /= 1000000; + + ntp_ts = (uint64_t) sec; + ntp_ts <<= 32; + ntp_ts |= frac_part; + + return ntp_ts; +} + int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number, int flags) { const char *p; -- 1.9.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel