From bc675ff3fa71549b0a0fdeca56803b41f4de0f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Mon, 2 Oct 2017 11:19:50 +0200 Subject: [PATCH] Reland "Use injectable hardware video decoder/encoder in AppRTCMobile." MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a reland of 0cbaf1a6f6ad13a25993f6ea3be931894a196834 Original change's description: > Use injectable hardware video decoder/encoder in AppRTCMobile. > > Also include a small fix for getting the encoder queue. > > Bug: webrtc:7760 > Change-Id: I96dc8ffb363b90382276d88148f81d5f89dca5f2 > Reviewed-on: https://webrtc-review.googlesource.com/2683 > Commit-Queue: Sami Kalliomäki > Reviewed-by: Magnus Jedvert > Cr-Commit-Position: refs/heads/master@{#20022} Bug: webrtc:7760 Change-Id: Ia82129fde7abb59120ba5bb23938db9eb576ae91 Reviewed-on: https://webrtc-review.googlesource.com/4701 Commit-Queue: Sami Kalliomäki Reviewed-by: Magnus Jedvert Cr-Commit-Position: refs/heads/master@{#20080} --- .../src/org/appspot/apprtc/PeerConnectionClient.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java index caad17125b..44278fff8a 100644 --- a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java +++ b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java @@ -36,6 +36,8 @@ import org.webrtc.AudioTrack; import org.webrtc.CameraVideoCapturer; import org.webrtc.DataChannel; import org.webrtc.EglBase; +import org.webrtc.HardwareVideoDecoderFactory; +import org.webrtc.HardwareVideoEncoderFactory; import org.webrtc.IceCandidate; import org.webrtc.Logging; import org.webrtc.MediaConstraints; @@ -339,6 +341,7 @@ public class PeerConnectionClient { createPeerConnection( localRender, Collections.singletonList(remoteRender), videoCapturer, signalingParameters); } + public void createPeerConnection(final VideoSink localRender, final List remoteRenders, final VideoCapturer videoCapturer, final SignalingParameters signalingParameters) { @@ -512,7 +515,12 @@ public class PeerConnectionClient { if (options != null) { Log.d(TAG, "Factory networkIgnoreMask option: " + options.networkIgnoreMask); } - factory = new PeerConnectionFactory(options); + final boolean enableH264HighProfile = + peerConnectionParameters.videoCodec.equals(VIDEO_CODEC_H264_HIGH); + factory = new PeerConnectionFactory(options, + new HardwareVideoEncoderFactory(rootEglBase.getEglBaseContext(), + true /* enableIntelVp8Encoder */, enableH264HighProfile), + new HardwareVideoDecoderFactory(rootEglBase.getEglBaseContext())); Log.d(TAG, "Peer connection factory created."); }