Commit 7f3468d3 authored by Josh Allmann's avatar Josh Allmann Committed by Martin Storsjö

rtp: Replace hardcoded RTCP packet types with defines

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24912 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d21caa95
...@@ -82,4 +82,13 @@ enum CodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type); ...@@ -82,4 +82,13 @@ enum CodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type);
*/ */
#define RTP_XIPH_IDENT 0xfecdba #define RTP_XIPH_IDENT 0xfecdba
/* RTCP packet types */
enum RTCPType {
RTCP_SR = 200,
RTCP_RR, // 201
RTCP_SDES, // 202
RTCP_BYE, // 203
RTCP_APP // 204
};
#endif /* AVFORMAT_RTP_H */ #endif /* AVFORMAT_RTP_H */
...@@ -74,7 +74,7 @@ void av_register_rtp_dynamic_payload_handlers(void) ...@@ -74,7 +74,7 @@ void av_register_rtp_dynamic_payload_handlers(void)
static int rtcp_parse_packet(RTPDemuxContext *s, const unsigned char *buf, int len) static int rtcp_parse_packet(RTPDemuxContext *s, const unsigned char *buf, int len)
{ {
if (buf[1] != 200) if (buf[1] != RTCP_SR)
return -1; return -1;
s->last_rtcp_ntp_time = AV_RB64(buf + 8); s->last_rtcp_ntp_time = AV_RB64(buf + 8);
if (s->first_rtcp_ntp_time == AV_NOPTS_VALUE) if (s->first_rtcp_ntp_time == AV_NOPTS_VALUE)
...@@ -209,7 +209,7 @@ int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count) ...@@ -209,7 +209,7 @@ int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count)
// Receiver Report // Receiver Report
put_byte(pb, (RTP_VERSION << 6) + 1); /* 1 report block */ put_byte(pb, (RTP_VERSION << 6) + 1); /* 1 report block */
put_byte(pb, 201); put_byte(pb, RTCP_RR);
put_be16(pb, 7); /* length in words - 1 */ put_be16(pb, 7); /* length in words - 1 */
// our own SSRC: we use the server's SSRC + 1 to avoid conflicts // our own SSRC: we use the server's SSRC + 1 to avoid conflicts
put_be32(pb, s->ssrc + 1); put_be32(pb, s->ssrc + 1);
...@@ -248,7 +248,7 @@ int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count) ...@@ -248,7 +248,7 @@ int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count)
// CNAME // CNAME
put_byte(pb, (RTP_VERSION << 6) + 1); /* 1 report block */ put_byte(pb, (RTP_VERSION << 6) + 1); /* 1 report block */
put_byte(pb, 202); put_byte(pb, RTCP_SDES);
len = strlen(s->hostname); len = strlen(s->hostname);
put_be16(pb, (6 + len + 3) / 4); /* length in words - 1 */ put_be16(pb, (6 + len + 3) / 4); /* length in words - 1 */
put_be32(pb, s->ssrc); put_be32(pb, s->ssrc);
...@@ -299,7 +299,7 @@ void rtp_send_punch_packets(URLContext* rtp_handle) ...@@ -299,7 +299,7 @@ void rtp_send_punch_packets(URLContext* rtp_handle)
return; return;
put_byte(pb, (RTP_VERSION << 6)); put_byte(pb, (RTP_VERSION << 6));
put_byte(pb, 201); /* receiver report */ put_byte(pb, RTCP_RR); /* receiver report */
put_be16(pb, 1); /* length in words - 1 */ put_be16(pb, 1); /* length in words - 1 */
put_be32(pb, 0); /* our own SSRC */ put_be32(pb, 0); /* our own SSRC */
...@@ -434,7 +434,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, ...@@ -434,7 +434,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
if ((buf[0] & 0xc0) != (RTP_VERSION << 6)) if ((buf[0] & 0xc0) != (RTP_VERSION << 6))
return -1; return -1;
if (buf[1] >= 200 && buf[1] <= 204) { if (buf[1] >= RTCP_SR && buf[1] <= RTCP_APP) {
rtcp_parse_packet(s, buf, len); rtcp_parse_packet(s, buf, len);
return -1; return -1;
} }
......
...@@ -191,7 +191,7 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time) ...@@ -191,7 +191,7 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time)
rtp_ts = av_rescale_q(ntp_time - s->first_rtcp_ntp_time, (AVRational){1, 1000000}, rtp_ts = av_rescale_q(ntp_time - s->first_rtcp_ntp_time, (AVRational){1, 1000000},
s1->streams[0]->time_base) + s->base_timestamp; s1->streams[0]->time_base) + s->base_timestamp;
put_byte(s1->pb, (RTP_VERSION << 6)); put_byte(s1->pb, (RTP_VERSION << 6));
put_byte(s1->pb, 200); put_byte(s1->pb, RTCP_SR);
put_be16(s1->pb, 6); /* length in words - 1 */ put_be16(s1->pb, 6); /* length in words - 1 */
put_be32(s1->pb, s->ssrc); put_be32(s1->pb, s->ssrc);
put_be32(s1->pb, ntp_time / 1000000); put_be32(s1->pb, ntp_time / 1000000);
......
...@@ -285,7 +285,7 @@ static int rtp_write(URLContext *h, const uint8_t *buf, int size) ...@@ -285,7 +285,7 @@ static int rtp_write(URLContext *h, const uint8_t *buf, int size)
int ret; int ret;
URLContext *hd; URLContext *hd;
if (buf[1] >= 200 && buf[1] <= 204) { if (buf[1] >= RTCP_SR && buf[1] <= RTCP_APP) {
/* RTCP payload type */ /* RTCP payload type */
hd = s->rtcp_hd; hd = s->rtcp_hd;
} else { } else {
......
...@@ -85,7 +85,7 @@ static int tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st) ...@@ -85,7 +85,7 @@ static int tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st)
size -= 4; size -= 4;
if (packet_len > size || packet_len < 2) if (packet_len > size || packet_len < 2)
break; break;
if (ptr[1] >= 200 && ptr[1] <= 204) if (ptr[1] >= RTCP_SR && ptr[1] <= RTCP_APP)
id = rtsp_st->interleaved_max; /* RTCP */ id = rtsp_st->interleaved_max; /* RTCP */
else else
id = rtsp_st->interleaved_min; /* RTP */ id = rtsp_st->interleaved_min; /* RTP */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment