mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
Update examples to use the new VideoCapturer interface.
Bug: webrtc:9496 Change-Id: Ifbf06d644e3758d537757cdbbc7f61bdc0fe270d Reviewed-on: https://webrtc-review.googlesource.com/87307 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23899}
This commit is contained in:
parent
9bb8f80c40
commit
a7a10a8b31
2 changed files with 14 additions and 5 deletions
|
@ -63,17 +63,18 @@ import org.webrtc.SoftwareVideoDecoderFactory;
|
||||||
import org.webrtc.SoftwareVideoEncoderFactory;
|
import org.webrtc.SoftwareVideoEncoderFactory;
|
||||||
import org.webrtc.StatsObserver;
|
import org.webrtc.StatsObserver;
|
||||||
import org.webrtc.StatsReport;
|
import org.webrtc.StatsReport;
|
||||||
|
import org.webrtc.SurfaceTextureHelper;
|
||||||
import org.webrtc.VideoCapturer;
|
import org.webrtc.VideoCapturer;
|
||||||
import org.webrtc.VideoDecoderFactory;
|
import org.webrtc.VideoDecoderFactory;
|
||||||
import org.webrtc.VideoEncoderFactory;
|
import org.webrtc.VideoEncoderFactory;
|
||||||
import org.webrtc.VideoSink;
|
import org.webrtc.VideoSink;
|
||||||
import org.webrtc.VideoSource;
|
import org.webrtc.VideoSource;
|
||||||
import org.webrtc.VideoTrack;
|
import org.webrtc.VideoTrack;
|
||||||
|
import org.webrtc.audio.AudioDeviceModule;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule;
|
import org.webrtc.audio.JavaAudioDeviceModule;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback;
|
||||||
import org.webrtc.audio.LegacyAudioDeviceModule;
|
import org.webrtc.audio.LegacyAudioDeviceModule;
|
||||||
import org.webrtc.audio.AudioDeviceModule;
|
|
||||||
import org.webrtc.voiceengine.WebRtcAudioManager;
|
import org.webrtc.voiceengine.WebRtcAudioManager;
|
||||||
import org.webrtc.voiceengine.WebRtcAudioRecord;
|
import org.webrtc.voiceengine.WebRtcAudioRecord;
|
||||||
import org.webrtc.voiceengine.WebRtcAudioRecord.AudioRecordStartErrorCode;
|
import org.webrtc.voiceengine.WebRtcAudioRecord.AudioRecordStartErrorCode;
|
||||||
|
@ -137,8 +138,8 @@ public class PeerConnectionClient {
|
||||||
private PeerConnection peerConnection;
|
private PeerConnection peerConnection;
|
||||||
@Nullable
|
@Nullable
|
||||||
private AudioSource audioSource;
|
private AudioSource audioSource;
|
||||||
@Nullable
|
@Nullable private SurfaceTextureHelper surfaceTextureHelper;
|
||||||
private VideoSource videoSource;
|
@Nullable private VideoSource videoSource;
|
||||||
private boolean preferIsac;
|
private boolean preferIsac;
|
||||||
private boolean videoCapturerStopped;
|
private boolean videoCapturerStopped;
|
||||||
private boolean isError;
|
private boolean isError;
|
||||||
|
@ -770,6 +771,10 @@ public class PeerConnectionClient {
|
||||||
videoSource.dispose();
|
videoSource.dispose();
|
||||||
videoSource = null;
|
videoSource = null;
|
||||||
}
|
}
|
||||||
|
if (surfaceTextureHelper != null) {
|
||||||
|
surfaceTextureHelper.dispose();
|
||||||
|
surfaceTextureHelper = null;
|
||||||
|
}
|
||||||
if (saveRecordedAudioToFile != null) {
|
if (saveRecordedAudioToFile != null) {
|
||||||
Log.d(TAG, "Closing audio file for recorded input audio.");
|
Log.d(TAG, "Closing audio file for recorded input audio.");
|
||||||
saveRecordedAudioToFile.stop();
|
saveRecordedAudioToFile.stop();
|
||||||
|
@ -985,7 +990,10 @@ public class PeerConnectionClient {
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private VideoTrack createVideoTrack(VideoCapturer capturer) {
|
private VideoTrack createVideoTrack(VideoCapturer capturer) {
|
||||||
videoSource = factory.createVideoSource(capturer);
|
surfaceTextureHelper =
|
||||||
|
SurfaceTextureHelper.create("CaptureThread", rootEglBase.getEglBaseContext());
|
||||||
|
videoSource = factory.createVideoSource(capturer.isScreencast());
|
||||||
|
capturer.initialize(surfaceTextureHelper, appContext, videoSource.getCapturerObserver());
|
||||||
capturer.startCapture(videoWidth, videoHeight, videoFps);
|
capturer.startCapture(videoWidth, videoHeight, videoFps);
|
||||||
|
|
||||||
localVideoTrack = factory.createVideoTrack(VIDEO_TRACK_ID, videoSource);
|
localVideoTrack = factory.createVideoTrack(VIDEO_TRACK_ID, videoSource);
|
||||||
|
|
|
@ -13,6 +13,7 @@ package org.webrtc.examples.androidnativeapi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
|
import org.webrtc.CapturerObserver;
|
||||||
import org.webrtc.SurfaceTextureHelper;
|
import org.webrtc.SurfaceTextureHelper;
|
||||||
import org.webrtc.VideoCapturer;
|
import org.webrtc.VideoCapturer;
|
||||||
import org.webrtc.VideoSink;
|
import org.webrtc.VideoSink;
|
||||||
|
@ -66,6 +67,6 @@ public class CallClient {
|
||||||
long nativeAndroidCallClient, VideoSink localSink, VideoSink remoteSink);
|
long nativeAndroidCallClient, VideoSink localSink, VideoSink remoteSink);
|
||||||
private static native void nativeHangup(long nativeAndroidCallClient);
|
private static native void nativeHangup(long nativeAndroidCallClient);
|
||||||
private static native void nativeDelete(long nativeAndroidCallClient);
|
private static native void nativeDelete(long nativeAndroidCallClient);
|
||||||
private static native VideoCapturer.CapturerObserver nativeGetJavaVideoCapturerObserver(
|
private static native CapturerObserver nativeGetJavaVideoCapturerObserver(
|
||||||
long nativeAndroidCallClient);
|
long nativeAndroidCallClient);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue