• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright 2013 The WebRTC project authors. All Rights Reserved.
3  *
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
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 package org.webrtc;
12 
13 import static org.junit.Assert.assertEquals;
14 import static org.mockito.Mockito.mock;
15 
16 import android.support.test.InstrumentationRegistry;
17 import androidx.test.filters.SmallTest;
18 import java.util.ArrayList;
19 import java.util.Arrays;
20 import java.util.Collections;
21 import java.util.List;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.webrtc.RtpParameters.Encoding;
25 import org.webrtc.RtpTransceiver.RtpTransceiverInit;
26 
27 /** Unit-tests for {@link RtpTransceiver}. */
28 public class RtpTransceiverTest {
29   private PeerConnectionFactory factory;
30   private PeerConnection pc;
31 
32   @Before
setUp()33   public void setUp() {
34     PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions
35                                          .builder(InstrumentationRegistry.getTargetContext())
36                                          .setNativeLibraryName(TestConstants.NATIVE_LIBRARY)
37                                          .createInitializationOptions());
38 
39     factory = PeerConnectionFactory.builder().createPeerConnectionFactory();
40 
41     PeerConnection.RTCConfiguration config = new PeerConnection.RTCConfiguration(Arrays.asList());
42     // RtpTranceiver is part of new unified plan semantics.
43     config.sdpSemantics = PeerConnection.SdpSemantics.UNIFIED_PLAN;
44     pc = factory.createPeerConnection(config, mock(PeerConnection.Observer.class));
45   }
46 
47   /** Test that RIDs get set in the RTP sender when passed in through an RtpTransceiverInit. */
48   @Test
49   @SmallTest
testSetRidInSimulcast()50   public void testSetRidInSimulcast() throws Exception {
51     List<Encoding> encodings = new ArrayList<Encoding>();
52     encodings.add(new Encoding("F", true, null));
53     encodings.add(new Encoding("H", true, null));
54 
55     RtpTransceiverInit init = new RtpTransceiverInit(
56         RtpTransceiver.RtpTransceiverDirection.SEND_ONLY, Collections.emptyList(), encodings);
57     RtpTransceiver transceiver =
58         pc.addTransceiver(MediaStreamTrack.MediaType.MEDIA_TYPE_VIDEO, init);
59 
60     RtpSender sender = transceiver.getSender();
61     RtpParameters parameters = sender.getParameters();
62     List<Encoding> sendEncodings = parameters.getEncodings();
63     assertEquals(2, sendEncodings.size());
64     assertEquals("F", sendEncodings.get(0).getRid());
65     assertEquals("H", sendEncodings.get(1).getRid());
66   }
67 }
68