| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 * | 9 * |
| 10 */ | 10 */ |
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 size_t BlockLength() const { | 421 size_t BlockLength() const { |
| 422 return 12 + app_.Size; | 422 return 12 + app_.Size; |
| 423 } | 423 } |
| 424 | 424 |
| 425 uint32_t ssrc_; | 425 uint32_t ssrc_; |
| 426 RTCPUtility::RTCPPacketAPP app_; | 426 RTCPUtility::RTCPPacketAPP app_; |
| 427 | 427 |
| 428 RTC_DISALLOW_COPY_AND_ASSIGN(App); | 428 RTC_DISALLOW_COPY_AND_ASSIGN(App); |
| 429 }; | 429 }; |
| 430 | 430 |
| 431 // RFC 4585: Feedback format. | |
| 432 // | |
| 433 // Common packet format: | |
| 434 // | |
| 435 // 0 1 2 3 | |
| 436 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |
| 437 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| 438 // |V=2|P| FMT | PT | length | | |
| 439 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| 440 // | SSRC of packet sender | | |
| 441 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| 442 // | SSRC of media source | | |
| 443 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| 444 // : Feedback Control Information (FCI) : | |
| 445 // : | |
| 446 | |
| 447 // Picture loss indication (PLI) (RFC 4585). | |
| 448 // | |
| 449 // FCI: no feedback control information. | |
| 450 | |
| 451 class Pli : public RtcpPacket { | |
| 452 public: | |
| 453 Pli() : RtcpPacket() { | |
| 454 memset(&pli_, 0, sizeof(pli_)); | |
| 455 } | |
| 456 | |
| 457 virtual ~Pli() {} | |
| 458 | |
| 459 void From(uint32_t ssrc) { | |
| 460 pli_.SenderSSRC = ssrc; | |
| 461 } | |
| 462 void To(uint32_t ssrc) { | |
| 463 pli_.MediaSSRC = ssrc; | |
| 464 } | |
| 465 | |
| 466 protected: | |
| 467 bool Create(uint8_t* packet, | |
| 468 size_t* index, | |
| 469 size_t max_length, | |
| 470 RtcpPacket::PacketReadyCallback* callback) const override; | |
| 471 | |
| 472 private: | |
| 473 size_t BlockLength() const { | |
| 474 return kCommonFbFmtLength; | |
| 475 } | |
| 476 | |
| 477 RTCPUtility::RTCPPacketPSFBPLI pli_; | |
| 478 | |
| 479 RTC_DISALLOW_COPY_AND_ASSIGN(Pli); | |
| 480 }; | |
| 481 | |
| 482 // Slice loss indication (SLI) (RFC 4585). | 431 // Slice loss indication (SLI) (RFC 4585). |
| 483 // | 432 // |
| 484 // FCI: | 433 // FCI: |
| 485 // 0 1 2 3 | 434 // 0 1 2 3 |
| 486 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 435 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| 487 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 436 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| 488 // | First | Number | PictureID | | 437 // | First | Number | PictureID | |
| 489 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 438 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| 490 | 439 |
| 491 class Sli : public RtcpPacket { | 440 class Sli : public RtcpPacket { |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1056 | 1005 |
| 1057 private: | 1006 private: |
| 1058 const size_t buffer_length_; | 1007 const size_t buffer_length_; |
| 1059 size_t length_; | 1008 size_t length_; |
| 1060 rtc::scoped_ptr<uint8_t[]> buffer_; | 1009 rtc::scoped_ptr<uint8_t[]> buffer_; |
| 1061 }; | 1010 }; |
| 1062 | 1011 |
| 1063 } // namespace rtcp | 1012 } // namespace rtcp |
| 1064 } // namespace webrtc | 1013 } // namespace webrtc |
| 1065 #endif // WEBRTC_MODULES_RTP_RTCP_RTCP_PACKET_H_ | 1014 #endif // WEBRTC_MODULES_RTP_RTCP_RTCP_PACKET_H_ |
| OLD | NEW |