Fix some lint warnings on Android.

Bug: webrtc:6597
Change-Id: I215b319b3129949d12b74b11e6ec35eb123a1e5a
Reviewed-on: https://webrtc-review.googlesource.com/6781
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20182}
This commit is contained in:
Sami Kalliomäki
2017-10-05 15:14:06 +02:00
committed by Commit Bot
parent fb26f85b79
commit 602dc431b0
4 changed files with 43 additions and 30 deletions

View File

@ -139,9 +139,8 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
// Peer connection statistics callback period in ms. // Peer connection statistics callback period in ms.
private static final int STAT_CALLBACK_PERIOD = 1000; private static final int STAT_CALLBACK_PERIOD = 1000;
private class ProxyRenderer<T extends VideoRenderer.Callbacks & VideoSink> private static class ProxyRenderer implements VideoRenderer.Callbacks {
implements VideoRenderer.Callbacks, VideoSink { private VideoRenderer.Callbacks target;
private T target;
@Override @Override
synchronized public void renderFrame(VideoRenderer.I420Frame frame) { synchronized public void renderFrame(VideoRenderer.I420Frame frame) {
@ -154,6 +153,14 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
target.renderFrame(frame); target.renderFrame(frame);
} }
synchronized public void setTarget(VideoRenderer.Callbacks target) {
this.target = target;
}
}
private static class ProxyVideoSink implements VideoSink {
private VideoSink target;
@Override @Override
synchronized public void onFrame(VideoFrame frame) { synchronized public void onFrame(VideoFrame frame) {
if (target == null) { if (target == null) {
@ -164,13 +171,13 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
target.onFrame(frame); target.onFrame(frame);
} }
synchronized public void setTarget(T target) { synchronized public void setTarget(VideoSink target) {
this.target = target; this.target = target;
} }
} }
private final ProxyRenderer remoteProxyRenderer = new ProxyRenderer(); private final ProxyRenderer remoteProxyRenderer = new ProxyRenderer();
private final ProxyRenderer localProxyRenderer = new ProxyRenderer(); private final ProxyVideoSink localProxyVideoSink = new ProxyVideoSink();
private PeerConnectionClient peerConnectionClient = null; private PeerConnectionClient peerConnectionClient = null;
private AppRTCClient appRtcClient; private AppRTCClient appRtcClient;
private SignalingParameters signalingParameters; private SignalingParameters signalingParameters;
@ -211,8 +218,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
// adding content. // adding content.
requestWindowFeature(Window.FEATURE_NO_TITLE); requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN | LayoutParams.FLAG_KEEP_SCREEN_ON getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN | LayoutParams.FLAG_KEEP_SCREEN_ON
| LayoutParams.FLAG_DISMISS_KEYGUARD | LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_TURN_SCREEN_ON);
| LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().getDecorView().setSystemUiVisibility(getSystemUiVisibility()); getWindow().getDecorView().setSystemUiVisibility(getSystemUiVisibility());
setContentView(R.layout.activity_call); setContentView(R.layout.activity_call);
@ -630,7 +636,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
private void disconnect() { private void disconnect() {
activityRunning = false; activityRunning = false;
remoteProxyRenderer.setTarget(null); remoteProxyRenderer.setTarget(null);
localProxyRenderer.setTarget(null); localProxyVideoSink.setTarget(null);
if (appRtcClient != null) { if (appRtcClient != null) {
appRtcClient.disconnectFromRoom(); appRtcClient.disconnectFromRoom();
appRtcClient = null; appRtcClient = null;
@ -741,7 +747,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
private void setSwappedFeeds(boolean isSwappedFeeds) { private void setSwappedFeeds(boolean isSwappedFeeds) {
Logging.d(TAG, "setSwappedFeeds: " + isSwappedFeeds); Logging.d(TAG, "setSwappedFeeds: " + isSwappedFeeds);
this.isSwappedFeeds = isSwappedFeeds; this.isSwappedFeeds = isSwappedFeeds;
localProxyRenderer.setTarget(isSwappedFeeds ? fullscreenRenderer : pipRenderer); localProxyVideoSink.setTarget(isSwappedFeeds ? fullscreenRenderer : pipRenderer);
remoteProxyRenderer.setTarget(isSwappedFeeds ? pipRenderer : fullscreenRenderer); remoteProxyRenderer.setTarget(isSwappedFeeds ? pipRenderer : fullscreenRenderer);
fullscreenRenderer.setMirror(isSwappedFeeds); fullscreenRenderer.setMirror(isSwappedFeeds);
pipRenderer.setMirror(!isSwappedFeeds); pipRenderer.setMirror(!isSwappedFeeds);
@ -760,7 +766,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
videoCapturer = createVideoCapturer(); videoCapturer = createVideoCapturer();
} }
peerConnectionClient.createPeerConnection( peerConnectionClient.createPeerConnection(
localProxyRenderer, remoteRenderers, videoCapturer, signalingParameters); localProxyVideoSink, remoteRenderers, videoCapturer, signalingParameters);
if (signalingParameters.initiator) { if (signalingParameters.initiator) {
logAndToast("Creating OFFER..."); logAndToast("Creating OFFER...");

View File

@ -10,25 +10,22 @@
package org.appspot.apprtc; package org.appspot.apprtc;
import org.appspot.apprtc.AppRTCClient.SignalingParameters;
import org.appspot.apprtc.util.AsyncHttpURLConnection;
import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents;
import android.util.Log; import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.webrtc.IceCandidate;
import org.webrtc.PeerConnection;
import org.webrtc.SessionDescription;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Scanner; import java.util.Scanner;
import org.appspot.apprtc.AppRTCClient.SignalingParameters;
import org.appspot.apprtc.util.AsyncHttpURLConnection;
import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.webrtc.IceCandidate;
import org.webrtc.PeerConnection;
import org.webrtc.SessionDescription;
/** /**
* AsyncTask that converts an AppRTC room URL into the set of signaling * AsyncTask that converts an AppRTC room URL into the set of signaling
@ -133,11 +130,13 @@ public class RoomParametersFetcher {
boolean isTurnPresent = false; boolean isTurnPresent = false;
for (PeerConnection.IceServer server : iceServers) { for (PeerConnection.IceServer server : iceServers) {
Log.d(TAG, "IceServer: " + server); Log.d(TAG, "IceServer: " + server);
if (server.uri.startsWith("turn:")) { for (String uri : server.urls) {
if (uri.startsWith("turn:")) {
isTurnPresent = true; isTurnPresent = true;
break; break;
} }
} }
}
// Request TURN servers. // Request TURN servers.
if (!isTurnPresent && !roomJson.optString("ice_server_url").isEmpty()) { if (!isTurnPresent && !roomJson.optString("ice_server_url").isEmpty()) {
LinkedList<PeerConnection.IceServer> turnServers = LinkedList<PeerConnection.IceServer> turnServers =

View File

@ -267,9 +267,8 @@ public class WebRtcAudioTrack {
sampleRate, channelConfig, minBufferSizeInBytes); sampleRate, channelConfig, minBufferSizeInBytes);
} else { } else {
// Use default constructor for API levels below 21. // Use default constructor for API levels below 21.
// Note that, this constructor will be deprecated in API level O (25). audioTrack =
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRate, channelConfig, createAudioTrackOnLowerThanLollipop(sampleRate, channelConfig, minBufferSizeInBytes);
AudioFormat.ENCODING_PCM_16BIT, minBufferSizeInBytes, AudioTrack.MODE_STREAM);
} }
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
reportWebRtcAudioTrackInitError(e.getMessage()); reportWebRtcAudioTrackInitError(e.getMessage());
@ -369,7 +368,7 @@ public class WebRtcAudioTrack {
// It allows certain platforms or routing policies to use this information for more // It allows certain platforms or routing policies to use this information for more
// refined volume or routing decisions. // refined volume or routing decisions.
@TargetApi(21) @TargetApi(21)
private AudioTrack createAudioTrackOnLollipopOrHigher( private static AudioTrack createAudioTrackOnLollipopOrHigher(
int sampleRateInHz, int channelConfig, int bufferSizeInBytes) { int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
Logging.d(TAG, "createAudioTrackOnLollipopOrHigher"); Logging.d(TAG, "createAudioTrackOnLollipopOrHigher");
// TODO(henrika): use setPerformanceMode(int) with PERFORMANCE_MODE_LOW_LATENCY to control // TODO(henrika): use setPerformanceMode(int) with PERFORMANCE_MODE_LOW_LATENCY to control
@ -399,6 +398,13 @@ public class WebRtcAudioTrack {
AudioManager.AUDIO_SESSION_ID_GENERATE); AudioManager.AUDIO_SESSION_ID_GENERATE);
} }
@SuppressWarnings("deprecation") // Deprecated in API level 25.
private static AudioTrack createAudioTrackOnLowerThanLollipop(
int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
return new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRateInHz, channelConfig,
AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes, AudioTrack.MODE_STREAM);
}
@TargetApi(24) @TargetApi(24)
private void logMainParametersExtended() { private void logMainParametersExtended() {
if (WebRtcAudioUtils.runningOnMarshmallowOrHigher()) { if (WebRtcAudioUtils.runningOnMarshmallowOrHigher()) {

View File

@ -17,6 +17,8 @@ import android.media.MediaCodecInfo.CodecCapabilities;
/** Container class for static constants and helpers used with MediaCodec. */ /** Container class for static constants and helpers used with MediaCodec. */
@TargetApi(18) @TargetApi(18)
// We are forced to use the old API because we want to support API level < 21.
@SuppressWarnings("deprecation")
class MediaCodecUtils { class MediaCodecUtils {
private static final String TAG = "MediaCodecUtils"; private static final String TAG = "MediaCodecUtils";