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

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

Issue 1675583002: [rtp_rtcp] rtcp::Tmmbr cleaned and got Parse function (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 months 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 851 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 862
863 TEST_F(RtcpReceiverTest, TmmbrPacketAccepted) { 863 TEST_F(RtcpReceiverTest, TmmbrPacketAccepted) {
864 const uint32_t kMediaFlowSsrc = 0x2040608; 864 const uint32_t kMediaFlowSsrc = 0x2040608;
865 const uint32_t kSenderSsrc = 0x10203; 865 const uint32_t kSenderSsrc = 0x10203;
866 std::set<uint32_t> ssrcs; 866 std::set<uint32_t> ssrcs;
867 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above. 867 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above.
868 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs); 868 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs);
869 869
870 rtcp::Tmmbr tmmbr; 870 rtcp::Tmmbr tmmbr;
871 tmmbr.From(kSenderSsrc); 871 tmmbr.From(kSenderSsrc);
872 tmmbr.To(kMediaFlowSsrc); 872 tmmbr.WithTmmbr(rtcp::TmmbItem(kMediaFlowSsrc, 30000, 0));
873 tmmbr.WithBitrateKbps(30);
874 873
875 rtcp::SenderReport sr; 874 rtcp::SenderReport sr;
876 sr.From(kSenderSsrc); 875 sr.From(kSenderSsrc);
877 sr.Append(&tmmbr); 876 sr.Append(&tmmbr);
878 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build()); 877 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
879 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length())); 878 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
880 879
881 EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(0, 0, nullptr)); 880 EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
882 TMMBRSet candidate_set; 881 TMMBRSet candidate_set;
883 candidate_set.VerifyAndAllocateSet(1); 882 candidate_set.VerifyAndAllocateSet(1);
884 EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(1, 0, &candidate_set)); 883 EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(1, 0, &candidate_set));
885 EXPECT_LT(0U, candidate_set.Tmmbr(0)); 884 EXPECT_LT(0U, candidate_set.Tmmbr(0));
886 EXPECT_EQ(kSenderSsrc, candidate_set.Ssrc(0)); 885 EXPECT_EQ(kSenderSsrc, candidate_set.Ssrc(0));
887 } 886 }
888 887
889 TEST_F(RtcpReceiverTest, TmmbrPacketNotForUsIgnored) { 888 TEST_F(RtcpReceiverTest, TmmbrPacketNotForUsIgnored) {
890 const uint32_t kMediaFlowSsrc = 0x2040608; 889 const uint32_t kMediaFlowSsrc = 0x2040608;
891 const uint32_t kSenderSsrc = 0x10203; 890 const uint32_t kSenderSsrc = 0x10203;
892 891
893 rtcp::Tmmbr tmmbr; 892 rtcp::Tmmbr tmmbr;
894 tmmbr.From(kSenderSsrc); 893 tmmbr.From(kSenderSsrc);
895 tmmbr.To(kMediaFlowSsrc + 1); // This SSRC is not what we are sending. 894 // This SSRC is not what we are sending.
896 tmmbr.WithBitrateKbps(30); 895 tmmbr.WithTmmbr(rtcp::TmmbItem(kMediaFlowSsrc + 1, 30000, 0));
897 896
898 rtcp::SenderReport sr; 897 rtcp::SenderReport sr;
899 sr.From(kSenderSsrc); 898 sr.From(kSenderSsrc);
900 sr.Append(&tmmbr); 899 sr.Append(&tmmbr);
901 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build()); 900 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
902 901
903 std::set<uint32_t> ssrcs; 902 std::set<uint32_t> ssrcs;
904 ssrcs.insert(kMediaFlowSsrc); 903 ssrcs.insert(kMediaFlowSsrc);
905 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs); 904 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs);
906 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length())); 905 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
907 EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr)); 906 EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
908 } 907 }
909 908
910 TEST_F(RtcpReceiverTest, TmmbrPacketZeroRateIgnored) { 909 TEST_F(RtcpReceiverTest, TmmbrPacketZeroRateIgnored) {
911 const uint32_t kMediaFlowSsrc = 0x2040608; 910 const uint32_t kMediaFlowSsrc = 0x2040608;
912 const uint32_t kSenderSsrc = 0x10203; 911 const uint32_t kSenderSsrc = 0x10203;
913 std::set<uint32_t> ssrcs; 912 std::set<uint32_t> ssrcs;
914 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above. 913 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above.
915 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs); 914 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs);
916 915
917 rtcp::Tmmbr tmmbr; 916 rtcp::Tmmbr tmmbr;
918 tmmbr.From(kSenderSsrc); 917 tmmbr.From(kSenderSsrc);
919 tmmbr.To(kMediaFlowSsrc); 918 tmmbr.WithTmmbr(rtcp::TmmbItem(kMediaFlowSsrc, 0, 0));
920 tmmbr.WithBitrateKbps(0);
921 919
922 rtcp::SenderReport sr; 920 rtcp::SenderReport sr;
923 sr.From(kSenderSsrc); 921 sr.From(kSenderSsrc);
924 sr.Append(&tmmbr); 922 sr.Append(&tmmbr);
925 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build()); 923 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
926 924
927 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length())); 925 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
928 EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr)); 926 EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
929 } 927 }
930 928
931 TEST_F(RtcpReceiverTest, TmmbrThreeConstraintsTimeOut) { 929 TEST_F(RtcpReceiverTest, TmmbrThreeConstraintsTimeOut) {
932 const uint32_t kMediaFlowSsrc = 0x2040608; 930 const uint32_t kMediaFlowSsrc = 0x2040608;
933 const uint32_t kSenderSsrc = 0x10203; 931 const uint32_t kSenderSsrc = 0x10203;
934 std::set<uint32_t> ssrcs; 932 std::set<uint32_t> ssrcs;
935 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above. 933 ssrcs.insert(kMediaFlowSsrc); // Matches "media source" above.
936 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs); 934 rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs);
937 935
938 // Inject 3 packets "from" kSenderSsrc, kSenderSsrc+1, kSenderSsrc+2. 936 // Inject 3 packets "from" kSenderSsrc, kSenderSsrc+1, kSenderSsrc+2.
939 // The times of arrival are starttime + 0, starttime + 5 and starttime + 10. 937 // The times of arrival are starttime + 0, starttime + 5 and starttime + 10.
940 for (uint32_t ssrc = kSenderSsrc; ssrc < kSenderSsrc + 3; ++ssrc) { 938 for (uint32_t ssrc = kSenderSsrc; ssrc < kSenderSsrc + 3; ++ssrc) {
941 rtcp::Tmmbr tmmbr; 939 rtcp::Tmmbr tmmbr;
942 tmmbr.From(ssrc); 940 tmmbr.From(ssrc);
943 tmmbr.To(kMediaFlowSsrc); 941 tmmbr.WithTmmbr(rtcp::TmmbItem(kMediaFlowSsrc, 30000, 0));
944 tmmbr.WithBitrateKbps(30);
945 942
946 rtcp::SenderReport sr; 943 rtcp::SenderReport sr;
947 sr.From(ssrc); 944 sr.From(ssrc);
948 sr.Append(&tmmbr); 945 sr.Append(&tmmbr);
949 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build()); 946 rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
950 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length())); 947 EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
951 // 5 seconds between each packet. 948 // 5 seconds between each packet.
952 system_clock_.AdvanceTimeMilliseconds(5000); 949 system_clock_.AdvanceTimeMilliseconds(5000);
953 } 950 }
954 // It is now starttime + 15. 951 // It is now starttime + 15.
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 1096
1100 // Transport feedback should be ignored, but next packet should work. 1097 // Transport feedback should be ignored, but next packet should work.
1101 EXPECT_EQ(0u, rtcp_packet_info_.rtcpPacketTypeFlags & kRtcpTransportFeedback); 1098 EXPECT_EQ(0u, rtcp_packet_info_.rtcpPacketTypeFlags & kRtcpTransportFeedback);
1102 EXPECT_NE(0u, rtcp_packet_info_.rtcpPacketTypeFlags & kRtcpRemb); 1099 EXPECT_NE(0u, rtcp_packet_info_.rtcpPacketTypeFlags & kRtcpRemb);
1103 EXPECT_EQ(kBitrateBps, rtcp_packet_info_.receiverEstimatedMaxBitrate); 1100 EXPECT_EQ(kBitrateBps, rtcp_packet_info_.receiverEstimatedMaxBitrate);
1104 } 1101 }
1105 1102
1106 } // Anonymous namespace 1103 } // Anonymous namespace
1107 1104
1108 } // namespace webrtc 1105 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698