Mercurial > libavformat.hg
comparison rtpdec.c @ 6423:2685bf2b0b78 libavformat
rtsp: Return AVERROR_EOF when all streams have received an RTCP BYE packet
Patch by Josh Allmann, joshua dot allmann at gmail
author | mstorsjo |
---|---|
date | Sun, 29 Aug 2010 10:25:16 +0000 |
parents | cb5f5fc848b0 |
children | f06908662125 |
comparison
equal
deleted
inserted
replaced
6422:cb5f5fc848b0 | 6423:2685bf2b0b78 |
---|---|
90 s->last_rtcp_timestamp = AV_RB32(buf + 16); | 90 s->last_rtcp_timestamp = AV_RB32(buf + 16); |
91 | 91 |
92 buf += payload_len; | 92 buf += payload_len; |
93 len -= payload_len; | 93 len -= payload_len; |
94 break; | 94 break; |
95 case RTCP_BYE: | |
96 return -RTCP_BYE; | |
95 default: | 97 default: |
96 return -1; | 98 return -1; |
97 } | 99 } |
98 } | 100 } |
99 return 0; | 101 return -1; |
100 } | 102 } |
101 | 103 |
102 #define RTP_SEQ_MOD (1<<16) | 104 #define RTP_SEQ_MOD (1<<16) |
103 | 105 |
104 /** | 106 /** |
449 return -1; | 451 return -1; |
450 | 452 |
451 if ((buf[0] & 0xc0) != (RTP_VERSION << 6)) | 453 if ((buf[0] & 0xc0) != (RTP_VERSION << 6)) |
452 return -1; | 454 return -1; |
453 if (buf[1] >= RTCP_SR && buf[1] <= RTCP_APP) { | 455 if (buf[1] >= RTCP_SR && buf[1] <= RTCP_APP) { |
454 rtcp_parse_packet(s, buf, len); | 456 return rtcp_parse_packet(s, buf, len); |
455 return -1; | |
456 } | 457 } |
457 payload_type = buf[1] & 0x7f; | 458 payload_type = buf[1] & 0x7f; |
458 if (buf[1] & 0x80) | 459 if (buf[1] & 0x80) |
459 flags |= RTP_FLAG_MARKER; | 460 flags |= RTP_FLAG_MARKER; |
460 seq = AV_RB16(buf + 2); | 461 seq = AV_RB16(buf + 2); |