Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 871 const uint8_t payload_type = 127; | 871 const uint8_t payload_type = 127; |
| 872 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, | 872 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, |
| 873 0, 1500)); | 873 0, 1500)); |
| 874 uint8_t payload[] = {47, 11, 32, 93, 89}; | 874 uint8_t payload[] = {47, 11, 32, 93, 89}; |
| 875 | 875 |
| 876 // Send keyframe | 876 // Send keyframe |
| 877 ASSERT_TRUE(rtp_sender_->SendOutgoingData(kVideoFrameKey, payload_type, 1234, | 877 ASSERT_TRUE(rtp_sender_->SendOutgoingData(kVideoFrameKey, payload_type, 1234, |
| 878 4321, payload, sizeof(payload), | 878 4321, payload, sizeof(payload), |
| 879 nullptr, nullptr, nullptr)); | 879 nullptr, nullptr, nullptr)); |
| 880 | 880 |
| 881 const uint8_t* payload_data = transport_.last_sent_packet().payload(); | 881 auto sent_payload = transport_.last_sent_packet().payload(); |
| 882 uint8_t generic_header = *payload_data++; | 882 uint8_t generic_header = sent_payload[0]; |
| 883 | |
| 884 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), | |
| 885 transport_.last_sent_packet().payload_size()); | |
| 886 | |
| 887 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); | 883 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); |
| 888 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); | 884 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); |
| 889 | 885 EXPECT_THAT(sent_payload.subview(1), ElementsAreArray(payload)); |
|
brandtr
2016/11/21 07:49:22
Nice!
| |
| 890 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | |
| 891 | 886 |
| 892 // Send delta frame | 887 // Send delta frame |
| 893 payload[0] = 13; | 888 payload[0] = 13; |
| 894 payload[1] = 42; | 889 payload[1] = 42; |
| 895 payload[4] = 13; | 890 payload[4] = 13; |
| 896 | 891 |
| 897 ASSERT_TRUE(rtp_sender_->SendOutgoingData( | 892 ASSERT_TRUE(rtp_sender_->SendOutgoingData( |
| 898 kVideoFrameDelta, payload_type, 1234, 4321, payload, sizeof(payload), | 893 kVideoFrameDelta, payload_type, 1234, 4321, payload, sizeof(payload), |
| 899 nullptr, nullptr, nullptr)); | 894 nullptr, nullptr, nullptr)); |
| 900 | 895 |
| 901 payload_data = transport_.last_sent_packet().payload(); | 896 sent_payload = transport_.last_sent_packet().payload(); |
| 902 generic_header = *payload_data++; | 897 generic_header = sent_payload[0]; |
| 903 | |
| 904 EXPECT_FALSE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); | 898 EXPECT_FALSE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); |
| 905 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); | 899 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); |
| 906 | 900 EXPECT_THAT(sent_payload.subview(1), ElementsAreArray(payload)); |
| 907 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), | |
| 908 transport_.last_sent_packet().payload_size()); | |
| 909 | |
| 910 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | |
| 911 } | 901 } |
| 912 | 902 |
| 913 TEST_F(RtpSenderTest, SendFlexfecPackets) { | 903 TEST_F(RtpSenderTest, SendFlexfecPackets) { |
| 914 constexpr int kMediaPayloadType = 127; | 904 constexpr int kMediaPayloadType = 127; |
| 915 constexpr int kFlexfecPayloadType = 118; | 905 constexpr int kFlexfecPayloadType = 118; |
| 916 constexpr uint32_t kMediaSsrc = 1234; | 906 constexpr uint32_t kMediaSsrc = 1234; |
| 917 constexpr uint32_t kFlexfecSsrc = 5678; | 907 constexpr uint32_t kFlexfecSsrc = 5678; |
| 918 const std::vector<RtpExtension> kNoRtpExtensions; | 908 const std::vector<RtpExtension> kNoRtpExtensions; |
| 919 FlexfecSender flexfec_sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, | 909 FlexfecSender flexfec_sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| 920 kNoRtpExtensions, &fake_clock_); | 910 kNoRtpExtensions, &fake_clock_); |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1251 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; | 1241 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; |
| 1252 const uint8_t payload_type = 127; | 1242 const uint8_t payload_type = 127; |
| 1253 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, | 1243 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, |
| 1254 0, 1500)); | 1244 0, 1500)); |
| 1255 uint8_t payload[] = {47, 11, 32, 93, 89}; | 1245 uint8_t payload[] = {47, 11, 32, 93, 89}; |
| 1256 | 1246 |
| 1257 ASSERT_TRUE(rtp_sender_->SendOutgoingData( | 1247 ASSERT_TRUE(rtp_sender_->SendOutgoingData( |
| 1258 kAudioFrameCN, payload_type, 1234, 4321, payload, | 1248 kAudioFrameCN, payload_type, 1234, 4321, payload, |
| 1259 sizeof(payload), nullptr, nullptr, nullptr)); | 1249 sizeof(payload), nullptr, nullptr, nullptr)); |
| 1260 | 1250 |
| 1261 const uint8_t* payload_data = transport_.last_sent_packet().payload(); | 1251 auto sent_payload = transport_.last_sent_packet().payload(); |
| 1262 | 1252 EXPECT_THAT(sent_payload, ElementsAreArray(payload)); |
| 1263 ASSERT_EQ(sizeof(payload), transport_.last_sent_packet().payload_size()); | |
| 1264 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | |
| 1265 } | 1253 } |
| 1266 | 1254 |
| 1267 TEST_F(RtpSenderAudioTest, SendAudioWithAudioLevelExtension) { | 1255 TEST_F(RtpSenderAudioTest, SendAudioWithAudioLevelExtension) { |
| 1268 EXPECT_EQ(0, rtp_sender_->SetAudioLevel(kAudioLevel)); | 1256 EXPECT_EQ(0, rtp_sender_->SetAudioLevel(kAudioLevel)); |
| 1269 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, | 1257 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, |
| 1270 kAudioLevelExtensionId)); | 1258 kAudioLevelExtensionId)); |
| 1271 | 1259 |
| 1272 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; | 1260 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; |
| 1273 const uint8_t payload_type = 127; | 1261 const uint8_t payload_type = 127; |
| 1274 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, | 1262 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, |
| 1275 0, 1500)); | 1263 0, 1500)); |
| 1276 uint8_t payload[] = {47, 11, 32, 93, 89}; | 1264 uint8_t payload[] = {47, 11, 32, 93, 89}; |
| 1277 | 1265 |
| 1278 ASSERT_TRUE(rtp_sender_->SendOutgoingData( | 1266 ASSERT_TRUE(rtp_sender_->SendOutgoingData( |
| 1279 kAudioFrameCN, payload_type, 1234, 4321, payload, | 1267 kAudioFrameCN, payload_type, 1234, 4321, payload, |
| 1280 sizeof(payload), nullptr, nullptr, nullptr)); | 1268 sizeof(payload), nullptr, nullptr, nullptr)); |
| 1281 | 1269 |
| 1282 const uint8_t* payload_data = transport_.last_sent_packet().payload(); | 1270 auto sent_payload = transport_.last_sent_packet().payload(); |
| 1283 | 1271 EXPECT_THAT(sent_payload, ElementsAreArray(payload)); |
| 1284 ASSERT_EQ(sizeof(payload), transport_.last_sent_packet().payload_size()); | |
| 1285 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | |
| 1286 // Verify AudioLevel extension. | 1272 // Verify AudioLevel extension. |
| 1287 bool voice_activity; | 1273 bool voice_activity; |
| 1288 uint8_t audio_level; | 1274 uint8_t audio_level; |
| 1289 EXPECT_TRUE(transport_.last_sent_packet().GetExtension<AudioLevel>( | 1275 EXPECT_TRUE(transport_.last_sent_packet().GetExtension<AudioLevel>( |
| 1290 &voice_activity, &audio_level)); | 1276 &voice_activity, &audio_level)); |
| 1291 EXPECT_EQ(kAudioLevel, audio_level); | 1277 EXPECT_EQ(kAudioLevel, audio_level); |
| 1292 EXPECT_FALSE(voice_activity); | 1278 EXPECT_FALSE(voice_activity); |
| 1293 } | 1279 } |
| 1294 | 1280 |
| 1295 // As RFC4733, named telephone events are carried as part of the audio stream | 1281 // As RFC4733, named telephone events are carried as part of the audio stream |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1538 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1); | 1524 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1); |
| 1539 rtp_sender_->SetTransportOverhead(28); | 1525 rtp_sender_->SetTransportOverhead(28); |
| 1540 rtp_sender_->SetTransportOverhead(28); | 1526 rtp_sender_->SetTransportOverhead(28); |
| 1541 | 1527 |
| 1542 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1); | 1528 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1); |
| 1543 SendGenericPayload(); | 1529 SendGenericPayload(); |
| 1544 SendGenericPayload(); | 1530 SendGenericPayload(); |
| 1545 } | 1531 } |
| 1546 | 1532 |
| 1547 } // namespace webrtc | 1533 } // namespace webrtc |
| OLD | NEW |