Android: Stop using VideoRenderer class
This CL updates the WebRTC code to stop using the old VideoRenderer and VideoRenderer.I420Frame classes and instead use the new VideoSink and VideoFrame classes. This CL is the first step and the old classes are still left in the code for now to keep backwards compatibility. Bug: webrtc:9181 Change-Id: Ib0caa18cbaa2758b7859e850ddcaba003cfb06d6 Reviewed-on: https://webrtc-review.googlesource.com/71662 Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22989}
This commit is contained in:
committed by
Commit Bot
parent
b9ac121598
commit
e987f2b765
@ -59,7 +59,6 @@ import org.webrtc.SurfaceViewRenderer;
|
||||
import org.webrtc.VideoCapturer;
|
||||
import org.webrtc.VideoFileRenderer;
|
||||
import org.webrtc.VideoFrame;
|
||||
import org.webrtc.VideoRenderer;
|
||||
import org.webrtc.VideoSink;
|
||||
|
||||
/**
|
||||
@ -133,25 +132,6 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
// Peer connection statistics callback period in ms.
|
||||
private static final int STAT_CALLBACK_PERIOD = 1000;
|
||||
|
||||
private static class ProxyRenderer implements VideoRenderer.Callbacks {
|
||||
private VideoRenderer.Callbacks target;
|
||||
|
||||
@Override
|
||||
synchronized public void renderFrame(VideoRenderer.I420Frame frame) {
|
||||
if (target == null) {
|
||||
Logging.d(TAG, "Dropping frame in proxy because target is null.");
|
||||
VideoRenderer.renderFrameDone(frame);
|
||||
return;
|
||||
}
|
||||
|
||||
target.renderFrame(frame);
|
||||
}
|
||||
|
||||
synchronized public void setTarget(VideoRenderer.Callbacks target) {
|
||||
this.target = target;
|
||||
}
|
||||
}
|
||||
|
||||
private static class ProxyVideoSink implements VideoSink {
|
||||
private VideoSink target;
|
||||
|
||||
@ -170,7 +150,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
}
|
||||
}
|
||||
|
||||
private final ProxyRenderer remoteProxyRenderer = new ProxyRenderer();
|
||||
private final ProxyVideoSink remoteProxyRenderer = new ProxyVideoSink();
|
||||
private final ProxyVideoSink localProxyVideoSink = new ProxyVideoSink();
|
||||
@Nullable
|
||||
private PeerConnectionClient peerConnectionClient = null;
|
||||
@ -186,7 +166,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
private SurfaceViewRenderer fullscreenRenderer;
|
||||
@Nullable
|
||||
private VideoFileRenderer videoFileRenderer;
|
||||
private final List<VideoRenderer.Callbacks> remoteRenderers = new ArrayList<>();
|
||||
private final List<VideoSink> remoteSinks = new ArrayList<>();
|
||||
private Toast logToast;
|
||||
private boolean commandLineRun;
|
||||
private boolean activityRunning;
|
||||
@ -251,7 +231,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
});
|
||||
|
||||
fullscreenRenderer.setOnClickListener(listener);
|
||||
remoteRenderers.add(remoteProxyRenderer);
|
||||
remoteSinks.add(remoteProxyRenderer);
|
||||
|
||||
final Intent intent = getIntent();
|
||||
final EglBase eglBase = EglBase.create();
|
||||
@ -268,7 +248,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
try {
|
||||
videoFileRenderer = new VideoFileRenderer(
|
||||
saveRemoteVideoToFile, videoOutWidth, videoOutHeight, eglBase.getEglBaseContext());
|
||||
remoteRenderers.add(videoFileRenderer);
|
||||
remoteSinks.add(videoFileRenderer);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(
|
||||
"Failed to open video file for output: " + saveRemoteVideoToFile, e);
|
||||
@ -776,7 +756,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
|
||||
videoCapturer = createVideoCapturer();
|
||||
}
|
||||
peerConnectionClient.createPeerConnection(
|
||||
localProxyVideoSink, remoteRenderers, videoCapturer, signalingParameters);
|
||||
localProxyVideoSink, remoteSinks, videoCapturer, signalingParameters);
|
||||
|
||||
if (signalingParameters.initiator) {
|
||||
logAndToast("Creating OFFER...");
|
||||
|
||||
Reference in New Issue
Block a user