From d2535a53cf014e4973b92bb6f00d7a2b87cd02c2 Mon Sep 17 00:00:00 2001 From: philipel Date: Wed, 5 Apr 2023 11:30:29 +0200 Subject: [PATCH] Replace BuiltinVideo{Encoder,Decoder}Factory with Video{Encoder,Decoder}FactoryTemplate. Bug: webrtc:13573 Change-Id: I07e4fe9be938ba2540351b73ff22a090c68afa00 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299663 Reviewed-by: Sergey Silkin Commit-Queue: Philip Eliasson Cr-Commit-Position: refs/heads/main@{#39777} --- sdk/android/BUILD.gn | 10 ++++++++-- .../src/org/webrtc/DefaultVideoEncoderFactoryTest.java | 8 ++++---- .../org/webrtc/SoftwareVideoEncoderFactoryTest.java | 4 ++-- sdk/android/src/jni/software_video_decoder_factory.cc | 9 +++++++-- sdk/android/src/jni/software_video_encoder_factory.cc | 9 +++++++-- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 5bf25ffc6d..6c0d9c0364 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -898,9 +898,15 @@ if (current_os == "linux" || is_android) { ":libvpx_vp9_jni", ":native_api_jni", ":video_jni", - "../../api/video_codecs:builtin_video_decoder_factory", - "../../api/video_codecs:builtin_video_encoder_factory", "../../api/video_codecs:video_codecs_api", + "../../api/video_codecs:video_decoder_factory_template", + "../../api/video_codecs:video_decoder_factory_template_dav1d_adapter", + "../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter", + "../../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter", + "../../api/video_codecs:video_encoder_factory_template", + "../../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter", + "../../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter", + "../../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter", ] } diff --git a/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java b/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java index fe608c794e..eee930601d 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java @@ -53,8 +53,8 @@ public class DefaultVideoEncoderFactoryTest { VideoCodecInfo[] supportedCodecs = defFactory.getSupportedCodecs(); assertEquals(3, supportedCodecs.length); assertEquals("VP8", supportedCodecs[0].name); - assertEquals("AV1", supportedCodecs[1].name); - assertEquals("VP9", supportedCodecs[2].name); + assertEquals("VP9", supportedCodecs[1].name); + assertEquals("AV1", supportedCodecs[2].name); } @SmallTest @@ -68,8 +68,8 @@ public class DefaultVideoEncoderFactoryTest { VideoCodecInfo[] supportedCodecs = defFactory.getSupportedCodecs(); assertEquals(4, supportedCodecs.length); assertEquals("VP8", supportedCodecs[0].name); - assertEquals("AV1", supportedCodecs[1].name); - assertEquals("VP9", supportedCodecs[2].name); + assertEquals("VP9", supportedCodecs[1].name); + assertEquals("AV1", supportedCodecs[2].name); assertEquals("VP8", supportedCodecs[3].name); assertEquals(1, supportedCodecs[3].params.size()); assertEquals("value", supportedCodecs[3].params.get("param")); diff --git a/sdk/android/instrumentationtests/src/org/webrtc/SoftwareVideoEncoderFactoryTest.java b/sdk/android/instrumentationtests/src/org/webrtc/SoftwareVideoEncoderFactoryTest.java index 696b423cde..877c5da941 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/SoftwareVideoEncoderFactoryTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/SoftwareVideoEncoderFactoryTest.java @@ -32,8 +32,8 @@ public class SoftwareVideoEncoderFactoryTest { VideoCodecInfo[] codecs = factory.getSupportedCodecs(); assertThat(codecs.length).isEqualTo(3); assertThat(codecs[0].name).isEqualTo("VP8"); - assertThat(codecs[1].name).isEqualTo("AV1"); - assertThat(codecs[2].name).isEqualTo("VP9"); + assertThat(codecs[1].name).isEqualTo("VP9"); + assertThat(codecs[2].name).isEqualTo("AV1"); } @SmallTest diff --git a/sdk/android/src/jni/software_video_decoder_factory.cc b/sdk/android/src/jni/software_video_decoder_factory.cc index 151bf5f205..710b788b99 100644 --- a/sdk/android/src/jni/software_video_decoder_factory.cc +++ b/sdk/android/src/jni/software_video_decoder_factory.cc @@ -8,8 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "api/video_codecs/builtin_video_decoder_factory.h" #include "api/video_codecs/video_decoder.h" +#include "api/video_codecs/video_decoder_factory_template.h" +#include "api/video_codecs/video_decoder_factory_template_dav1d_adapter.h" +#include "api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h" +#include "api/video_codecs/video_decoder_factory_template_libvpx_vp9_adapter.h" #include "sdk/android/generated_swcodecs_jni/SoftwareVideoDecoderFactory_jni.h" #include "sdk/android/native_api/jni/java_types.h" #include "sdk/android/src/jni/jni_helpers.h" @@ -20,7 +23,9 @@ namespace jni { static jlong JNI_SoftwareVideoDecoderFactory_CreateFactory(JNIEnv* env) { return webrtc::NativeToJavaPointer( - CreateBuiltinVideoDecoderFactory().release()); + new VideoDecoderFactoryTemplate()); } static jlong JNI_SoftwareVideoDecoderFactory_CreateDecoder( diff --git a/sdk/android/src/jni/software_video_encoder_factory.cc b/sdk/android/src/jni/software_video_encoder_factory.cc index 4b86960198..b16a8a19d2 100644 --- a/sdk/android/src/jni/software_video_encoder_factory.cc +++ b/sdk/android/src/jni/software_video_encoder_factory.cc @@ -8,8 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "api/video_codecs/builtin_video_encoder_factory.h" #include "api/video_codecs/video_encoder.h" +#include "api/video_codecs/video_encoder_factory_template.h" +#include "api/video_codecs/video_encoder_factory_template_libaom_av1_adapter.h" +#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h" +#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h" #include "sdk/android/generated_swcodecs_jni/SoftwareVideoEncoderFactory_jni.h" #include "sdk/android/native_api/jni/java_types.h" #include "sdk/android/src/jni/jni_helpers.h" @@ -20,7 +23,9 @@ namespace jni { static jlong JNI_SoftwareVideoEncoderFactory_CreateFactory(JNIEnv* env) { return webrtc::NativeToJavaPointer( - CreateBuiltinVideoEncoderFactory().release()); + new VideoEncoderFactoryTemplate()); } static jlong JNI_SoftwareVideoEncoderFactory_CreateEncoder(