From cee780626ed3e53d021f33b426cb26ce6871bec0 Mon Sep 17 00:00:00 2001 From: kanat Date: Thu, 21 Nov 2024 13:07:56 -0500 Subject: [PATCH 1/4] fix simulcast_video_encoder --- sdk/android/src/jni/simulcast_video_encoder.cc | 3 ++- sdk/android/src/jni/simulcast_video_encoder.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/android/src/jni/simulcast_video_encoder.cc b/sdk/android/src/jni/simulcast_video_encoder.cc index 18daf6f062..befa75c2ea 100644 --- a/sdk/android/src/jni/simulcast_video_encoder.cc +++ b/sdk/android/src/jni/simulcast_video_encoder.cc @@ -15,7 +15,7 @@ extern "C" { #endif // (VideoEncoderFactory primary, VideoEncoderFactory fallback, VideoCodecInfo info) -JNIEXPORT jlong JNICALL Java_org_webrtc_SimulcastVideoEncoder_nativeCreateEncoder(JNIEnv *env, jclass klass, jobject primary, jobject fallback, jobject info) { +JNIEXPORT jlong JNICALL Java_org_webrtc_SimulcastVideoEncoder_nativeCreateEncoder(JNIEnv *env, jclass klass, jlong webrtcEnvRef, jobject primary, jobject fallback, jobject info) { RTC_LOG(LS_INFO) << "Create simulcast video encoder"; JavaParamRef info_ref(info); SdpVideoFormat format = VideoCodecInfoToSdpVideoFormat(env, info_ref); @@ -23,6 +23,7 @@ JNIEXPORT jlong JNICALL Java_org_webrtc_SimulcastVideoEncoder_nativeCreateEncode // TODO: 影響は軽微だが、リークする可能性があるので将来的に修正したい // https://github.com/shiguredo-webrtc-build/webrtc-build/pull/16#pullrequestreview-600675795 return NativeToJavaPointer(std::make_unique( + *reinterpret_cast(webrtcEnvRef), JavaToNativeVideoEncoderFactory(env, primary).release(), fallback != nullptr ? JavaToNativeVideoEncoderFactory(env, fallback).release() : nullptr, format).release()); diff --git a/sdk/android/src/jni/simulcast_video_encoder.h b/sdk/android/src/jni/simulcast_video_encoder.h index 519be778e8..d80ccde014 100644 --- a/sdk/android/src/jni/simulcast_video_encoder.h +++ b/sdk/android/src/jni/simulcast_video_encoder.h @@ -14,7 +14,7 @@ extern "C" { */ JNIEXPORT jlong JNICALL Java_org_webrtc_SimulcastVideoEncoder_nativeCreateEncoder - (JNIEnv *, jclass, jobject, jobject, jobject); + (JNIEnv *, jclass, jlong, jobject, jobject, jobject); #ifdef __cplusplus } From d2445d181bb575cad4bb4b1f54b626e8d23ac831 Mon Sep 17 00:00:00 2001 From: kanat Date: Thu, 21 Nov 2024 13:16:05 -0500 Subject: [PATCH 2/4] fix SimulcastVideoEncoder.java --- sdk/android/api/org/webrtc/SimulcastVideoEncoder.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/android/api/org/webrtc/SimulcastVideoEncoder.java b/sdk/android/api/org/webrtc/SimulcastVideoEncoder.java index da39a1b6a7..1bea910fae 100644 --- a/sdk/android/api/org/webrtc/SimulcastVideoEncoder.java +++ b/sdk/android/api/org/webrtc/SimulcastVideoEncoder.java @@ -2,7 +2,7 @@ public class SimulcastVideoEncoder extends WrappedNativeVideoEncoder { - static native long nativeCreateEncoder(VideoEncoderFactory primary, VideoEncoderFactory fallback, VideoCodecInfo info); + static native long nativeCreateEncoder(long webrtcEnvRef, VideoEncoderFactory primary, VideoEncoderFactory fallback, VideoCodecInfo info); VideoEncoderFactory primary; VideoEncoderFactory fallback; @@ -15,8 +15,8 @@ public SimulcastVideoEncoder(VideoEncoderFactory primary, VideoEncoderFactory fa } @Override - public long createNativeVideoEncoder() { - return nativeCreateEncoder(primary, fallback, info); + public long createNative(long webrtcEnvRef) { + return nativeCreateEncoder(webrtcEnvRef, primary, fallback, info); } @Override From ee412da27326b17c70c68881c37ad385b2d8a875 Mon Sep 17 00:00:00 2001 From: kanat Date: Thu, 21 Nov 2024 13:25:26 -0500 Subject: [PATCH 3/4] fix simulcast_video_encoder_factory.cc --- sdk/android/src/jni/simulcast_video_encoder_factory.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/android/src/jni/simulcast_video_encoder_factory.cc b/sdk/android/src/jni/simulcast_video_encoder_factory.cc index bc6ea5be6a..6c0d5ad84b 100644 --- a/sdk/android/src/jni/simulcast_video_encoder_factory.cc +++ b/sdk/android/src/jni/simulcast_video_encoder_factory.cc @@ -13,6 +13,7 @@ #include "api/video_codecs/video_codec.h" #include "api/video_codecs/sdp_video_format.h" #include "api/video_codecs/video_codec.h" +#include "api/rtp_parameters.h" using namespace webrtc; using namespace webrtc::jni; @@ -30,7 +31,7 @@ JNIEXPORT jobject JNICALL Java_org_webrtc_SimulcastVideoEncoderFactory_nativeVP9 JNIEXPORT jobject JNICALL Java_org_webrtc_SimulcastVideoEncoderFactory_nativeAV1Codec (JNIEnv *env, jclass klass) { SdpVideoFormat format = SdpVideoFormat( - cricket::kAv1CodecName, SdpVideoFormat::Parameters(), + cricket::kAv1CodecName, CodecParameterMap(), LibaomAv1EncoderSupportedScalabilityModes()); return SdpVideoFormatToVideoCodecInfo(env, format).Release(); } From eae54b9b214d5325da648da741d1acee3b754f9f Mon Sep 17 00:00:00 2001 From: kanat Date: Thu, 21 Nov 2024 13:39:32 -0500 Subject: [PATCH 4/4] fix HardwareVideoEncoderWrapper.java --- sdk/android/api/org/webrtc/HardwareVideoEncoderWrapper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/android/api/org/webrtc/HardwareVideoEncoderWrapper.java b/sdk/android/api/org/webrtc/HardwareVideoEncoderWrapper.java index ac3b0c4684..dff2a81a55 100644 --- a/sdk/android/api/org/webrtc/HardwareVideoEncoderWrapper.java +++ b/sdk/android/api/org/webrtc/HardwareVideoEncoderWrapper.java @@ -191,8 +191,8 @@ public String getImplementationName() { } @Override - public long createNativeVideoEncoder() { - return internalEncoder.createNativeVideoEncoder(); + public long createNative(long webrtcEnvRef) { + return internalEncoder.createNative(webrtcEnvRef); } @Override