aboutsummaryrefslogtreecommitdiff
path: root/pc/peer_connection_simulcast_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'pc/peer_connection_simulcast_unittest.cc')
-rw-r--r--pc/peer_connection_simulcast_unittest.cc24
1 files changed, 22 insertions, 2 deletions
diff --git a/pc/peer_connection_simulcast_unittest.cc b/pc/peer_connection_simulcast_unittest.cc
index 8822a980f7..31385754b7 100644
--- a/pc/peer_connection_simulcast_unittest.cc
+++ b/pc/peer_connection_simulcast_unittest.cc
@@ -157,9 +157,10 @@ class PeerConnectionSimulcastTests : public ::testing::Test {
rtc::scoped_refptr<RtpTransceiverInterface> AddTransceiver(
PeerConnectionWrapper* pc,
- const std::vector<SimulcastLayer>& layers) {
+ const std::vector<SimulcastLayer>& layers,
+ cricket::MediaType media_type = cricket::MEDIA_TYPE_VIDEO) {
auto init = CreateTransceiverInit(layers);
- return pc->AddTransceiver(cricket::MEDIA_TYPE_VIDEO, init);
+ return pc->AddTransceiver(media_type, init);
}
SimulcastDescription RemoveSimulcast(SessionDescriptionInterface* sd) {
@@ -556,6 +557,25 @@ TEST_F(PeerConnectionSimulcastTests, NegotiationDoesNotHaveRidExtension) {
ValidateTransceiverParameters(transceiver, expected_layers);
}
+TEST_F(PeerConnectionSimulcastTests, SimulcastAudioRejected) {
+ auto local = CreatePeerConnectionWrapper();
+ auto remote = CreatePeerConnectionWrapper();
+ auto layers = CreateLayers({"1", "2", "3", "4"}, true);
+ auto transceiver =
+ AddTransceiver(local.get(), layers, cricket::MEDIA_TYPE_AUDIO);
+ // Should only have the first layer.
+ auto parameters = transceiver->sender()->GetParameters();
+ EXPECT_EQ(1u, parameters.encodings.size());
+ EXPECT_THAT(parameters.encodings,
+ ElementsAre(Field("rid", &RtpEncodingParameters::rid, Eq(""))));
+ ExchangeOfferAnswer(local.get(), remote.get(), {});
+ // Still have a single layer after negotiation
+ parameters = transceiver->sender()->GetParameters();
+ EXPECT_EQ(1u, parameters.encodings.size());
+ EXPECT_THAT(parameters.encodings,
+ ElementsAre(Field("rid", &RtpEncodingParameters::rid, Eq(""))));
+}
+
#if RTC_METRICS_ENABLED
//
// Checks the logged metrics when simulcast is not used.