| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc
|
| index 1508658f5df5d9884bc258b6daa5ecba869295fd..7a9fb9b5fd177b32dead9718dce5e4cdff1b6a3b 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc
|
| @@ -209,31 +209,6 @@ void CreateSli(const RTCPPacketPSFBSLI& sli,
|
| AssignUWord8(buffer, pos, (sli_item.NumberOfMB << 6) + sli_item.PictureId);
|
| }
|
|
|
| -// Generic NACK (RFC 4585).
|
| -//
|
| -// FCI:
|
| -//
|
| -// 0 1 2 3
|
| -// 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
|
| -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
| -// | PID | BLP |
|
| -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
| -
|
| -void CreateNack(const RTCPPacketRTPFBNACK& nack,
|
| - const std::vector<RTCPPacketRTPFBNACKItem>& nack_fields,
|
| - size_t start_index,
|
| - size_t end_index,
|
| - uint8_t* buffer,
|
| - size_t* pos) {
|
| - AssignUWord32(buffer, pos, nack.SenderSSRC);
|
| - AssignUWord32(buffer, pos, nack.MediaSSRC);
|
| - for (size_t i = start_index; i < end_index; ++i) {
|
| - const RTCPPacketRTPFBNACKItem& nack_item = nack_fields[i];
|
| - AssignUWord16(buffer, pos, nack_item.PacketID);
|
| - AssignUWord16(buffer, pos, nack_item.BitMask);
|
| - }
|
| -}
|
| -
|
| // Reference picture selection indication (RPSI) (RFC 4585).
|
| //
|
| // FCI:
|
| @@ -597,65 +572,6 @@ bool Sli::Create(uint8_t* packet,
|
| return true;
|
| }
|
|
|
| -bool Nack::Create(uint8_t* packet,
|
| - size_t* index,
|
| - size_t max_length,
|
| - RtcpPacket::PacketReadyCallback* callback) const {
|
| - assert(!nack_fields_.empty());
|
| - // If nack list can't fit in packet, try to fragment.
|
| - size_t nack_index = 0;
|
| - do {
|
| - size_t bytes_left_in_buffer = max_length - *index;
|
| - if (bytes_left_in_buffer < kCommonFbFmtLength + 4) {
|
| - if (!OnBufferFull(packet, index, callback))
|
| - return false;
|
| - continue;
|
| - }
|
| - int64_t num_nack_fields =
|
| - std::min((bytes_left_in_buffer - kCommonFbFmtLength) / 4,
|
| - nack_fields_.size() - nack_index);
|
| -
|
| - const uint8_t kFmt = 1;
|
| - size_t size_bytes = (num_nack_fields * 4) + kCommonFbFmtLength;
|
| - size_t header_length = ((size_bytes + 3) / 4) - 1; // As 32bit words - 1
|
| - CreateHeader(kFmt, PT_RTPFB, header_length, packet, index);
|
| - CreateNack(nack_, nack_fields_, nack_index, nack_index + num_nack_fields,
|
| - packet, index);
|
| -
|
| - nack_index += num_nack_fields;
|
| - } while (nack_index < nack_fields_.size());
|
| -
|
| - return true;
|
| -}
|
| -
|
| -size_t Nack::BlockLength() const {
|
| - return (nack_fields_.size() * 4) + kCommonFbFmtLength;
|
| -}
|
| -
|
| -void Nack::WithList(const uint16_t* nack_list, int length) {
|
| - assert(nack_list);
|
| - assert(nack_fields_.empty());
|
| - int i = 0;
|
| - while (i < length) {
|
| - uint16_t pid = nack_list[i++];
|
| - // Bitmask specifies losses in any of the 16 packets following the pid.
|
| - uint16_t bitmask = 0;
|
| - while (i < length) {
|
| - int shift = static_cast<uint16_t>(nack_list[i] - pid) - 1;
|
| - if (shift >= 0 && shift <= 15) {
|
| - bitmask |= (1 << shift);
|
| - ++i;
|
| - } else {
|
| - break;
|
| - }
|
| - }
|
| - RTCPUtility::RTCPPacketRTPFBNACKItem item;
|
| - item.PacketID = pid;
|
| - item.BitMask = bitmask;
|
| - nack_fields_.push_back(item);
|
| - }
|
| -}
|
| -
|
| bool Rpsi::Create(uint8_t* packet,
|
| size_t* index,
|
| size_t max_length,
|
|
|