Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc

Issue 2506373004: RtpPacket::payload() return rtc::ArrayView instead of raw pointer (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698