Signed-off-by: Martin Storsjö <martin@martin.st>tags/n2.1
| @@ -23,6 +23,7 @@ | |||||
| #include "libavformat/avformat.h" | #include "libavformat/avformat.h" | ||||
| #include "libavcodec/avcodec.h" | #include "libavcodec/avcodec.h" | ||||
| #include "libavutil/mathematics.h" | |||||
| /** | /** | ||||
| * Return the payload type for a given stream used in the given format context. | * 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) || \ | #define RTP_PT_IS_RTCP(x) (((x) >= RTCP_FIR && (x) <= RTCP_IJ) || \ | ||||
| ((x) >= RTCP_SR && (x) <= RTCP_TOKEN)) | ((x) >= RTCP_SR && (x) <= RTCP_TOKEN)) | ||||
| #define NTP_TO_RTP_FORMAT(x) av_rescale((x), INT64_C(1) << 32, 1000000) | |||||
| #endif /* AVFORMAT_RTP_H */ | #endif /* AVFORMAT_RTP_H */ | ||||
| @@ -273,8 +273,7 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time) | |||||
| avio_w8(s1->pb, RTCP_SR); | avio_w8(s1->pb, RTCP_SR); | ||||
| avio_wb16(s1->pb, 6); /* length in words - 1 */ | avio_wb16(s1->pb, 6); /* length in words - 1 */ | ||||
| avio_wb32(s1->pb, s->ssrc); | 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, rtp_ts); | ||||
| avio_wb32(s1->pb, s->packet_count); | avio_wb32(s1->pb, s->packet_count); | ||||
| avio_wb32(s1->pb, s->octet_count); | avio_wb32(s1->pb, s->octet_count); | ||||