diff --git a/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java b/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java index df12b82470..ae3a5228d6 100644 --- a/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java +++ b/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java @@ -19,7 +19,7 @@ import org.webrtc.IceCandidate; import org.webrtc.PeerConnection; import org.webrtc.SessionDescription; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.regex.Matcher; @@ -233,7 +233,7 @@ public class DirectRTCClient implements AppRTCClient, TCPChannelClient.TCPChanne SignalingParameters parameters = new SignalingParameters( // Ice servers are not needed for direct connections. - new LinkedList<>(), + new ArrayList<>(), isServer, // Server side acts as the initiator on direct connections. null, // clientId null, // wssUrl @@ -269,7 +269,7 @@ public class DirectRTCClient implements AppRTCClient, TCPChannelClient.TCPChanne SignalingParameters parameters = new SignalingParameters( // Ice servers are not needed for direct connections. - new LinkedList<>(), + new ArrayList<>(), false, // This code will only be run on the client side. So, we are not the initiator. null, // clientId null, // wssUrl diff --git a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java index 156d06f952..e4cd937394 100644 --- a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java +++ b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -139,7 +139,7 @@ public class PeerConnectionClient { // Queued remote ICE candidates are consumed only after both local and // remote descriptions are set. Similarly local ICE candidates are sent to // remote peer after both local and remote description are set. - private LinkedList queuedRemoteCandidates; + private List queuedRemoteCandidates; private PeerConnectionEvents events; private boolean isInitiator; private SessionDescription localSdp; // either offer or answer SDP @@ -603,7 +603,7 @@ public class PeerConnectionClient { Log.d(TAG, "Create peer connection."); Log.d(TAG, "PCConstraints: " + pcConstraints.toString()); - queuedRemoteCandidates = new LinkedList<>(); + queuedRemoteCandidates = new ArrayList<>(); if (videoCallEnabled) { factory.setVideoHwAccelerationOptions( diff --git a/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java b/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java index 8f18a75880..2ad109306b 100644 --- a/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java +++ b/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java @@ -15,8 +15,9 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.Scanner; +import java.util.List; import org.appspot.apprtc.AppRTCClient.SignalingParameters; import org.appspot.apprtc.util.AsyncHttpURLConnection; import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents; @@ -82,7 +83,7 @@ public class RoomParametersFetcher { private void roomHttpResponseParse(String response) { Log.d(TAG, "Room response: " + response); try { - LinkedList iceCandidates = null; + List iceCandidates = null; SessionDescription offerSdp = null; JSONObject roomJson = new JSONObject(response); @@ -99,7 +100,7 @@ public class RoomParametersFetcher { String wssPostUrl = roomJson.getString("wss_post_url"); boolean initiator = (roomJson.getBoolean("is_initiator")); if (!initiator) { - iceCandidates = new LinkedList<>(); + iceCandidates = new ArrayList<>(); String messagesString = roomJson.getString("messages"); JSONArray messages = new JSONArray(messagesString); for (int i = 0; i < messages.length(); ++i) { @@ -124,7 +125,7 @@ public class RoomParametersFetcher { Log.d(TAG, "WSS url: " + wssUrl); Log.d(TAG, "WSS POST url: " + wssPostUrl); - LinkedList iceServers = + List iceServers = iceServersFromPCConfigJSON(roomJson.getString("pc_config")); boolean isTurnPresent = false; for (PeerConnection.IceServer server : iceServers) { @@ -138,7 +139,7 @@ public class RoomParametersFetcher { } // Request TURN servers. if (!isTurnPresent && !roomJson.optString("ice_server_url").isEmpty()) { - LinkedList turnServers = + List turnServers = requestTurnServers(roomJson.getString("ice_server_url")); for (PeerConnection.IceServer turnServer : turnServers) { Log.d(TAG, "TurnServer: " + turnServer); @@ -158,9 +159,9 @@ public class RoomParametersFetcher { // Requests & returns a TURN ICE Server based on a request URL. Must be run // off the main thread! - private LinkedList requestTurnServers(String url) + private List requestTurnServers(String url) throws IOException, JSONException { - LinkedList turnServers = new LinkedList<>(); + List turnServers = new ArrayList<>(); Log.d(TAG, "Request TURN from: " + url); HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setDoOutput(true); @@ -198,11 +199,11 @@ public class RoomParametersFetcher { // Return the list of ICE servers described by a WebRTCPeerConnection // configuration string. - private LinkedList iceServersFromPCConfigJSON(String pcConfig) + private List iceServersFromPCConfigJSON(String pcConfig) throws JSONException { JSONObject json = new JSONObject(pcConfig); JSONArray servers = json.getJSONArray("iceServers"); - LinkedList ret = new LinkedList<>(); + List ret = new ArrayList<>(); for (int i = 0; i < servers.length(); ++i) { JSONObject server = servers.getJSONObject(i); String url = server.getString("urls"); @@ -218,7 +219,7 @@ public class RoomParametersFetcher { // Return the contents of an InputStream as a String. private static String drainStream(InputStream in) { - Scanner s = new Scanner(in).useDelimiter("\\A"); + Scanner s = new Scanner(in, "UTF-8").useDelimiter("\\A"); return s.hasNext() ? s.next() : ""; } } diff --git a/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java b/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java index c013c76f0d..d3e5c8751b 100644 --- a/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java +++ b/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java @@ -17,7 +17,8 @@ import de.tavendo.autobahn.WebSocketConnection; import de.tavendo.autobahn.WebSocketException; import java.net.URI; import java.net.URISyntaxException; -import java.util.LinkedList; +import java.util.ArrayList; +import java.util.List; import org.appspot.apprtc.util.AsyncHttpURLConnection; import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents; import org.json.JSONException; @@ -48,7 +49,7 @@ public class WebSocketChannelClient { private boolean closeEvent; // WebSocket send queue. Messages are added to the queue when WebSocket // client is not registered and are consumed in register() call. - private final LinkedList wsSendQueue; + private final List wsSendQueue = new ArrayList<>(); /** * Possible WebSocket connection states. @@ -70,7 +71,6 @@ public class WebSocketChannelClient { this.events = events; roomID = null; clientID = null; - wsSendQueue = new LinkedList<>(); state = WebSocketConnectionState.NEW; } diff --git a/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java b/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java index f6f4d3aa95..3a721b6229 100644 --- a/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java +++ b/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java @@ -108,7 +108,7 @@ public class AsyncHttpURLConnection { // Return the contents of an InputStream as a String. private static String drainStream(InputStream in) { - Scanner s = new Scanner(in).useDelimiter("\\A"); + Scanner s = new Scanner(in, "UTF-8").useDelimiter("\\A"); return s.hasNext() ? s.next() : ""; } } diff --git a/examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java b/examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java index f2b21e49ad..0724ec17c0 100644 --- a/examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java +++ b/examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java @@ -32,7 +32,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.util.Log; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import org.appspot.apprtc.AppRTCBluetoothManager.State; import org.chromium.testing.local.LocalRobolectricTestRunner; @@ -73,7 +73,7 @@ public class BluetoothManagerTest { mockedAudioManager = mock(AudioManager.class); mockedBluetoothHeadset = mock(BluetoothHeadset.class); mockedBluetoothDevice = mock(BluetoothDevice.class); - mockedBluetoothDeviceList = new LinkedList(); + mockedBluetoothDeviceList = new ArrayList(); // Simulate that bluetooth SCO audio is available by default. when(mockedAudioManager.isBluetoothScoAvailableOffCall()).thenReturn(true); diff --git a/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java b/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java index cae09e0d42..56eb3f7284 100644 --- a/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java +++ b/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java @@ -18,7 +18,7 @@ import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.util.Log; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; @@ -79,7 +79,7 @@ public class PeerConnectionClientTest implements PeerConnectionEvents { private boolean isClosed; private boolean isIceConnected; private SessionDescription localSdp; - private List iceCandidates = new LinkedList<>(); + private List iceCandidates = new ArrayList<>(); private final Object localSdpEvent = new Object(); private final Object iceCandidateEvent = new Object(); private final Object iceConnectedEvent = new Object(); @@ -309,7 +309,7 @@ public class PeerConnectionClientTest implements PeerConnectionEvents { PeerConnectionClient createPeerConnectionClient(MockSink localRenderer, MockRenderer remoteRenderer, PeerConnectionParameters peerConnectionParameters, VideoCapturer videoCapturer) { - List iceServers = new LinkedList<>(); + List iceServers = new ArrayList<>(); SignalingParameters signalingParameters = new SignalingParameters(iceServers, true, // iceServers, initiator. null, null, null, // clientId, wssUrl, wssPostUrl. diff --git a/sdk/android/api/org/webrtc/MediaCodecVideoDecoder.java b/sdk/android/api/org/webrtc/MediaCodecVideoDecoder.java index 49e1630608..82957edd8e 100644 --- a/sdk/android/api/org/webrtc/MediaCodecVideoDecoder.java +++ b/sdk/android/api/org/webrtc/MediaCodecVideoDecoder.java @@ -19,9 +19,9 @@ import android.os.Build; import android.os.SystemClock; import android.view.Surface; import java.nio.ByteBuffer; +import java.util.ArrayDeque; import java.util.Arrays; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Set; @@ -104,7 +104,7 @@ public class MediaCodecVideoDecoder { private int stride; private int sliceHeight; private boolean hasDecodedFirstFrame; - private final Queue decodeStartTimeMs = new LinkedList(); + private final Queue decodeStartTimeMs = new ArrayDeque(); private boolean useSurface; // The below variables are only used when decoding to a Surface. @@ -112,7 +112,7 @@ public class MediaCodecVideoDecoder { private int droppedFrames; private Surface surface = null; private final Queue dequeuedSurfaceOutputBuffers = - new LinkedList(); + new ArrayDeque(); // MediaCodec error handler - invoked when critical error happens which may prevent // further use of media codec API. Now it means that one of media codec instances diff --git a/sdk/android/api/org/webrtc/MediaConstraints.java b/sdk/android/api/org/webrtc/MediaConstraints.java index 1e74bcfb59..259d546812 100644 --- a/sdk/android/api/org/webrtc/MediaConstraints.java +++ b/sdk/android/api/org/webrtc/MediaConstraints.java @@ -10,7 +10,7 @@ package org.webrtc; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; /** @@ -63,8 +63,8 @@ public class MediaConstraints { public final List optional; public MediaConstraints() { - mandatory = new LinkedList(); - optional = new LinkedList(); + mandatory = new ArrayList(); + optional = new ArrayList(); } private static String stringifyKeyValuePairList(List list) { diff --git a/sdk/android/api/org/webrtc/MediaStream.java b/sdk/android/api/org/webrtc/MediaStream.java index a00c0bca21..798dd9944e 100644 --- a/sdk/android/api/org/webrtc/MediaStream.java +++ b/sdk/android/api/org/webrtc/MediaStream.java @@ -10,20 +10,18 @@ package org.webrtc; -import java.util.LinkedList; +import java.util.ArrayList; +import java.util.List; /** Java wrapper for a C++ MediaStreamInterface. */ public class MediaStream { - public final LinkedList audioTracks; - public final LinkedList videoTracks; - public final LinkedList preservedVideoTracks; + public final List audioTracks = new ArrayList<>(); + public final List videoTracks = new ArrayList<>(); + public final List preservedVideoTracks = new ArrayList<>(); // Package-protected for PeerConnection. final long nativeStream; public MediaStream(long nativeStream) { - audioTracks = new LinkedList(); - videoTracks = new LinkedList(); - preservedVideoTracks = new LinkedList(); this.nativeStream = nativeStream; } @@ -68,18 +66,18 @@ public class MediaStream { public void dispose() { // Remove and release previously added audio and video tracks. while (!audioTracks.isEmpty()) { - AudioTrack track = audioTracks.getFirst(); + AudioTrack track = audioTracks.get(0 /* index */); removeTrack(track); track.dispose(); } while (!videoTracks.isEmpty()) { - VideoTrack track = videoTracks.getFirst(); + VideoTrack track = videoTracks.get(0 /* index */); removeTrack(track); track.dispose(); } // Remove, but do not release preserved video tracks. while (!preservedVideoTracks.isEmpty()) { - removeTrack(preservedVideoTracks.getFirst()); + removeTrack(preservedVideoTracks.get(0 /* index */)); } free(nativeStream); } diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java index 5dd8832f46..b6beea0d99 100644 --- a/sdk/android/api/org/webrtc/PeerConnection.java +++ b/sdk/android/api/org/webrtc/PeerConnection.java @@ -11,7 +11,7 @@ package org.webrtc; import java.util.Collections; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; /** @@ -334,18 +334,15 @@ public class PeerConnection { } }; - private final List localStreams; + private final List localStreams = new ArrayList<>(); private final long nativePeerConnection; private final long nativeObserver; - private List senders; - private List receivers; + private List senders = new ArrayList<>(); + private List receivers = new ArrayList<>(); PeerConnection(long nativePeerConnection, long nativeObserver) { this.nativePeerConnection = nativePeerConnection; this.nativeObserver = nativeObserver; - localStreams = new LinkedList(); - senders = new LinkedList(); - receivers = new LinkedList(); } // JsepInterface. diff --git a/sdk/android/api/org/webrtc/RtpParameters.java b/sdk/android/api/org/webrtc/RtpParameters.java index fde2b35502..f1cca9d660 100644 --- a/sdk/android/api/org/webrtc/RtpParameters.java +++ b/sdk/android/api/org/webrtc/RtpParameters.java @@ -10,7 +10,8 @@ package org.webrtc; -import java.util.LinkedList; +import java.util.List; +import java.util.ArrayList; /** * The parameters for an {@code RtpSender}, as defined in @@ -48,14 +49,9 @@ public class RtpParameters { public Integer numChannels; } - public final LinkedList encodings; + public final List encodings = new ArrayList<>(); // Codec parameters can't currently be changed between getParameters and // setParameters. Though in the future it will be possible to reorder them or // remove them. - public final LinkedList codecs; - - public RtpParameters() { - encodings = new LinkedList(); - codecs = new LinkedList(); - } + public final List codecs = new ArrayList<>(); } diff --git a/sdk/android/api/org/webrtc/VideoTrack.java b/sdk/android/api/org/webrtc/VideoTrack.java index e3a38472c9..7839a03998 100644 --- a/sdk/android/api/org/webrtc/VideoTrack.java +++ b/sdk/android/api/org/webrtc/VideoTrack.java @@ -11,11 +11,12 @@ package org.webrtc; import java.util.IdentityHashMap; -import java.util.LinkedList; +import java.util.ArrayList; +import java.util.List; /** Java version of VideoTrackInterface. */ public class VideoTrack extends MediaStreamTrack { - private final LinkedList renderers = new LinkedList(); + private final List renderers = new ArrayList<>(); private final IdentityHashMap sinks = new IdentityHashMap(); public VideoTrack(long nativeTrack) { @@ -64,9 +65,11 @@ public class VideoTrack extends MediaStreamTrack { @Override public void dispose() { - while (!renderers.isEmpty()) { - removeRenderer(renderers.getFirst()); + for (VideoRenderer renderer : renderers) { + nativeRemoveSink(nativeTrack, renderer.nativeVideoRenderer); + renderer.dispose(); } + renderers.clear(); for (long nativeSink : sinks.values()) { nativeRemoveSink(nativeTrack, nativeSink); nativeFreeSink(nativeSink); diff --git a/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java b/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java index 3ab05545fb..eccdd723c0 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java @@ -26,7 +26,7 @@ import org.junit.runner.RunWith; public class Camera1CapturerUsingByteBufferTest { static final String TAG = "Camera1CapturerUsingByteBufferTest"; - private class TestObjectFactory extends CameraVideoCapturerTestFixtures.TestObjectFactory { + private static class TestObjectFactory extends CameraVideoCapturerTestFixtures.TestObjectFactory { @Override public boolean isCapturingToTexture() { return false; diff --git a/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java b/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java index 10fcad217c..b067662966 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java @@ -26,7 +26,7 @@ import org.junit.runner.RunWith; public class Camera1CapturerUsingTextureTest { static final String TAG = "Camera1CapturerUsingTextureTest"; - private class TestObjectFactory extends CameraVideoCapturerTestFixtures.TestObjectFactory { + private static class TestObjectFactory extends CameraVideoCapturerTestFixtures.TestObjectFactory { @Override public CameraEnumerator getCameraEnumerator() { return new Camera1Enumerator(); diff --git a/sdk/android/instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java b/sdk/android/instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java index e0bd8b10d5..5fbf239c44 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java @@ -309,16 +309,15 @@ public class HardwareVideoEncoderTest { case OK: return; // Success case NO_OUTPUT: - if (numTries < NUM_ENCODE_TRIES) { - try { - Thread.sleep(ENCODE_RETRY_SLEEP_MS); // Try again. - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - break; - } else { + if (numTries >= NUM_ENCODE_TRIES) { fail("encoder.encode keeps returning NO_OUTPUT"); } + try { + Thread.sleep(ENCODE_RETRY_SLEEP_MS); // Try again. + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + break; default: fail("encoder.encode returned: " + returnValue); // Error } diff --git a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java index c7c3f7b6be..2cd3e126e3 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java @@ -26,8 +26,10 @@ import java.nio.charset.Charset; import java.util.Arrays; import java.util.HashSet; import java.util.IdentityHashMap; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; +import java.util.Queue; +import java.util.ArrayDeque; import java.util.Map; import java.util.TreeSet; import java.util.concurrent.CountDownLatch; @@ -66,25 +68,21 @@ public class PeerConnectionTest { private int expectedHeight = 0; private int expectedFramesDelivered = 0; private int expectedTracksAdded = 0; - private LinkedList expectedSignalingChanges = new LinkedList(); - private LinkedList expectedIceConnectionChanges = - new LinkedList(); - private LinkedList expectedIceGatheringChanges = - new LinkedList(); - private LinkedList expectedAddStreamLabels = new LinkedList(); - private LinkedList expectedRemoveStreamLabels = new LinkedList(); - private final LinkedList gotIceCandidates = new LinkedList(); - private Map> renderers = - new IdentityHashMap>(); + private Queue expectedSignalingChanges = new ArrayDeque<>(); + private Queue expectedIceConnectionChanges = new ArrayDeque<>(); + private Queue expectedIceGatheringChanges = new ArrayDeque<>(); + private Queue expectedAddStreamLabels = new ArrayDeque<>(); + private Queue expectedRemoveStreamLabels = new ArrayDeque<>(); + private final List gotIceCandidates = new ArrayList<>(); + private Map> renderers = new IdentityHashMap<>(); private DataChannel dataChannel; - private LinkedList expectedBuffers = new LinkedList(); - private LinkedList expectedStateChanges = - new LinkedList(); - private LinkedList expectedRemoteDataChannelLabels = new LinkedList(); + private Queue expectedBuffers = new ArrayDeque<>(); + private Queue expectedStateChanges = new ArrayDeque<>(); + private Queue expectedRemoteDataChannelLabels = new ArrayDeque<>(); private int expectedOldStatsCallbacks = 0; private int expectedNewStatsCallbacks = 0; - private LinkedList gotStatsReports = new LinkedList(); - private final HashSet gotRemoteStreams = new HashSet(); + private List gotStatsReports = new ArrayList<>(); + private final HashSet gotRemoteStreams = new HashSet<>(); private int expectedFirstAudioPacket = 0; private int expectedFirstVideoPacket = 0; @@ -160,7 +158,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onSignalingChange(SignalingState newState) { - assertEquals(expectedSignalingChanges.removeFirst(), newState); + assertEquals(expectedSignalingChanges.remove(), newState); } // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @@ -184,7 +182,7 @@ public class PeerConnectionTest { return; } - assertEquals(expectedIceConnectionChanges.removeFirst(), newState); + assertEquals(expectedIceConnectionChanges.remove(), newState); } @Override @@ -213,7 +211,7 @@ public class PeerConnectionTest { if (expectedIceGatheringChanges.isEmpty()) { System.out.println(name + "Got an unexpected ICE gathering change " + newState); } - assertEquals(expectedIceGatheringChanges.removeFirst(), newState); + assertEquals(expectedIceGatheringChanges.remove(), newState); } // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @@ -226,7 +224,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onAddStream(MediaStream stream) { - assertEquals(expectedAddStreamLabels.removeFirst(), stream.label()); + assertEquals(expectedAddStreamLabels.remove(), stream.label()); for (AudioTrack track : stream.audioTracks) { assertEquals("audio", track.kind()); } @@ -249,7 +247,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onRemoveStream(MediaStream stream) { - assertEquals(expectedRemoveStreamLabels.removeFirst(), stream.label()); + assertEquals(expectedRemoveStreamLabels.remove(), stream.label()); WeakReference renderer = renderers.remove(stream); assertNotNull(renderer); assertNotNull(renderer.get()); @@ -268,7 +266,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onDataChannel(DataChannel remoteDataChannel) { - assertEquals(expectedRemoteDataChannelLabels.removeFirst(), remoteDataChannel.label()); + assertEquals(expectedRemoteDataChannelLabels.remove(), remoteDataChannel.label()); setDataChannel(remoteDataChannel); assertEquals(DataChannel.State.CONNECTING, dataChannel.state()); } @@ -309,7 +307,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onMessage(DataChannel.Buffer buffer) { - DataChannel.Buffer expected = expectedBuffers.removeFirst(); + DataChannel.Buffer expected = expectedBuffers.remove(); assertEquals(expected.binary, buffer.binary); assertTrue(expected.data.equals(buffer.data)); } @@ -325,7 +323,7 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") public synchronized void onStateChange() { - assertEquals(expectedStateChanges.removeFirst(), dataChannel.state()); + assertEquals(expectedStateChanges.remove(), dataChannel.state()); } // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @@ -390,9 +388,9 @@ public class PeerConnectionTest { // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression. @SuppressWarnings("NoSynchronizedMethodCheck") - public synchronized LinkedList takeStatsReports() { - LinkedList got = gotStatsReports; - gotStatsReports = new LinkedList(); + public synchronized List takeStatsReports() { + List got = gotStatsReports; + gotStatsReports = new ArrayList(); return got; } @@ -504,7 +502,7 @@ public class PeerConnectionTest { while (gotIceCandidates.isEmpty()) { gotIceCandidates.wait(); } - return new LinkedList(gotIceCandidates); + return new ArrayList(gotIceCandidates); } } } @@ -683,7 +681,7 @@ public class PeerConnectionTest { MediaConstraints pcConstraints = new MediaConstraints(); pcConstraints.mandatory.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true")); - LinkedList iceServers = new LinkedList(); + List iceServers = new ArrayList<>(); iceServers.add( PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer()); iceServers.add(PeerConnection.IceServer.builder("turn:fake.example.com") @@ -923,7 +921,7 @@ public class PeerConnectionTest { MediaConstraints pcConstraints = new MediaConstraints(); pcConstraints.mandatory.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true")); - LinkedList iceServers = new LinkedList(); + List iceServers = new ArrayList<>(); iceServers.add( PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer()); iceServers.add(PeerConnection.IceServer.builder("turn:fake.example.com") @@ -1078,7 +1076,7 @@ public class PeerConnectionTest { MediaConstraints pcConstraints = new MediaConstraints(); pcConstraints.mandatory.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true")); - LinkedList iceServers = new LinkedList(); + List iceServers = new ArrayList<>(); iceServers.add( PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer()); @@ -1273,7 +1271,7 @@ public class PeerConnectionTest { // This test is fine with default PC constraints and no ICE servers. MediaConstraints pcConstraints = new MediaConstraints(); - LinkedList iceServers = new LinkedList(); + List iceServers = new ArrayList<>(); // Use OfferToReceiveAudio/Video to ensure every offer has an audio and // video m= section. Simplifies the test because it means we don't have to diff --git a/sdk/android/src/jni/pc/java_native_conversion.cc b/sdk/android/src/jni/pc/java_native_conversion.cc index b20d06fe85..280d36e5bb 100644 --- a/sdk/android/src/jni/pc/java_native_conversion.cc +++ b/sdk/android/src/jni/pc/java_native_conversion.cc @@ -544,9 +544,9 @@ void JavaToNativeRtpParameters(JNIEnv* jni, RTC_CHECK(parameters != nullptr); jclass parameters_class = jni->FindClass("org/webrtc/RtpParameters"); jfieldID encodings_id = - GetFieldID(jni, parameters_class, "encodings", "Ljava/util/LinkedList;"); + GetFieldID(jni, parameters_class, "encodings", "Ljava/util/List;"); jfieldID codecs_id = - GetFieldID(jni, parameters_class, "codecs", "Ljava/util/LinkedList;"); + GetFieldID(jni, parameters_class, "codecs", "Ljava/util/List;"); // Convert encodings. jobject j_encodings = GetObjectField(jni, j_parameters, encodings_id); @@ -630,7 +630,7 @@ jobject NativeToJavaRtpParameters(JNIEnv* jni, jclass encoding_class = jni->FindClass("org/webrtc/RtpParameters$Encoding"); jmethodID encoding_ctor = GetMethodID(jni, encoding_class, "", "()V"); jfieldID encodings_id = - GetFieldID(jni, parameters_class, "encodings", "Ljava/util/LinkedList;"); + GetFieldID(jni, parameters_class, "encodings", "Ljava/util/List;"); jobject j_encodings = GetObjectField(jni, j_parameters, encodings_id); jmethodID encodings_add = GetMethodID(jni, GetObjectClass(jni, j_encodings), "add", "(Ljava/lang/Object;)Z"); @@ -675,7 +675,7 @@ jobject NativeToJavaRtpParameters(JNIEnv* jni, jclass codec_class = jni->FindClass("org/webrtc/RtpParameters$Codec"); jmethodID codec_ctor = GetMethodID(jni, codec_class, "", "()V"); jfieldID codecs_id = - GetFieldID(jni, parameters_class, "codecs", "Ljava/util/LinkedList;"); + GetFieldID(jni, parameters_class, "codecs", "Ljava/util/List;"); jobject j_codecs = GetObjectField(jni, j_parameters, codecs_id); jmethodID codecs_add = GetMethodID(jni, GetObjectClass(jni, j_codecs), "add", "(Ljava/lang/Object;)Z"); diff --git a/sdk/android/src/jni/pc/peerconnectionobserver_jni.cc b/sdk/android/src/jni/pc/peerconnectionobserver_jni.cc index 55d7b3108a..6105255e48 100644 --- a/sdk/android/src/jni/pc/peerconnectionobserver_jni.cc +++ b/sdk/android/src/jni/pc/peerconnectionobserver_jni.cc @@ -179,8 +179,8 @@ void PeerConnectionObserverJni::AddNativeAudioTrackToJavaStream( CHECK_EXCEPTION(jni()) << "error during NewObject"; // Now add to the audioTracks linked list. - jfieldID audio_tracks_id = GetFieldID( - jni(), *j_media_stream_class_, "audioTracks", "Ljava/util/LinkedList;"); + jfieldID audio_tracks_id = GetFieldID(jni(), *j_media_stream_class_, + "audioTracks", "Ljava/util/List;"); jobject audio_tracks = GetObjectField(jni(), j_stream, audio_tracks_id); jmethodID add = GetMethodID(jni(), GetObjectClass(jni(), audio_tracks), "add", "(Ljava/lang/Object;)Z"); @@ -201,8 +201,8 @@ void PeerConnectionObserverJni::AddNativeVideoTrackToJavaStream( CHECK_EXCEPTION(jni()) << "error during NewObject"; // Now add to the videoTracks linked list. - jfieldID video_tracks_id = GetFieldID( - jni(), *j_media_stream_class_, "videoTracks", "Ljava/util/LinkedList;"); + jfieldID video_tracks_id = GetFieldID(jni(), *j_media_stream_class_, + "videoTracks", "Ljava/util/List;"); jobject video_tracks = GetObjectField(jni(), j_stream, video_tracks_id); jmethodID add = GetMethodID(jni(), GetObjectClass(jni(), video_tracks), "add", "(Ljava/lang/Object;)Z"); @@ -253,8 +253,8 @@ void PeerConnectionObserverJni::OnAudioTrackRemovedFromStream( MediaStreamInterface* stream) { ScopedLocalRefFrame local_ref_frame(jni()); jobject j_stream = GetOrCreateJavaStream(stream); - jfieldID audio_tracks_id = GetFieldID( - jni(), *j_media_stream_class_, "audioTracks", "Ljava/util/LinkedList;"); + jfieldID audio_tracks_id = GetFieldID(jni(), *j_media_stream_class_, + "audioTracks", "Ljava/util/List;"); jobject audio_tracks = GetObjectField(jni(), j_stream, audio_tracks_id); RemoveAndDisposeNativeTrackFromJavaTrackList(track, audio_tracks); } @@ -264,8 +264,8 @@ void PeerConnectionObserverJni::OnVideoTrackRemovedFromStream( MediaStreamInterface* stream) { ScopedLocalRefFrame local_ref_frame(jni()); jobject j_stream = GetOrCreateJavaStream(stream); - jfieldID video_tracks_id = GetFieldID( - jni(), *j_media_stream_class_, "videoTracks", "Ljava/util/LinkedList;"); + jfieldID video_tracks_id = GetFieldID(jni(), *j_media_stream_class_, + "videoTracks", "Ljava/util/List;"); jobject video_tracks = GetObjectField(jni(), j_stream, video_tracks_id); RemoveAndDisposeNativeTrackFromJavaTrackList(track, video_tracks); }