aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-01-09 18:55:52 +0200
committerMartin Storsjö <martin@martin.st>2013-07-31 21:12:34 +0300
commit2e814d0329aded98c811d0502839618f08642685 (patch)
tree677956cd1d3218da6ea9526756ada0ccb1490a24 /libavformat
parent45dd1ae1b3c18331f3db2293a9135bc5851e553f (diff)
downloadffmpeg-2e814d0329aded98c811d0502839618f08642685.tar.gz
rtpenc: Simplify code by introducing a macro for rescaling NTP timestamps
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/rtp.h3
-rw-r--r--libavformat/rtpenc.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/libavformat/rtp.h b/libavformat/rtp.h
index f8d406ea88..feaf167965 100644
--- a/libavformat/rtp.h
+++ b/libavformat/rtp.h
@@ -23,6 +23,7 @@
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
+#include "libavutil/mathematics.h"
/**
* Return the payload type for a given stream used in the given format context.
@@ -109,4 +110,6 @@ enum RTCPType {
#define RTP_PT_IS_RTCP(x) (((x) >= RTCP_FIR && (x) <= RTCP_IJ) || \
((x) >= RTCP_SR && (x) <= RTCP_TOKEN))
+#define NTP_TO_RTP_FORMAT(x) av_rescale((x), INT64_C(1) << 32, 1000000)
+
#endif /* AVFORMAT_RTP_H */
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index c82a73a84c..d33060770e 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -273,8 +273,7 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time)
avio_w8(s1->pb, RTCP_SR);
avio_wb16(s1->pb, 6); /* length in words - 1 */
avio_wb32(s1->pb, s->ssrc);
- avio_wb32(s1->pb, ntp_time / 1000000);
- avio_wb32(s1->pb, ((ntp_time % 1000000) << 32) / 1000000);
+ avio_wb64(s1->pb, NTP_TO_RTP_FORMAT(ntp_time));
avio_wb32(s1->pb, rtp_ts);
avio_wb32(s1->pb, s->packet_count);
avio_wb32(s1->pb, s->octet_count);