Deprecate PeerConnectionFactory#createVideoSource(VideoCapturer).
This is done in preparation of moving VideoCapturer out of video_api_java. Clients should update to using createVideoSource(boolean). CapturerObserver is moved to a separate file because it needs to stay in video_api_java to allow VideoSource to depend on it. Bug: webrtc:9496 Change-Id: I3c93f6bc4df553919dcbe05b00ef4c68f2c9ab60 Reviewed-on: https://webrtc-review.googlesource.com/87305 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23868}
This commit is contained in:

committed by
Commit Bot

parent
80e7a7fd1a
commit
05b552f76a
@ -745,6 +745,7 @@ rtc_android_library("video_api_java") {
|
|||||||
"api/org/webrtc/EncodedImage.java",
|
"api/org/webrtc/EncodedImage.java",
|
||||||
"api/org/webrtc/VideoCapturer.java",
|
"api/org/webrtc/VideoCapturer.java",
|
||||||
"api/org/webrtc/VideoCodecInfo.java",
|
"api/org/webrtc/VideoCodecInfo.java",
|
||||||
|
"api/org/webrtc/CapturerObserver.java",
|
||||||
"api/org/webrtc/VideoCodecStatus.java",
|
"api/org/webrtc/VideoCodecStatus.java",
|
||||||
"api/org/webrtc/VideoDecoder.java",
|
"api/org/webrtc/VideoDecoder.java",
|
||||||
"api/org/webrtc/VideoDecoderFactory.java",
|
"api/org/webrtc/VideoDecoderFactory.java",
|
||||||
@ -833,7 +834,6 @@ rtc_android_library("video_java") {
|
|||||||
"api/org/webrtc/GlRectDrawer.java",
|
"api/org/webrtc/GlRectDrawer.java",
|
||||||
"api/org/webrtc/VideoDecoderFallback.java",
|
"api/org/webrtc/VideoDecoderFallback.java",
|
||||||
"api/org/webrtc/VideoEncoderFallback.java",
|
"api/org/webrtc/VideoEncoderFallback.java",
|
||||||
"src/java/org/webrtc/NativeCapturerObserver.java",
|
|
||||||
"src/java/org/webrtc/NV21Buffer.java",
|
"src/java/org/webrtc/NV21Buffer.java",
|
||||||
"src/java/org/webrtc/VideoDecoderWrapper.java",
|
"src/java/org/webrtc/VideoDecoderWrapper.java",
|
||||||
"src/java/org/webrtc/VideoEncoderWrapper.java",
|
"src/java/org/webrtc/VideoEncoderWrapper.java",
|
||||||
@ -990,6 +990,7 @@ rtc_android_library("peerconnection_java") {
|
|||||||
"api/org/webrtc/VideoSource.java",
|
"api/org/webrtc/VideoSource.java",
|
||||||
"api/org/webrtc/VideoTrack.java",
|
"api/org/webrtc/VideoTrack.java",
|
||||||
"src/java/org/webrtc/NativeLibrary.java",
|
"src/java/org/webrtc/NativeLibrary.java",
|
||||||
|
"src/java/org/webrtc/NativeCapturerObserver.java",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
|
29
sdk/android/api/org/webrtc/CapturerObserver.java
Normal file
29
sdk/android/api/org/webrtc/CapturerObserver.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.webrtc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for observering a capturer. Passed to {@link VideoCapturer#initialize}. Provided by
|
||||||
|
* {@link VideoSource#getCapturerObserver}.
|
||||||
|
*
|
||||||
|
* All callbacks must be executed on a single thread.
|
||||||
|
*
|
||||||
|
* @note This will replace the deprecated VideoCapturer.CapturerObserver interface.
|
||||||
|
*/
|
||||||
|
public interface CapturerObserver extends VideoCapturer.CapturerObserver {
|
||||||
|
/** Notify if the capturer have been started successfully or not. */
|
||||||
|
@Override void onCapturerStarted(boolean success);
|
||||||
|
/** Notify that the capturer has been stopped. */
|
||||||
|
@Override void onCapturerStopped();
|
||||||
|
|
||||||
|
/** Delivers a captured frame. */
|
||||||
|
@Override void onFrameCaptured(VideoFrame frame);
|
||||||
|
}
|
@ -357,6 +357,7 @@ public class PeerConnectionFactory {
|
|||||||
return new VideoSource(nativeCreateVideoSource(nativeFactory, isScreencast));
|
return new VideoSource(nativeCreateVideoSource(nativeFactory, isScreencast));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public VideoSource createVideoSource(VideoCapturer capturer) {
|
public VideoSource createVideoSource(VideoCapturer capturer) {
|
||||||
final EglBase.Context eglContext =
|
final EglBase.Context eglContext =
|
||||||
localEglbase == null ? null : localEglbase.getEglBaseContext();
|
localEglbase == null ? null : localEglbase.getEglBaseContext();
|
||||||
|
@ -16,6 +16,7 @@ import java.util.List;
|
|||||||
// Base interface for all VideoCapturers to implement.
|
// Base interface for all VideoCapturers to implement.
|
||||||
public interface VideoCapturer {
|
public interface VideoCapturer {
|
||||||
// Interface used for providing callbacks to an observer.
|
// Interface used for providing callbacks to an observer.
|
||||||
|
@Deprecated
|
||||||
public interface CapturerObserver {
|
public interface CapturerObserver {
|
||||||
// Notify if the camera have been started successfully or not.
|
// Notify if the camera have been started successfully or not.
|
||||||
// Called on a Java thread owned by VideoCapturer.
|
// Called on a Java thread owned by VideoCapturer.
|
||||||
@ -26,6 +27,13 @@ public interface VideoCapturer {
|
|||||||
void onFrameCaptured(VideoFrame frame);
|
void onFrameCaptured(VideoFrame frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Deprecated, implementations should be update to implement the version below. */
|
||||||
|
@Deprecated
|
||||||
|
default void initialize(SurfaceTextureHelper surfaceTextureHelper, Context applicationContext,
|
||||||
|
CapturerObserver capturerObserver) {
|
||||||
|
throw new UnsupportedOperationException("Not implemented.");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function is used to initialize the camera thread, the android application context, and the
|
* This function is used to initialize the camera thread, the android application context, and the
|
||||||
* capture observer. It will be called only once and before any startCapture() request. The
|
* capture observer. It will be called only once and before any startCapture() request. The
|
||||||
@ -37,8 +45,12 @@ public interface VideoCapturer {
|
|||||||
* called. This also means that the caller can reuse the SurfaceTextureHelper to initialize a new
|
* called. This also means that the caller can reuse the SurfaceTextureHelper to initialize a new
|
||||||
* VideoCapturer once the previous VideoCapturer has been disposed.
|
* VideoCapturer once the previous VideoCapturer has been disposed.
|
||||||
*/
|
*/
|
||||||
void initialize(SurfaceTextureHelper surfaceTextureHelper, Context applicationContext,
|
// Our version of clang format doesn't understand default and messes up.
|
||||||
CapturerObserver capturerObserver);
|
// clang-format off
|
||||||
|
default void initialize(SurfaceTextureHelper surfaceTextureHelper, Context applicationContext,
|
||||||
|
org.webrtc.CapturerObserver capturerObserver) {
|
||||||
|
initialize(surfaceTextureHelper, applicationContext, (CapturerObserver) capturerObserver);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start capturing frames in a format that is as close as possible to {@code width x height} and
|
* Start capturing frames in a format that is as close as possible to {@code width x height} and
|
||||||
|
@ -40,7 +40,7 @@ public class VideoSource extends MediaSource {
|
|||||||
nativeAdaptOutputFormat(nativeSource, width, height, fps);
|
nativeAdaptOutputFormat(nativeSource, width, height, fps);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VideoCapturer.CapturerObserver getCapturerObserver() {
|
public CapturerObserver getCapturerObserver() {
|
||||||
return capturerObserver;
|
return capturerObserver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ namespace webrtc {
|
|||||||
// Java object that can be used to feed frames to the source.
|
// Java object that can be used to feed frames to the source.
|
||||||
class JavaVideoTrackSourceInterface : public VideoTrackSourceInterface {
|
class JavaVideoTrackSourceInterface : public VideoTrackSourceInterface {
|
||||||
public:
|
public:
|
||||||
// Returns VideoCapturer.CapturerObserver object that can be used to feed
|
// Returns CapturerObserver object that can be used to feed frames to the
|
||||||
// frames to the video source.
|
// video source.
|
||||||
virtual ScopedJavaLocalRef<jobject> GetJavaVideoCapturerObserver(
|
virtual ScopedJavaLocalRef<jobject> GetJavaVideoCapturerObserver(
|
||||||
JNIEnv* env) = 0;
|
JNIEnv* env) = 0;
|
||||||
};
|
};
|
||||||
|
@ -16,7 +16,7 @@ import javax.annotation.Nullable;
|
|||||||
* Implements VideoCapturer.CapturerObserver and feeds frames to
|
* Implements VideoCapturer.CapturerObserver and feeds frames to
|
||||||
* webrtc::jni::AndroidVideoTrackSource.
|
* webrtc::jni::AndroidVideoTrackSource.
|
||||||
*/
|
*/
|
||||||
class NativeCapturerObserver implements VideoCapturer.CapturerObserver {
|
class NativeCapturerObserver implements CapturerObserver {
|
||||||
// Pointer to webrtc::jni::AndroidVideoTrackSource.
|
// Pointer to webrtc::jni::AndroidVideoTrackSource.
|
||||||
private final long nativeSource;
|
private final long nativeSource;
|
||||||
// TODO(bugs.webrtc.org/9181): Remove.
|
// TODO(bugs.webrtc.org/9181): Remove.
|
||||||
|
Reference in New Issue
Block a user