| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 25 matching lines...) Expand all Loading... |
| 36 constexpr uint16_t kMediaStartSeqNum = 825; | 36 constexpr uint16_t kMediaStartSeqNum = 825; |
| 37 constexpr size_t kMediaPacketLength = 1234; | 37 constexpr size_t kMediaPacketLength = 1234; |
| 38 constexpr uint32_t kFlexfecSsrc = 52142; | 38 constexpr uint32_t kFlexfecSsrc = 52142; |
| 39 | 39 |
| 40 constexpr size_t kFlexfecHeaderSizes[] = {20, 24, 32}; | 40 constexpr size_t kFlexfecHeaderSizes[] = {20, 24, 32}; |
| 41 constexpr size_t kFlexfecPacketMaskOffset = 18; | 41 constexpr size_t kFlexfecPacketMaskOffset = 18; |
| 42 constexpr size_t kFlexfecPacketMaskSizes[] = {2, 6, 14}; | 42 constexpr size_t kFlexfecPacketMaskSizes[] = {2, 6, 14}; |
| 43 constexpr size_t kFlexfecMaxPacketSize = kFlexfecPacketMaskSizes[2]; | 43 constexpr size_t kFlexfecMaxPacketSize = kFlexfecPacketMaskSizes[2]; |
| 44 | 44 |
| 45 // Reader tests. | 45 // Reader tests. |
| 46 constexpr uint8_t kNoFBit = 0 << 7; | 46 constexpr uint8_t kNoRBit = 0 << 7; |
| 47 constexpr uint8_t kNoRBit = 0 << 6; | 47 constexpr uint8_t kNoFBit = 0 << 6; |
| 48 constexpr uint8_t kPtRecovery = 123; | 48 constexpr uint8_t kPtRecovery = 123; |
| 49 constexpr uint8_t kLengthRecov[] = {0xab, 0xcd}; | 49 constexpr uint8_t kLengthRecov[] = {0xab, 0xcd}; |
| 50 constexpr uint8_t kTsRecovery[] = {0x01, 0x23, 0x45, 0x67}; | 50 constexpr uint8_t kTsRecovery[] = {0x01, 0x23, 0x45, 0x67}; |
| 51 constexpr uint8_t kSsrcCount = 1; | 51 constexpr uint8_t kSsrcCount = 1; |
| 52 constexpr uint8_t kReservedBits = 0x00; | 52 constexpr uint8_t kReservedBits = 0x00; |
| 53 constexpr uint8_t kProtSsrc[] = {0x11, 0x22, 0x33, 0x44}; | 53 constexpr uint8_t kProtSsrc[] = {0x11, 0x22, 0x33, 0x44}; |
| 54 constexpr uint8_t kSnBase[] = {0xaa, 0xbb}; | 54 constexpr uint8_t kSnBase[] = {0xaa, 0xbb}; |
| 55 constexpr uint8_t kPayloadBits = 0x00; | 55 constexpr uint8_t kPayloadBits = 0x00; |
| 56 | 56 |
| 57 std::unique_ptr<uint8_t[]> GeneratePacketMask(size_t packet_mask_size, | 57 std::unique_ptr<uint8_t[]> GeneratePacketMask(size_t packet_mask_size, |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 166 |
| 167 TEST(FlexfecHeaderReaderTest, ReadsHeaderWithKBit0Set) { | 167 TEST(FlexfecHeaderReaderTest, ReadsHeaderWithKBit0Set) { |
| 168 constexpr uint8_t kKBit0 = 1 << 7; | 168 constexpr uint8_t kKBit0 = 1 << 7; |
| 169 constexpr size_t kExpectedPacketMaskSize = 2; | 169 constexpr size_t kExpectedPacketMaskSize = 2; |
| 170 constexpr size_t kExpectedFecHeaderSize = 20; | 170 constexpr size_t kExpectedFecHeaderSize = 20; |
| 171 // clang-format off | 171 // clang-format off |
| 172 constexpr uint8_t kFlexfecPktMask[] = {kKBit0 | 0x08, 0x81}; | 172 constexpr uint8_t kFlexfecPktMask[] = {kKBit0 | 0x08, 0x81}; |
| 173 constexpr uint8_t kUlpfecPacketMask[] = {0x11, 0x02}; | 173 constexpr uint8_t kUlpfecPacketMask[] = {0x11, 0x02}; |
| 174 // clang-format on | 174 // clang-format on |
| 175 constexpr uint8_t kPacketData[] = { | 175 constexpr uint8_t kPacketData[] = { |
| 176 kNoFBit | kNoRBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], | 176 kNoRBit | kNoFBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], |
| 177 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], | 177 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], |
| 178 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, | 178 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, |
| 179 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], | 179 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], |
| 180 kSnBase[0], kSnBase[1], kFlexfecPktMask[0], kFlexfecPktMask[1], | 180 kSnBase[0], kSnBase[1], kFlexfecPktMask[0], kFlexfecPktMask[1], |
| 181 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; | 181 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; |
| 182 const size_t packet_length = sizeof(kPacketData); | 182 const size_t packet_length = sizeof(kPacketData); |
| 183 ReceivedFecPacket read_packet; | 183 ReceivedFecPacket read_packet; |
| 184 read_packet.pkt = rtc::scoped_refptr<Packet>(new Packet()); | 184 read_packet.pkt = rtc::scoped_refptr<Packet>(new Packet()); |
| 185 memcpy(read_packet.pkt->data, kPacketData, packet_length); | 185 memcpy(read_packet.pkt->data, kPacketData, packet_length); |
| 186 read_packet.pkt->length = packet_length; | 186 read_packet.pkt->length = packet_length; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 197 constexpr uint8_t kKBit1 = 1 << 7; | 197 constexpr uint8_t kKBit1 = 1 << 7; |
| 198 constexpr size_t kExpectedPacketMaskSize = 6; | 198 constexpr size_t kExpectedPacketMaskSize = 6; |
| 199 constexpr size_t kExpectedFecHeaderSize = 24; | 199 constexpr size_t kExpectedFecHeaderSize = 24; |
| 200 // clang-format off | 200 // clang-format off |
| 201 constexpr uint8_t kFlxfecPktMsk[] = {kKBit0 | 0x48, 0x81, | 201 constexpr uint8_t kFlxfecPktMsk[] = {kKBit0 | 0x48, 0x81, |
| 202 kKBit1 | 0x02, 0x11, 0x00, 0x21}; | 202 kKBit1 | 0x02, 0x11, 0x00, 0x21}; |
| 203 constexpr uint8_t kUlpfecPacketMask[] = {0x91, 0x02, | 203 constexpr uint8_t kUlpfecPacketMask[] = {0x91, 0x02, |
| 204 0x08, 0x44, 0x00, 0x84}; | 204 0x08, 0x44, 0x00, 0x84}; |
| 205 // clang-format on | 205 // clang-format on |
| 206 constexpr uint8_t kPacketData[] = { | 206 constexpr uint8_t kPacketData[] = { |
| 207 kNoFBit | kNoRBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], | 207 kNoRBit | kNoFBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], |
| 208 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], | 208 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], |
| 209 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, | 209 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, |
| 210 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], | 210 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], |
| 211 kSnBase[0], kSnBase[1], kFlxfecPktMsk[0], kFlxfecPktMsk[1], | 211 kSnBase[0], kSnBase[1], kFlxfecPktMsk[0], kFlxfecPktMsk[1], |
| 212 kFlxfecPktMsk[2], kFlxfecPktMsk[3], kFlxfecPktMsk[4], kFlxfecPktMsk[5], | 212 kFlxfecPktMsk[2], kFlxfecPktMsk[3], kFlxfecPktMsk[4], kFlxfecPktMsk[5], |
| 213 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; | 213 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; |
| 214 const size_t packet_length = sizeof(kPacketData); | 214 const size_t packet_length = sizeof(kPacketData); |
| 215 ReceivedFecPacket read_packet; | 215 ReceivedFecPacket read_packet; |
| 216 read_packet.pkt = rtc::scoped_refptr<Packet>(new Packet()); | 216 read_packet.pkt = rtc::scoped_refptr<Packet>(new Packet()); |
| 217 memcpy(read_packet.pkt->data, kPacketData, packet_length); | 217 memcpy(read_packet.pkt->data, kPacketData, packet_length); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 234 constexpr uint8_t kFlxfcPktMsk[] = {kKBit0 | 0x48, 0x81, | 234 constexpr uint8_t kFlxfcPktMsk[] = {kKBit0 | 0x48, 0x81, |
| 235 kKBit1 | 0x02, 0x11, 0x00, 0x21, | 235 kKBit1 | 0x02, 0x11, 0x00, 0x21, |
| 236 kKBit2 | 0x01, 0x11, 0x11, 0x11, | 236 kKBit2 | 0x01, 0x11, 0x11, 0x11, |
| 237 0x11, 0x11, 0x11, 0x11}; | 237 0x11, 0x11, 0x11, 0x11}; |
| 238 constexpr uint8_t kUlpfecPacketMask[] = {0x91, 0x02, | 238 constexpr uint8_t kUlpfecPacketMask[] = {0x91, 0x02, |
| 239 0x08, 0x44, 0x00, 0x84, | 239 0x08, 0x44, 0x00, 0x84, |
| 240 0x08, 0x88, 0x88, 0x88, | 240 0x08, 0x88, 0x88, 0x88, |
| 241 0x88, 0x88, 0x88, 0x88}; | 241 0x88, 0x88, 0x88, 0x88}; |
| 242 // clang-format on | 242 // clang-format on |
| 243 constexpr uint8_t kPacketData[] = { | 243 constexpr uint8_t kPacketData[] = { |
| 244 kNoFBit | kNoRBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], | 244 kNoRBit | kNoFBit, kPtRecovery, kLengthRecov[0], kLengthRecov[1], |
| 245 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], | 245 kTsRecovery[0], kTsRecovery[1], kTsRecovery[2], kTsRecovery[3], |
| 246 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, | 246 kSsrcCount, kReservedBits, kReservedBits, kReservedBits, |
| 247 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], | 247 kProtSsrc[0], kProtSsrc[1], kProtSsrc[2], kProtSsrc[3], |
| 248 kSnBase[0], kSnBase[1], kFlxfcPktMsk[0], kFlxfcPktMsk[1], | 248 kSnBase[0], kSnBase[1], kFlxfcPktMsk[0], kFlxfcPktMsk[1], |
| 249 kFlxfcPktMsk[2], kFlxfcPktMsk[3], kFlxfcPktMsk[4], kFlxfcPktMsk[5], | 249 kFlxfcPktMsk[2], kFlxfcPktMsk[3], kFlxfcPktMsk[4], kFlxfcPktMsk[5], |
| 250 kFlxfcPktMsk[6], kFlxfcPktMsk[7], kFlxfcPktMsk[8], kFlxfcPktMsk[9], | 250 kFlxfcPktMsk[6], kFlxfcPktMsk[7], kFlxfcPktMsk[8], kFlxfcPktMsk[9], |
| 251 kFlxfcPktMsk[10], kFlxfcPktMsk[11], kFlxfcPktMsk[12], kFlxfcPktMsk[13], | 251 kFlxfcPktMsk[10], kFlxfcPktMsk[11], kFlxfcPktMsk[12], kFlxfcPktMsk[13], |
| 252 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; | 252 kPayloadBits, kPayloadBits, kPayloadBits, kPayloadBits}; |
| 253 const size_t packet_length = sizeof(kPacketData); | 253 const size_t packet_length = sizeof(kPacketData); |
| 254 ReceivedFecPacket read_packet; | 254 ReceivedFecPacket read_packet; |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 | 550 |
| 551 auto written_packet = WriteHeader(packet_mask.get(), packet_mask_size); | 551 auto written_packet = WriteHeader(packet_mask.get(), packet_mask_size); |
| 552 auto read_packet = ReadHeader(*written_packet); | 552 auto read_packet = ReadHeader(*written_packet); |
| 553 | 553 |
| 554 VerifyWrittenAndReadHeaders(kFlexfecHeaderSizes[2], packet_mask.get(), | 554 VerifyWrittenAndReadHeaders(kFlexfecHeaderSizes[2], packet_mask.get(), |
| 555 kFlexfecPacketMaskSizes[2], *written_packet, | 555 kFlexfecPacketMaskSizes[2], *written_packet, |
| 556 *read_packet); | 556 *read_packet); |
| 557 } | 557 } |
| 558 | 558 |
| 559 } // namespace webrtc | 559 } // namespace webrtc |
| OLD | NEW |