// Copyright (C) 2019 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle" android { namespace 'androidx.media3.decoder.av1' defaultConfig { externalNativeBuild { cmake { // Debug CMake build type causes video frames to drop, // so native library should always use Release build type. arguments "-DCMAKE_BUILD_TYPE=Release" arguments "-DBUILD_TESTING=OFF" targets "gav1JNI" } } } // TODO(Internal: b/372449691): Remove packagingOptions once AGP is updated // to version 8.5.1 or higher. packagingOptions { jniLibs { useLegacyPackaging true } } } // Configure the native build only if libgav1 is present to avoid gradle sync // failures if libgav1 hasn't been built according to the README instructions. if (project.file('src/main/jni/libgav1').exists()) { android.externalNativeBuild.cmake { path = 'src/main/jni/CMakeLists.txt' version = '3.21.0+' if (project.hasProperty('externalNativeBuildDir')) { if (!new File(externalNativeBuildDir).isAbsolute()) { ext.externalNativeBuildDir = new File(rootDir, it.externalNativeBuildDir) } buildStagingDirectory = "${externalNativeBuildDir}/${project.name}" } } } dependencies { implementation project(modulePrefix + 'lib-decoder') // TODO(b/203752526): Remove this dependency. implementation project(modulePrefix + 'lib-exoplayer') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion }