From 2e814d0329aded98c811d0502839618f08642685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Wed, 9 Jan 2013 18:55:52 +0200 Subject: [PATCH] rtpenc: Simplify code by introducing a macro for rescaling NTP timestamps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/rtp.h | 3 +++ libavformat/rtpenc.c | 3 +-- 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);