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 |