Cleanup webrtc::Environment propagation through java wrappers
Force and thus guarantee VideoDecoder created through java wrappers get access to the webrtc::Environment
Bug: webrtc:15791
Change-Id: I3f145937c0b914c8e34b24e1ecc55da756551069
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338441
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41745}
diff --git a/sdk/android/api/org/webrtc/Dav1dDecoder.java b/sdk/android/api/org/webrtc/Dav1dDecoder.java
index ecb16bc..2a79988 100644
--- a/sdk/android/api/org/webrtc/Dav1dDecoder.java
+++ b/sdk/android/api/org/webrtc/Dav1dDecoder.java
@@ -12,7 +12,7 @@
public class Dav1dDecoder extends WrappedNativeVideoDecoder {
@Override
- public long createNativeVideoDecoder() {
+ public long createNative(long webrtcEnvRef) {
return nativeCreateDecoder();
}
diff --git a/sdk/android/api/org/webrtc/LibvpxVp8Decoder.java b/sdk/android/api/org/webrtc/LibvpxVp8Decoder.java
index 54ad0aa..b3846f2 100644
--- a/sdk/android/api/org/webrtc/LibvpxVp8Decoder.java
+++ b/sdk/android/api/org/webrtc/LibvpxVp8Decoder.java
@@ -12,7 +12,7 @@
public class LibvpxVp8Decoder extends WrappedNativeVideoDecoder {
@Override
- public long createNativeVideoDecoder() {
+ public long createNative(long webrtcEnvRef) {
return nativeCreateDecoder();
}
diff --git a/sdk/android/api/org/webrtc/LibvpxVp9Decoder.java b/sdk/android/api/org/webrtc/LibvpxVp9Decoder.java
index 90a2443..34718cf 100644
--- a/sdk/android/api/org/webrtc/LibvpxVp9Decoder.java
+++ b/sdk/android/api/org/webrtc/LibvpxVp9Decoder.java
@@ -12,7 +12,7 @@
public class LibvpxVp9Decoder extends WrappedNativeVideoDecoder {
@Override
- public long createNativeVideoDecoder() {
+ public long createNative(long webrtcEnvRef) {
return nativeCreateDecoder();
}
diff --git a/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java b/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
index ac815d3..1b1cd44 100644
--- a/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
+++ b/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
@@ -31,11 +31,6 @@
}
return new WrappedNativeVideoDecoder() {
@Override
- public long createNativeVideoDecoder() {
- return nativeCreateDecoder(nativeFactory, info);
- }
-
- @Override
public long createNative(long webrtcEnvRef) {
return nativeCreate(nativeFactory, webrtcEnvRef, info);
}
@@ -49,8 +44,6 @@
private static native long nativeCreateFactory();
- private static native long nativeCreateDecoder(long factory, VideoCodecInfo videoCodecInfo);
-
private static native boolean nativeIsSupported(long factory, VideoCodecInfo info);
private static native long nativeCreate(
diff --git a/sdk/android/api/org/webrtc/VideoDecoder.java b/sdk/android/api/org/webrtc/VideoDecoder.java
index f44672d..195daf5 100644
--- a/sdk/android/api/org/webrtc/VideoDecoder.java
+++ b/sdk/android/api/org/webrtc/VideoDecoder.java
@@ -70,12 +70,6 @@
*/
@CalledByNative
default long createNative(long webrtcEnvRef) {
- return createNativeVideoDecoder();
- }
-
- @CalledByNative
- @Deprecated
- default long createNativeVideoDecoder() {
return 0;
}
diff --git a/sdk/android/api/org/webrtc/VideoDecoderFallback.java b/sdk/android/api/org/webrtc/VideoDecoderFallback.java
index dc2e2ee..1e7bae9 100644
--- a/sdk/android/api/org/webrtc/VideoDecoderFallback.java
+++ b/sdk/android/api/org/webrtc/VideoDecoderFallback.java
@@ -23,17 +23,10 @@
}
@Override
- public long createNativeVideoDecoder() {
- return nativeCreateDecoder(fallback, primary);
- }
-
- @Override
public long createNative(long webrtcEnvRef) {
return nativeCreate(webrtcEnvRef, fallback, primary);
}
- private static native long nativeCreateDecoder(VideoDecoder fallback, VideoDecoder primary);
-
private static native long nativeCreate(
long webrtcEnvRef, VideoDecoder fallback, VideoDecoder primary);
}
diff --git a/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
index ac9886e..d762e75 100644
--- a/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
+++ b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
@@ -14,9 +14,7 @@
* Wraps a native webrtc::VideoDecoder.
*/
public abstract class WrappedNativeVideoDecoder implements VideoDecoder {
- // TODO: bugs.webrtc.org/15791 - uncomment when implemented by all
- // derived classes instead of the createNativeVideoDecoder
- // @Override public abstract long createNative(long webrtcEnvRef);
+ @Override public abstract long createNative(long webrtcEnvRef);
@Override
public final VideoCodecStatus initDecode(Settings settings, Callback decodeCallback) {
diff --git a/sdk/android/src/jni/software_video_decoder_factory.cc b/sdk/android/src/jni/software_video_decoder_factory.cc
index 46b67b8..6e711e8 100644
--- a/sdk/android/src/jni/software_video_decoder_factory.cc
+++ b/sdk/android/src/jni/software_video_decoder_factory.cc
@@ -27,22 +27,6 @@
CreateBuiltinVideoDecoderFactory().release());
}
-static jlong JNI_SoftwareVideoDecoderFactory_CreateDecoder(
- JNIEnv* env,
- jlong j_factory,
- const webrtc::JavaParamRef<jobject>& j_video_codec_info) {
- auto* const native_factory =
- reinterpret_cast<webrtc::VideoDecoderFactory*>(j_factory);
- const auto video_format =
- webrtc::jni::VideoCodecInfoToSdpVideoFormat(env, j_video_codec_info);
-
- auto decoder = native_factory->CreateVideoDecoder(video_format);
- if (decoder == nullptr) {
- return 0;
- }
- return webrtc::NativeToJavaPointer(decoder.release());
-}
-
jboolean JNI_SoftwareVideoDecoderFactory_IsSupported(
JNIEnv* env,
jlong j_factory,
diff --git a/sdk/android/src/jni/video_decoder_fallback.cc b/sdk/android/src/jni/video_decoder_fallback.cc
index 8b521c8f..2688c59 100644
--- a/sdk/android/src/jni/video_decoder_fallback.cc
+++ b/sdk/android/src/jni/video_decoder_fallback.cc
@@ -18,23 +18,6 @@
namespace webrtc {
namespace jni {
-static jlong JNI_VideoDecoderFallback_CreateDecoder(
- JNIEnv* jni,
- const JavaParamRef<jobject>& j_fallback_decoder,
- const JavaParamRef<jobject>& j_primary_decoder) {
- std::unique_ptr<VideoDecoder> fallback_decoder =
- JavaToNativeVideoDecoder(jni, j_fallback_decoder);
- std::unique_ptr<VideoDecoder> primary_decoder =
- JavaToNativeVideoDecoder(jni, j_primary_decoder);
-
- VideoDecoder* nativeWrapper =
- CreateVideoDecoderSoftwareFallbackWrapper(std::move(fallback_decoder),
- std::move(primary_decoder))
- .release();
-
- return jlongFromPointer(nativeWrapper);
-}
-
static jlong JNI_VideoDecoderFallback_Create(
JNIEnv* jni,
jlong j_webrtc_env_ref,
diff --git a/sdk/android/src/jni/video_decoder_wrapper.cc b/sdk/android/src/jni/video_decoder_wrapper.cc
index c969618..eaeeb2d 100644
--- a/sdk/android/src/jni/video_decoder_wrapper.cc
+++ b/sdk/android/src/jni/video_decoder_wrapper.cc
@@ -271,20 +271,6 @@
std::unique_ptr<VideoDecoder> JavaToNativeVideoDecoder(
JNIEnv* jni,
- const JavaRef<jobject>& j_decoder) {
- const jlong native_decoder =
- Java_VideoDecoder_createNativeVideoDecoder(jni, j_decoder);
- VideoDecoder* decoder;
- if (native_decoder == 0) {
- decoder = new VideoDecoderWrapper(jni, j_decoder);
- } else {
- decoder = reinterpret_cast<VideoDecoder*>(native_decoder);
- }
- return std::unique_ptr<VideoDecoder>(decoder);
-}
-
-std::unique_ptr<VideoDecoder> JavaToNativeVideoDecoder(
- JNIEnv* jni,
const JavaRef<jobject>& j_decoder,
jlong webrtcEnvRef) {
if (jlong native_decoder =
diff --git a/sdk/android/src/jni/video_decoder_wrapper.h b/sdk/android/src/jni/video_decoder_wrapper.h
index 80638a7..5e397f1 100644
--- a/sdk/android/src/jni/video_decoder_wrapper.h
+++ b/sdk/android/src/jni/video_decoder_wrapper.h
@@ -116,12 +116,6 @@
/* If the j_decoder is a wrapped native decoder, unwrap it. If it is not,
* wrap it in a VideoDecoderWrapper.
*/
-// TODO: bugs.webrtc.org/15791 - delete variant without the webrtcEnvRef
-// parameter when unused.
-std::unique_ptr<VideoDecoder> JavaToNativeVideoDecoder(
- JNIEnv* jni,
- const JavaRef<jobject>& j_decoder);
-
std::unique_ptr<VideoDecoder> JavaToNativeVideoDecoder(
JNIEnv* jni,
const JavaRef<jobject>& j_decoder,