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