Cleanup sdk android code from using VideoEncoderFactory::CreateVideoEncoder

To force webrtc::Environment propagation through android VideoEncoderFactory wrappers

Bug: webrtc:15860
Change-Id: Icad7249b47a5c738b089e09714c729f91eddaf5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/342960
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41936}
diff --git a/sdk/android/api/org/webrtc/LibaomAv1Encoder.java b/sdk/android/api/org/webrtc/LibaomAv1Encoder.java
index 46ea985..340586e 100644
--- a/sdk/android/api/org/webrtc/LibaomAv1Encoder.java
+++ b/sdk/android/api/org/webrtc/LibaomAv1Encoder.java
@@ -12,16 +12,10 @@
 
 public class LibaomAv1Encoder extends WrappedNativeVideoEncoder {
   @Override
-  public long createNativeVideoEncoder() {
-    return nativeCreateEncoder();
-  }
-
-  @Override
   public long createNative(long webrtcEnvRef) {
     return nativeCreate(webrtcEnvRef);
   }
 
-  static native long nativeCreateEncoder();
   static native long nativeCreate(long webrtcEnvRef);
 
   @Override
diff --git a/sdk/android/api/org/webrtc/LibvpxVp8Encoder.java b/sdk/android/api/org/webrtc/LibvpxVp8Encoder.java
index a47df25..46eb67e 100644
--- a/sdk/android/api/org/webrtc/LibvpxVp8Encoder.java
+++ b/sdk/android/api/org/webrtc/LibvpxVp8Encoder.java
@@ -12,16 +12,10 @@
 
 public class LibvpxVp8Encoder extends WrappedNativeVideoEncoder {
   @Override
-  public long createNativeVideoEncoder() {
-    return nativeCreateEncoder();
-  }
-
-  @Override
   public long createNative(long webrtcEnvRef) {
     return nativeCreate(webrtcEnvRef);
   }
 
-  static native long nativeCreateEncoder();
   static native long nativeCreate(long webrtcEnvRef);
 
   @Override
diff --git a/sdk/android/api/org/webrtc/LibvpxVp9Encoder.java b/sdk/android/api/org/webrtc/LibvpxVp9Encoder.java
index de242bb..71bcd13 100644
--- a/sdk/android/api/org/webrtc/LibvpxVp9Encoder.java
+++ b/sdk/android/api/org/webrtc/LibvpxVp9Encoder.java
@@ -12,16 +12,10 @@
 
 public class LibvpxVp9Encoder extends WrappedNativeVideoEncoder {
   @Override
-  public long createNativeVideoEncoder() {
-    return nativeCreateEncoder();
-  }
-
-  @Override
   public long createNative(long webrtcEnvRef) {
     return nativeCreate(webrtcEnvRef);
   }
 
-  static native long nativeCreateEncoder();
   static native long nativeCreate(long webrtcEnvRef);
 
   @Override
diff --git a/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java b/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
index b4e4142..ad19b4c 100644
--- a/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
+++ b/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
@@ -33,11 +33,6 @@
 
     return new WrappedNativeVideoEncoder() {
       @Override
-      public long createNativeVideoEncoder() {
-        return nativeCreateEncoder(nativeFactory, info);
-      }
-
-      @Override
       public long createNative(long webrtcEnvRef) {
         return nativeCreate(nativeFactory, webrtcEnvRef, info);
       }
@@ -56,8 +51,6 @@
 
   private static native long nativeCreateFactory();
 
-  private static native long nativeCreateEncoder(long factory, VideoCodecInfo videoCodecInfo);
-
   private static native boolean nativeIsSupported(long factory, VideoCodecInfo info);
 
   private static native long nativeCreate(long factory, long webrtcEnvRef, VideoCodecInfo info);
diff --git a/sdk/android/api/org/webrtc/VideoEncoder.java b/sdk/android/api/org/webrtc/VideoEncoder.java
index d240001..7c07c82 100644
--- a/sdk/android/api/org/webrtc/VideoEncoder.java
+++ b/sdk/android/api/org/webrtc/VideoEncoder.java
@@ -322,16 +322,9 @@
    * the Java interface methods declared below should thus throw an
    * UnsupportedOperationException.
    */
-
-  @CalledByNative
-  @Deprecated
-  default long createNativeVideoEncoder() {
-    return 0;
-  }
-
   @CalledByNative
   default long createNative(long webrtcEnvRef) {
-    return createNativeVideoEncoder();
+    return 0;
   }
 
   /**
diff --git a/sdk/android/api/org/webrtc/VideoEncoderFallback.java b/sdk/android/api/org/webrtc/VideoEncoderFallback.java
index 0d0716b..86b6507 100644
--- a/sdk/android/api/org/webrtc/VideoEncoderFallback.java
+++ b/sdk/android/api/org/webrtc/VideoEncoderFallback.java
@@ -23,11 +23,6 @@
   }
 
   @Override
-  public long createNativeVideoEncoder() {
-    return nativeCreateEncoder(fallback, primary);
-  }
-
-  @Override
   public long createNative(long webrtcEnvRef) {
     return nativeCreate(webrtcEnvRef, fallback, primary);
   }
@@ -37,7 +32,6 @@
     return primary.isHardwareEncoder();
   }
 
-  private static native long nativeCreateEncoder(VideoEncoder fallback, VideoEncoder primary);
   private static native long nativeCreate(
       long webrtcEnvRef, VideoEncoder fallback, VideoEncoder primary);
 }
diff --git a/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java b/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java
index 801cba3..43063e0 100644
--- a/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java
+++ b/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java
@@ -14,9 +14,7 @@
  * Wraps a native webrtc::VideoEncoder.
  */
 public abstract class WrappedNativeVideoEncoder implements VideoEncoder {
-  // TODO: bugs.webrtc.org/15860 - uncomment when implemented by all
-  // derived classes instead of the createNativeVideoEncoder
-  // @Override public abstract long createNative(long webrtcEnvRef);
+  @Override public abstract long createNative(long webrtcEnvRef);
   @Override public abstract boolean isHardwareEncoder();
 
   @Override
diff --git a/sdk/android/src/jni/libaom_av1_encoder.cc b/sdk/android/src/jni/libaom_av1_encoder.cc
index d597713..9ed4abf 100644
--- a/sdk/android/src/jni/libaom_av1_encoder.cc
+++ b/sdk/android/src/jni/libaom_av1_encoder.cc
@@ -19,10 +19,6 @@
 namespace webrtc {
 namespace jni {
 
-static jlong JNI_LibaomAv1Encoder_CreateEncoder(JNIEnv* jni) {
-  return jlongFromPointer(webrtc::CreateLibaomAv1Encoder().release());
-}
-
 jlong JNI_LibaomAv1Encoder_Create(JNIEnv* jni, jlong j_webrtc_env_ref) {
   return NativeToJavaPointer(
       CreateLibaomAv1Encoder(
diff --git a/sdk/android/src/jni/software_video_encoder_factory.cc b/sdk/android/src/jni/software_video_encoder_factory.cc
index 2533025..bcd4c1d 100644
--- a/sdk/android/src/jni/software_video_encoder_factory.cc
+++ b/sdk/android/src/jni/software_video_encoder_factory.cc
@@ -45,22 +45,6 @@
           .release());
 }
 
-static jlong JNI_SoftwareVideoEncoderFactory_CreateEncoder(
-    JNIEnv* env,
-    jlong j_factory,
-    const webrtc::JavaParamRef<jobject>& j_video_codec_info) {
-  auto* const native_factory =
-      reinterpret_cast<webrtc::VideoEncoderFactory*>(j_factory);
-  const auto video_format =
-      webrtc::jni::VideoCodecInfoToSdpVideoFormat(env, j_video_codec_info);
-
-  auto encoder = native_factory->CreateVideoEncoder(video_format);
-  if (encoder == nullptr) {
-    return 0;
-  }
-  return webrtc::NativeToJavaPointer(encoder.release());
-}
-
 static webrtc::ScopedJavaLocalRef<jobject>
 JNI_SoftwareVideoEncoderFactory_GetSupportedCodecs(JNIEnv* env,
                                                    jlong j_factory) {
diff --git a/sdk/android/src/jni/video_encoder_factory_wrapper.cc b/sdk/android/src/jni/video_encoder_factory_wrapper.cc
index 5c8ee71..78aa145 100644
--- a/sdk/android/src/jni/video_encoder_factory_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_factory_wrapper.cc
@@ -92,18 +92,6 @@
 }
 VideoEncoderFactoryWrapper::~VideoEncoderFactoryWrapper() = default;
 
-std::unique_ptr<VideoEncoder> VideoEncoderFactoryWrapper::CreateVideoEncoder(
-    const SdpVideoFormat& format) {
-  JNIEnv* jni = AttachCurrentThreadIfNeeded();
-  ScopedJavaLocalRef<jobject> j_codec_info =
-      SdpVideoFormatToVideoCodecInfo(jni, format);
-  ScopedJavaLocalRef<jobject> encoder = Java_VideoEncoderFactory_createEncoder(
-      jni, encoder_factory_, j_codec_info);
-  if (!encoder.obj())
-    return nullptr;
-  return JavaToNativeVideoEncoder(jni, encoder);
-}
-
 std::unique_ptr<VideoEncoder> VideoEncoderFactoryWrapper::Create(
     const Environment& env,
     const SdpVideoFormat& format) {
diff --git a/sdk/android/src/jni/video_encoder_factory_wrapper.h b/sdk/android/src/jni/video_encoder_factory_wrapper.h
index ba40120..9b383a8 100644
--- a/sdk/android/src/jni/video_encoder_factory_wrapper.h
+++ b/sdk/android/src/jni/video_encoder_factory_wrapper.h
@@ -31,9 +31,6 @@
                              const JavaRef<jobject>& encoder_factory);
   ~VideoEncoderFactoryWrapper() override;
 
-  std::unique_ptr<VideoEncoder> CreateVideoEncoder(
-      const SdpVideoFormat& format) override;
-
   std::unique_ptr<VideoEncoder> Create(const Environment& env,
                                        const SdpVideoFormat& format) override;
 
diff --git a/sdk/android/src/jni/video_encoder_fallback.cc b/sdk/android/src/jni/video_encoder_fallback.cc
index 4f07c39..dcca70a 100644
--- a/sdk/android/src/jni/video_encoder_fallback.cc
+++ b/sdk/android/src/jni/video_encoder_fallback.cc
@@ -19,24 +19,6 @@
 namespace webrtc {
 namespace jni {
 
-static jlong JNI_VideoEncoderFallback_CreateEncoder(
-    JNIEnv* jni,
-    const JavaParamRef<jobject>& j_fallback_encoder,
-    const JavaParamRef<jobject>& j_primary_encoder) {
-  std::unique_ptr<VideoEncoder> fallback_encoder =
-      JavaToNativeVideoEncoder(jni, j_fallback_encoder);
-  std::unique_ptr<VideoEncoder> primary_encoder =
-      JavaToNativeVideoEncoder(jni, j_primary_encoder);
-
-  VideoEncoder* native_wrapper =
-      CreateVideoEncoderSoftwareFallbackWrapper(
-          std::move(fallback_encoder), std::move(primary_encoder),
-          /*prefer_temporal_support=*/false)
-          .release();
-
-  return NativeToJavaPointer(native_wrapper);
-}
-
 jlong JNI_VideoEncoderFallback_Create(
     JNIEnv* jni,
     jlong j_webrtc_env_ref,
diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc
index d0f205f..92e6c80 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_wrapper.cc
@@ -471,20 +471,6 @@
   }
 }
 
-std::unique_ptr<VideoEncoder> JavaToNativeVideoEncoder(
-    JNIEnv* jni,
-    const JavaRef<jobject>& j_encoder) {
-  const jlong native_encoder =
-      Java_VideoEncoder_createNativeVideoEncoder(jni, j_encoder);
-  VideoEncoder* encoder;
-  if (native_encoder == 0) {
-    encoder = new VideoEncoderWrapper(jni, j_encoder);
-  } else {
-    encoder = reinterpret_cast<VideoEncoder*>(native_encoder);
-  }
-  return std::unique_ptr<VideoEncoder>(encoder);
-}
-
 std::vector<VideoEncoder::ResolutionBitrateLimits>
 JavaToNativeResolutionBitrateLimits(
     JNIEnv* jni,
diff --git a/sdk/android/src/jni/video_encoder_wrapper.h b/sdk/android/src/jni/video_encoder_wrapper.h
index 3c4678b..d0b3893 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.h
+++ b/sdk/android/src/jni/video_encoder_wrapper.h
@@ -126,11 +126,6 @@
     const JavaRef<jobject>& j_encoder,
     jlong webrtcEnvRef);
 
-// Deprecated, use variant above that requires webrtc::Environment
-std::unique_ptr<VideoEncoder> JavaToNativeVideoEncoder(
-    JNIEnv* jni,
-    const JavaRef<jobject>& j_encoder);
-
 bool IsHardwareVideoEncoder(JNIEnv* jni, const JavaRef<jobject>& j_encoder);
 
 std::vector<VideoEncoder::ResolutionBitrateLimits>
diff --git a/sdk/android/src/jni/vp8_codec.cc b/sdk/android/src/jni/vp8_codec.cc
index 2c1994e..c987f0f 100644
--- a/sdk/android/src/jni/vp8_codec.cc
+++ b/sdk/android/src/jni/vp8_codec.cc
@@ -19,10 +19,6 @@
 namespace webrtc {
 namespace jni {
 
-static jlong JNI_LibvpxVp8Encoder_CreateEncoder(JNIEnv* jni) {
-  return jlongFromPointer(VP8Encoder::Create().release());
-}
-
 jlong JNI_LibvpxVp8Encoder_Create(JNIEnv* jni, jlong j_webrtc_env_ref) {
   return NativeToJavaPointer(
       CreateVp8Encoder(*reinterpret_cast<const Environment*>(j_webrtc_env_ref))
diff --git a/sdk/android/src/jni/vp9_codec.cc b/sdk/android/src/jni/vp9_codec.cc
index fdafea8..dcce5bb 100644
--- a/sdk/android/src/jni/vp9_codec.cc
+++ b/sdk/android/src/jni/vp9_codec.cc
@@ -19,10 +19,6 @@
 namespace webrtc {
 namespace jni {
 
-static jlong JNI_LibvpxVp9Encoder_CreateEncoder(JNIEnv* jni) {
-  return jlongFromPointer(VP9Encoder::Create().release());
-}
-
 jlong JNI_LibvpxVp9Encoder_Create(JNIEnv* jni, jlong j_webrtc_env_ref) {
   return NativeToJavaPointer(
       CreateVp9Encoder(*reinterpret_cast<const Environment*>(j_webrtc_env_ref))