57 rtp_first_dynamic_payload_handler = handler;
101 for (handler = rtp_first_dynamic_payload_handler;
102 handler; handler = handler->
next)
113 for (handler = rtp_first_dynamic_payload_handler;
114 handler; handler = handler->
next)
130 if (payload_len < 20) {
132 "Invalid length for RTCP SR packet\n");
156 #define RTP_SEQ_MOD (1 << 16)
185 uint16_t udelta = seq - s->
max_seq;
186 const int MAX_DROPOUT = 3000;
187 const int MAX_MISORDER = 100;
188 const int MIN_SEQUENTIAL = 2;
205 }
else if (udelta < MAX_DROPOUT) {
207 if (seq < s->max_seq) {
238 uint32_t extended_max;
239 uint32_t expected_interval;
240 uint32_t received_interval;
241 uint32_t lost_interval;
246 if ((!fd && !avio) || (count < 1))
274 expected = extended_max - stats->
base_seq + 1;
276 lost =
FFMIN(lost, 0xffffff);
281 lost_interval = expected_interval - received_interval;
282 if (expected_interval == 0 || lost_interval <= 0)
285 fraction = (lost_interval << 8) / expected_interval;
287 fraction = (fraction << 24) | lost;
314 for (len = (6 + len) % 4; len % 4; len++)
321 if ((len > 0) && buf) {
323 av_dlog(s->
ic,
"sending %d bytes of RR\n", len);
325 av_dlog(s->
ic,
"result from ffurl_write: %d\n", result);
349 if ((len > 0) && buf)
364 if ((len > 0) && buf)
375 int payload_type,
int queue_size)
473 unsigned int ssrc, h;
474 int payload_type, seq, ret,
flags = 0;
481 payload_type = buf[1] & 0x7f;
498 "RTP: PT=%02x: bad cseq %04x expected=%04x\n",
499 payload_type, seq, ((s->
seq + 1) & 0xffff));
504 int padding = buf[len - 1];
505 if (len >= 12 + padding)
519 ext = (
AV_RB16(buf + 2) + 1) << 2;
545 s->
st, pkt, ×tamp, buf, len, seq, flags);
560 memcpy(pkt->
data, buf, len);
579 memcpy(pkt->
data, buf, len);
584 memcpy(pkt->
data, buf, len);
612 uint16_t seq =
AV_RB16(buf + 2);
659 "RTP: missed %d packets\n", s->
queue->
seq - s->
seq - 1);
691 s->
st, pkt, ×tamp,
NULL, 0, 0,
724 uint16_t seq =
AV_RB16(buf + 2);
729 "RTP: dropping old packet received too late\n");
731 }
else if (diff <= 1) {
779 char *attr,
char *
value))
784 int value_size = strlen(p) + 1;
792 while (*p && *p ==
' ')
794 while (*p && *p !=
' ')
796 while (*p && *p ==
' ')
801 value, value_size)) {