# 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/jumbo.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. jumbo_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", "//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", "//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") { custom_package = "org.chromium.media" sources = [ "java/res/raw/empty.wav" ] } android_library("media_java") { deps = [ ":display_java", ":media_java_resources", "//base:base_java", "//base:jni_java", "//third_party/android_deps:androidx_annotation_annotation_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] srcjar_deps = [ ":java_enums", ":java_switches", "//media/base:java_enums", ] 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/android_deps: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/junit", ] } } else { source_set("android") { } source_set("test_support") { testonly = true } }