mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 09:12:33 +00:00
avformat/utils: function to get the formatted ntp time
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
This commit is contained in:
parent
8a4dbd3e9f
commit
f09635f2a2
@ -239,6 +239,14 @@ void ff_read_frame_flush(AVFormatContext *s);
|
||||
/** Get the current time since NTP epoch in microseconds. */
|
||||
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_get_formatted_ntp_time(uint64_t ntp_time_us);
|
||||
|
||||
/**
|
||||
* Append the media-specific SDP fragment for the media stream c
|
||||
* to the buffer buff.
|
||||
|
@ -4644,6 +4644,28 @@ uint64_t ff_ntp_time(void)
|
||||
return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US;
|
||||
}
|
||||
|
||||
uint64_t ff_get_formatted_ntp_time(uint64_t ntp_time_us)
|
||||
{
|
||||
uint64_t ntp_ts, frac_part, sec;
|
||||
uint32_t usec;
|
||||
|
||||
//current ntp time in seconds and micro seconds
|
||||
sec = ntp_time_us / 1000000;
|
||||
usec = ntp_time_us % 1000000;
|
||||
|
||||
//encoding in ntp timestamp format
|
||||
frac_part = usec * 0xFFFFFFFFULL;
|
||||
frac_part /= 1000000;
|
||||
|
||||
if (sec > 0xFFFFFFFFULL)
|
||||
av_log(NULL, AV_LOG_WARNING, "NTP time format roll over detected\n");
|
||||
|
||||
ntp_ts = sec << 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;
|
||||
|
Loading…
Reference in New Issue
Block a user