From 68e56a59512d3b6e822503e45530e0574cb568f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Wed, 25 Oct 2017 14:28:52 +0200 Subject: [PATCH] Android: Update VideoDecoderFactoryWrapper to implement CreateVideoDecoderWithParams. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Old CreateVideoDecoder interface is deprecated. This allows VideoDecoderFactoryWrapper to create codecs for types that WebRTC doesn't know about. Bug: webrtc:8140 Change-Id: I69aa1a0164642b4e4377daa1abeb9039c04fd884 Reviewed-on: https://webrtc-review.googlesource.com/15401 Reviewed-by: Magnus Jedvert Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#20438} --- sdk/android/src/jni/videodecoderfactorywrapper.cc | 8 ++++---- sdk/android/src/jni/videodecoderfactorywrapper.h | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sdk/android/src/jni/videodecoderfactorywrapper.cc b/sdk/android/src/jni/videodecoderfactorywrapper.cc index 51a2e6142a..b1b784c63c 100644 --- a/sdk/android/src/jni/videodecoderfactorywrapper.cc +++ b/sdk/android/src/jni/videodecoderfactorywrapper.cc @@ -27,12 +27,12 @@ VideoDecoderFactoryWrapper::VideoDecoderFactoryWrapper(JNIEnv* jni, "(Ljava/lang/String;)Lorg/webrtc/VideoDecoder;"); } -VideoDecoder* VideoDecoderFactoryWrapper::CreateVideoDecoder( - VideoCodecType type) { +VideoDecoder* VideoDecoderFactoryWrapper::CreateVideoDecoderWithParams( + const cricket::VideoCodec& codec, + cricket::VideoDecoderParams params) { JNIEnv* jni = AttachCurrentThreadIfNeeded(); ScopedLocalRefFrame local_ref_frame(jni); - const char* type_payload = CodecTypeToPayloadString(type); - jstring name = jni->NewStringUTF(type_payload); + jstring name = JavaStringFromStdString(jni, codec.name); jobject decoder = jni->CallObjectMethod(*decoder_factory_, create_decoder_method_, name); return decoder != nullptr ? new VideoDecoderWrapper(jni, decoder) : nullptr; diff --git a/sdk/android/src/jni/videodecoderfactorywrapper.h b/sdk/android/src/jni/videodecoderfactorywrapper.h index 99f495d22c..0ad3ff230a 100644 --- a/sdk/android/src/jni/videodecoderfactorywrapper.h +++ b/sdk/android/src/jni/videodecoderfactorywrapper.h @@ -27,7 +27,9 @@ class VideoDecoderFactoryWrapper : public cricket::WebRtcVideoDecoderFactory { // Caller takes the ownership of the returned object and it should be released // by calling DestroyVideoDecoder(). - VideoDecoder* CreateVideoDecoder(VideoCodecType type) override; + VideoDecoder* CreateVideoDecoderWithParams( + const cricket::VideoCodec& codec, + cricket::VideoDecoderParams params) override; void DestroyVideoDecoder(VideoDecoder* decoder) override; private: