Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java

Issue 3002783002: Android: Use injectable hardware video decoder in AppRTCMobile.
Patch Set: Rebase Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/sdk/android/src/jni/videoencoderwrapper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 18 matching lines...) Expand all
29 import java.util.concurrent.ExecutorService; 29 import java.util.concurrent.ExecutorService;
30 import java.util.concurrent.Executors; 30 import java.util.concurrent.Executors;
31 import java.util.regex.Matcher; 31 import java.util.regex.Matcher;
32 import java.util.regex.Pattern; 32 import java.util.regex.Pattern;
33 import org.appspot.apprtc.AppRTCClient.SignalingParameters; 33 import org.appspot.apprtc.AppRTCClient.SignalingParameters;
34 import org.webrtc.AudioSource; 34 import org.webrtc.AudioSource;
35 import org.webrtc.AudioTrack; 35 import org.webrtc.AudioTrack;
36 import org.webrtc.CameraVideoCapturer; 36 import org.webrtc.CameraVideoCapturer;
37 import org.webrtc.DataChannel; 37 import org.webrtc.DataChannel;
38 import org.webrtc.EglBase; 38 import org.webrtc.EglBase;
39 import org.webrtc.HardwareVideoDecoderFactory;
40 import org.webrtc.HardwareVideoEncoderFactory;
39 import org.webrtc.IceCandidate; 41 import org.webrtc.IceCandidate;
40 import org.webrtc.Logging; 42 import org.webrtc.Logging;
41 import org.webrtc.MediaConstraints; 43 import org.webrtc.MediaConstraints;
42 import org.webrtc.MediaStream; 44 import org.webrtc.MediaStream;
43 import org.webrtc.PeerConnection; 45 import org.webrtc.PeerConnection;
44 import org.webrtc.PeerConnection.IceConnectionState; 46 import org.webrtc.PeerConnection.IceConnectionState;
45 import org.webrtc.PeerConnectionFactory; 47 import org.webrtc.PeerConnectionFactory;
46 import org.webrtc.RtpParameters; 48 import org.webrtc.RtpParameters;
47 import org.webrtc.RtpReceiver; 49 import org.webrtc.RtpReceiver;
48 import org.webrtc.RtpSender; 50 import org.webrtc.RtpSender;
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 } 333 }
332 }); 334 });
333 } 335 }
334 336
335 public void createPeerConnection(final VideoRenderer.Callbacks localRender, 337 public void createPeerConnection(final VideoRenderer.Callbacks localRender,
336 final VideoRenderer.Callbacks remoteRender, final VideoCapturer videoCaptu rer, 338 final VideoRenderer.Callbacks remoteRender, final VideoCapturer videoCaptu rer,
337 final SignalingParameters signalingParameters) { 339 final SignalingParameters signalingParameters) {
338 createPeerConnection( 340 createPeerConnection(
339 localRender, Collections.singletonList(remoteRender), videoCapturer, sig nalingParameters); 341 localRender, Collections.singletonList(remoteRender), videoCapturer, sig nalingParameters);
340 } 342 }
343
341 public void createPeerConnection(final VideoRenderer.Callbacks localRender, 344 public void createPeerConnection(final VideoRenderer.Callbacks localRender,
342 final List<VideoRenderer.Callbacks> remoteRenders, final VideoCapturer vid eoCapturer, 345 final List<VideoRenderer.Callbacks> remoteRenders, final VideoCapturer vid eoCapturer,
343 final SignalingParameters signalingParameters) { 346 final SignalingParameters signalingParameters) {
344 if (peerConnectionParameters == null) { 347 if (peerConnectionParameters == null) {
345 Log.e(TAG, "Creating peer connection without initializing factory."); 348 Log.e(TAG, "Creating peer connection without initializing factory.");
346 return; 349 return;
347 } 350 }
348 this.localRender = localRender; 351 this.localRender = localRender;
349 this.remoteRenders = remoteRenders; 352 this.remoteRenders = remoteRenders;
350 this.videoCapturer = videoCapturer; 353 this.videoCapturer = videoCapturer;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 reportError(errorMessage); 504 reportError(errorMessage);
502 } 505 }
503 }); 506 });
504 507
505 // Create peer connection factory. 508 // Create peer connection factory.
506 PeerConnectionFactory.initializeAndroidGlobals( 509 PeerConnectionFactory.initializeAndroidGlobals(
507 context, peerConnectionParameters.videoCodecHwAcceleration); 510 context, peerConnectionParameters.videoCodecHwAcceleration);
508 if (options != null) { 511 if (options != null) {
509 Log.d(TAG, "Factory networkIgnoreMask option: " + options.networkIgnoreMas k); 512 Log.d(TAG, "Factory networkIgnoreMask option: " + options.networkIgnoreMas k);
510 } 513 }
511 factory = new PeerConnectionFactory(options); 514 final boolean enableH264HighProfile =
515 peerConnectionParameters.videoCodec.equals(VIDEO_CODEC_H264_HIGH);
516 factory = new PeerConnectionFactory(options,
517 new HardwareVideoEncoderFactory(rootEglBase.getEglBaseContext(),
518 true /* enableIntelVp8Encoder */, enableH264HighProfile),
519 new HardwareVideoDecoderFactory(rootEglBase.getEglBaseContext()));
512 Log.d(TAG, "Peer connection factory created."); 520 Log.d(TAG, "Peer connection factory created.");
513 } 521 }
514 522
515 private void createMediaConstraintsInternal() { 523 private void createMediaConstraintsInternal() {
516 // Create peer connection constraints. 524 // Create peer connection constraints.
517 pcConstraints = new MediaConstraints(); 525 pcConstraints = new MediaConstraints();
518 // Enable DTLS for normal calls and disable for loopback calls. 526 // Enable DTLS for normal calls and disable for loopback calls.
519 if (peerConnectionParameters.loopback) { 527 if (peerConnectionParameters.loopback) {
520 pcConstraints.optional.add( 528 pcConstraints.optional.add(
521 new MediaConstraints.KeyValuePair(DTLS_SRTP_KEY_AGREEMENT_CONSTRAINT, "false")); 529 new MediaConstraints.KeyValuePair(DTLS_SRTP_KEY_AGREEMENT_CONSTRAINT, "false"));
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 public void onCreateFailure(final String error) { 1366 public void onCreateFailure(final String error) {
1359 reportError("createSDP error: " + error); 1367 reportError("createSDP error: " + error);
1360 } 1368 }
1361 1369
1362 @Override 1370 @Override
1363 public void onSetFailure(final String error) { 1371 public void onSetFailure(final String error) {
1364 reportError("setSDP error: " + error); 1372 reportError("setSDP error: " + error);
1365 } 1373 }
1366 } 1374 }
1367 } 1375 }
OLDNEW
« no previous file with comments | « no previous file | webrtc/sdk/android/src/jni/videoencoderwrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698