Java dav1d decoder.

Bug: none
Change-Id: I59553cffaa1f8bf4357dc33e83d9cd5fa8bb2a4a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/241321
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35557}
This commit is contained in:
philipel
2021-12-14 14:31:27 +01:00
committed by WebRTC LUCI CQ
parent f93d4281e6
commit 9e48751f0d
4 changed files with 74 additions and 1 deletions

View File

@ -513,6 +513,15 @@ if (is_android) {
] ]
} }
rtc_android_library("dav1d_java") {
visibility = [ "*" ]
sources = [ "api/org/webrtc/Dav1dDecoder.java" ]
deps = [
":dav1d_av1_jni",
":video_java",
]
}
rtc_android_library("swcodecs_java") { rtc_android_library("swcodecs_java") {
visibility = [ "*" ] visibility = [ "*" ]
sources = [ sources = [
@ -861,7 +870,7 @@ if (current_os == "linux" || is_android) {
rtc_library("libaom_av1_jni") { rtc_library("libaom_av1_jni") {
visibility = [ "*" ] visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ] allow_poison = [ "software_video_codecs" ]
sources = [ "src/jni/av1_codec.cc" ] sources = [ "src/jni/libaom_av1_codec.cc" ]
deps = [ deps = [
":base_jni", ":base_jni",
":generated_libaom_av1_jni", ":generated_libaom_av1_jni",
@ -871,6 +880,18 @@ if (current_os == "linux" || is_android) {
] ]
} }
rtc_library("dav1d_av1_jni") {
visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ]
sources = [ "src/jni/dav1d_codec.cc" ]
deps = [
":base_jni",
":generated_dav1d_jni",
":video_jni",
"../../modules/video_coding/codecs/av1:dav1d_decoder",
]
}
rtc_library("swcodecs_jni") { rtc_library("swcodecs_jni") {
visibility = [ "*" ] visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ] allow_poison = [ "software_video_codecs" ]
@ -1321,6 +1342,13 @@ if (current_os == "linux" || is_android) {
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
} }
generate_jni("generated_dav1d_jni") {
sources = [ "api/org/webrtc/Dav1dDecoder.java" ]
namespace = "webrtc::jni"
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
}
generate_jni("generated_peerconnection_jni") { generate_jni("generated_peerconnection_jni") {
sources = [ sources = [
"api/org/webrtc/AddIceObserver.java", "api/org/webrtc/AddIceObserver.java",

View File

@ -0,0 +1,20 @@
/*
* Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
package org.webrtc;
public class Dav1dDecoder extends WrappedNativeVideoDecoder {
@Override
public long createNativeVideoDecoder() {
return nativeCreateDecoder();
}
static native long nativeCreateDecoder();
}

View File

@ -0,0 +1,25 @@
/*
* Copyright 2021 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <jni.h>
#include "modules/video_coding/codecs/av1/dav1d_decoder.h"
#include "sdk/android/generated_dav1d_jni/Dav1dDecoder_jni.h"
#include "sdk/android/src/jni/jni_helpers.h"
namespace webrtc {
namespace jni {
static jlong JNI_Dav1dDecoder_CreateDecoder(JNIEnv* jni) {
return jlongFromPointer(webrtc::CreateDav1dDecoder().release());
}
} // namespace jni
} // namespace webrtc