blob: 54375dd830536d232c1662d915ec37ccc1f02276 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/arm.gni")
import("//build/config/ui.gni")
import("//media/media_options.gni")
if (is_android) {
import("//build/config/android/rules.gni")
# This is bundled into //media, so all dependencies should be on //media.
# APK targets that depend on this indirectly, should also
# depend on :media_java to get the corresponding Java classes.
source_set("android") {
visibility = [
"//media",
"//media/filters",
]
sources = [
"android_cdm_factory.cc",
"android_cdm_factory.h",
"android_overlay.cc",
"android_overlay.h",
"android_util.cc",
"android_util.h",
"jni_hdr_metadata.cc",
"jni_hdr_metadata.h",
"media_codec_bridge.h",
"media_codec_bridge_impl.cc",
"media_codec_bridge_impl.h",
"media_codec_direction.h",
"media_codec_loop.cc",
"media_codec_loop.h",
"media_codec_util.cc",
"media_codec_util.h",
"media_crypto_context.h",
"media_crypto_context_impl.cc",
"media_crypto_context_impl.h",
"media_drm_bridge.cc",
"media_drm_bridge.h",
"media_drm_bridge_client.cc",
"media_drm_bridge_client.h",
"media_drm_bridge_delegate.cc",
"media_drm_bridge_delegate.h",
"media_drm_bridge_factory.cc",
"media_drm_bridge_factory.h",
"media_drm_storage_bridge.cc",
"media_drm_storage_bridge.h",
"media_player_bridge.cc",
"media_player_bridge.h",
"media_player_listener.cc",
"media_player_listener.h",
"media_resource_getter.cc",
"media_resource_getter.h",
"media_server_crash_listener.cc",
"media_server_crash_listener.h",
"media_service_throttler.cc",
"media_service_throttler.h",
"media_url_interceptor.h",
"stream_texture_wrapper.h",
]
configs += [ "//media:subcomponent_config" ]
public_deps = [ ":media_jni_headers" ]
deps = [
"//media/audio",
"//media/base",
"//media/cdm",
"//media/formats",
"//net",
"//third_party/widevine/cdm:headers",
"//ui/gl",
"//url",
]
if (proprietary_codecs) {
sources += [
"extract_sps_and_pps.cc",
"extract_sps_and_pps.h",
]
}
}
source_set("unit_tests") {
testonly = true
sources = [
"media_codec_bridge_impl_unittest.cc",
"media_codec_loop_unittest.cc",
"media_codec_util_unittest.cc",
"media_drm_bridge_unittest.cc",
"media_player_bridge_unittest.cc",
"media_service_throttler_unittest.cc",
]
deps = [
"//base/test:test_support",
"//media:test_support",
"//net",
"//testing/gmock",
"//testing/gtest",
"//third_party/libyuv",
"//third_party/widevine/cdm:headers",
"//ui/gfx:color_space",
]
configs += [ "//media:media_config" ]
}
static_library("test_support") {
testonly = true
sources = [
"mock_android_overlay.cc",
"mock_android_overlay.h",
"mock_media_codec_bridge.cc",
"mock_media_codec_bridge.h",
"mock_media_crypto_context.cc",
"mock_media_crypto_context.h",
"test_destruction_observable.cc",
"test_destruction_observable.h",
]
deps = [
"//base/test:test_support",
"//media/base:test_support",
"//testing/gmock",
"//testing/gtest",
]
}
generate_jni("media_jni_headers") {
sources = [
"java/src/org/chromium/media/AudioManagerAndroid.java",
"java/src/org/chromium/media/AudioTrackOutputStream.java",
"java/src/org/chromium/media/CodecProfileLevelList.java",
"java/src/org/chromium/media/HdrMetadata.java",
"java/src/org/chromium/media/MediaCodecBridge.java",
"java/src/org/chromium/media/MediaCodecBridgeBuilder.java",
"java/src/org/chromium/media/MediaCodecUtil.java",
"java/src/org/chromium/media/MediaDrmBridge.java",
"java/src/org/chromium/media/MediaDrmStorageBridge.java",
"java/src/org/chromium/media/MediaPlayerBridge.java",
"java/src/org/chromium/media/MediaPlayerListener.java",
"java/src/org/chromium/media/MediaServerCrashListener.java",
]
}
java_cpp_enum("java_enums") {
sources = [
"media_codec_bridge.h",
"media_codec_direction.h",
]
}
java_cpp_strings("java_switches") {
sources = [ "//media/base/media_switches.cc" ]
template = "//media/base/android/java_templates/MediaSwitches.java.tmpl"
}
android_resources("media_java_resources") {
sources = [ "java/res/raw/empty.wav" ]
}
android_library("media_java") {
deps = [
":display_java",
":media_java_resources",
"//base:base_java",
"//third_party/androidx:androidx_annotation_annotation_java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
srcjar_deps = [
":java_enums",
":java_switches",
"//media/base:java_enums",
]
resources_package = "org.chromium.media"
sources = [
"java/src/org/chromium/media/AudioManagerAndroid.java",
"java/src/org/chromium/media/AudioTrackOutputStream.java",
"java/src/org/chromium/media/BitrateAdjuster.java",
"java/src/org/chromium/media/CodecProfileLevelList.java",
"java/src/org/chromium/media/HdrMetadata.java",
"java/src/org/chromium/media/MaxAnticipatedResolutionEstimator.java",
"java/src/org/chromium/media/MediaCodecBridge.java",
"java/src/org/chromium/media/MediaCodecBridgeBuilder.java",
"java/src/org/chromium/media/MediaCodecEncoder.java",
"java/src/org/chromium/media/MediaCodecUtil.java",
"java/src/org/chromium/media/MediaDrmBridge.java",
"java/src/org/chromium/media/MediaDrmSessionManager.java",
"java/src/org/chromium/media/MediaDrmStorageBridge.java",
"java/src/org/chromium/media/MediaFormatBuilder.java",
"java/src/org/chromium/media/MediaPlayerBridge.java",
"java/src/org/chromium/media/MediaPlayerListener.java",
"java/src/org/chromium/media/MediaServerCrashListener.java",
"java/src/org/chromium/media/ScreenResolutionUtil.java",
]
}
# TODO (b/146418831): Replace with androidx version
android_library("display_java") {
sources = [ "java/src/org/chromium/media/DisplayCompat.java" ]
deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
}
junit_binary("media_base_junit_tests") {
sources = [
"java/src/test/org/chromium/media/AudioTrackOutputStreamTest.java",
"java/src/test/org/chromium/media/BitrateAdjusterTest.java",
"java/src/test/org/chromium/media/MediaFormatBuilderTest.java",
]
deps = [
":media_java",
"//base:base_java",
"//base:base_java_test_support",
"//third_party/androidx:androidx_test_runner_java",
"//third_party/junit",
]
}
} else {
source_set("android") {
}
source_set("test_support") {
testonly = true
}
}