fixup! [M120 Migration] Languages pak optimization
[platform/framework/web/chromium-efl.git] / media / BUILD.gn
index c3da19f..532dbbf 100644 (file)
@@ -1,53 +1,82 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
+# Copyright 2014 The Chromium Authors
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
 import("//build/buildflag_header.gni")
 import("//build/config/android/config.gni")
 import("//build/config/arm.gni")
+import("//build/config/chromecast_build.gni")
 import("//build/config/features.gni")
 import("//build/config/linux/pkg_config.gni")
 import("//build/config/ui.gni")
-import("//media/cdm/library_cdm/cdm_paths.gni")
 import("//media/media_options.gni")
 import("//testing/libfuzzer/fuzzer_test.gni")
 import("//testing/test.gni")
 import("//third_party/ffmpeg/ffmpeg_options.gni")
-if (use_efl) {
-  import("//tizen_src/chromium_impl/media/media_efl.gni")
+import("//tizen_src/chromium_impl/media/media_efl.gni")
+
+if (enable_library_cdms) {
+  import("//media/cdm/library_cdm/cdm_paths.gni")
+}
+
+if (is_ios) {
+  import("//build/config/ios/bundle_data_from_filelist.gni")
 }
 
 buildflag_header("media_buildflags") {
   header = "media_buildflags.h"
 
+  enable_passthrough_audio_codecs =
+      enable_platform_dts_audio && (is_win || is_linux)
+
   flags = [
+    "ALLOW_OOP_VIDEO_DECODER=$allow_oop_video_decoder",
+    "ALLOW_HOSTING_OOP_VIDEO_DECODER=$allow_hosting_oop_video_decoder",
     "ALTERNATE_CDM_STORAGE_ID_KEY=\"$alternate_cdm_storage_id_key\"",
-    "CDM_PLATFORM_SPECIFIC_PATH=\"$cdm_platform_specific_path\"",
+    "CHROME_WIDE_ECHO_CANCELLATION=$chrome_wide_echo_cancellation_supported",
     "ENABLE_PLATFORM_AC3_EAC3_AUDIO=$enable_platform_ac3_eac3_audio",
-    "ENABLE_CDM_HOST_VERIFICATION=$enable_cdm_host_verification",
-    "ENABLE_CDM_STORAGE_ID=$enable_cdm_storage_id",
+    "ENABLE_PLATFORM_AC4_AUDIO=$enable_platform_ac4_audio",
+    "ENABLE_CAST_AUDIO_RENDERER=$enable_cast_audio_renderer",
     "ENABLE_DAV1D_DECODER=$enable_dav1d_decoder",
     "ENABLE_AV1_DECODER=$enable_av1_decoder",
     "ENABLE_PLATFORM_DOLBY_VISION=$enable_platform_dolby_vision",
+    "ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION=$enable_platform_encrypted_dolby_vision",
     "ENABLE_FFMPEG=$media_use_ffmpeg",
     "ENABLE_FFMPEG_VIDEO_DECODERS=$enable_ffmpeg_video_decoders",
     "ENABLE_PLATFORM_HEVC=$enable_platform_hevc",
-    "ENABLE_HLS_SAMPLE_AES=$enable_hls_sample_aes",
-    "ENABLE_LIBGAV1_DECODER=$enable_libgav1_decoder",
+    "ENABLE_HEVC_PARSER_AND_HW_DECODER=$enable_hevc_parser_and_hw_decoder",
+    "ENABLE_PLATFORM_VVC=$enable_platform_vvc",
+    "ENABLE_HLS_DEMUXER=$enable_hls_demuxer",
+    "ENABLE_LIBAOM=$enable_libaom",
     "ENABLE_LIBRARY_CDMS=$enable_library_cdms",
     "ENABLE_LIBVPX=$media_use_libvpx",
     "ENABLE_LOGGING_OVERRIDE=$enable_logging_override",
     "ENABLE_MEDIA_DRM_STORAGE=$enable_media_drm_storage",
     "ENABLE_MEDIA_REMOTING=$enable_media_remoting",
     "ENABLE_MEDIA_REMOTING_RPC=$enable_media_remoting_rpc",
+    "ENABLE_OPENH264=$media_use_openh264",
+    "ENABLE_PASSTHROUGH_AUDIO_CODECS=$enable_passthrough_audio_codecs",
+    "ENABLE_PLATFORM_DTS_AUDIO=$enable_platform_dts_audio",
     "ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
     "ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
+    "PLATFORM_HAS_OPTIONAL_HEVC_SUPPORT=$platform_has_optional_hevc_support",
+    "USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
     "USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec",
+    "USE_CHROMEOS_PROTECTED_AV1=$use_chromeos_protected_av1",
+    "USE_CHROMEOS_PROTECTED_MEDIA=$use_chromeos_protected_media",
     "USE_PROPRIETARY_CODECS=$proprietary_codecs",
   ]
+
+  if (enable_library_cdms) {
+    flags += [
+      "CDM_PLATFORM_SPECIFIC_PATH=\"$cdm_platform_specific_path\"",
+      "ENABLE_CDM_HOST_VERIFICATION=$enable_cdm_host_verification",
+      "ENABLE_CDM_STORAGE_ID=$enable_cdm_storage_id",
+    ]
+  }
 }
 
-if (proprietary_codecs && media_use_ffmpeg) {
+if (proprietary_codecs && media_use_ffmpeg && !tizen_multimedia) {
   assert(
       ffmpeg_branding != "Chromium",
       "proprietary codecs and ffmpeg_branding set to Chromium are incompatible")
@@ -83,7 +112,7 @@ config("media_config") {
 #
 config("subcomponent_config") {
   visibility = media_subcomponent_deps
-  if (is_mac) {
+  if (is_apple) {
     visibility += [ "//media/base/mac" ]
   }
   defines = [ "IS_MEDIA_IMPL" ]
@@ -101,7 +130,6 @@ component("media") {
     "//base:i18n",
     "//base/third_party/dynamic_annotations",
     "//cc/paint",
-    "//crypto:platform",
     "//gpu/command_buffer/client:gles2_interface",
     "//gpu/command_buffer/common",
     "//third_party/libyuv",
@@ -121,9 +149,13 @@ component("media") {
   ]
 
   # This must be included here since it actually depends on //media/base.
-  if (is_mac || is_ios) {
+  if (is_mac || (use_blink && is_ios)) {
     public_deps += [ "//media/base/mac" ]
   }
+
+  if (use_ozone) {
+    deps += [ "//ui/ozone" ]
+  }
 }
 
 # Note: This can't be a static_library since it does not have any sources.
@@ -136,13 +168,23 @@ source_set("test_support") {
     "//media/base/android:test_support",
     "//media/filters:test_support",
     "//media/formats:test_support",
+    "//media/renderers:test_support",
     "//media/video:test_support",
   ]
 }
 
+if (is_ios) {
+  bundle_data_from_filelist("unit_tests_bundle_data") {
+    testonly = true
+    filelist_name = "unit_tests_bundle_data.filelist"
+  }
+}
+
 # Contains tests for all targets in the "media" folder.
 # TODO(xhwang): Move mojo/capture/remoting tests here where applicable.
 test("media_unittests") {
+  use_xvfb = use_xvfb_in_this_config
+
   deps = [
     "//media/audio:unit_tests",
     "//media/base:unit_tests",
@@ -163,10 +205,18 @@ test("media_unittests") {
     "//media/webrtc:unit_tests",
   ]
 
-  data = [ "test/data/" ]
+  data = [
+    "test/data/",
+    "formats/mp4/h264_annex_b_fuzz_corpus/",
+    "formats/mp4/h265_annex_b_fuzz_corpus/",
+  ]
 
   data_deps = [ "//testing/buildbot/filters:media_unittests_filters" ]
 
+  if (is_android && enable_chrome_android_internal) {
+    data_deps += [ "//clank/build/bot/filters:media_unittests_filters" ]
+  }
+
   if (media_use_ffmpeg) {
     deps += [ "//media/ffmpeg:unit_tests" ]
   }
@@ -184,7 +234,22 @@ test("media_unittests") {
   }
 
   if (is_fuchsia) {
-    deps += [ "//media/fuchsia/audio:unittests" ]
+    deps += [ "//media/fuchsia/video:unittests" ]
+
+    # PaintCanvasVideoRendererWithGLTest.* uses SwiftShader, which generates
+    # machine code.
+    test_runner_shard = "//build/config/fuchsia/test/elf_test_ambient_exec_runner.shard.test-cml"
+
+    additional_manifest_fragments = [
+      "//build/config/fuchsia/test/audio_output.shard.test-cml",
+      "//build/config/fuchsia/test/mark_vmo_executable.shard.test-cml",
+      "//build/config/fuchsia/test/platform_video_codecs.shard.test-cml",
+      "//third_party/fuchsia-sdk/sdk/pkg/vulkan/client.shard.cml",
+    ]
+
+    if (enable_library_cdms) {
+      excluded_files = [ "lib.unstripped/libclearkeycdm.so" ]
+    }
   }
 
   if (enable_media_remoting) {
@@ -193,6 +258,10 @@ test("media_unittests") {
 
   # The test needs OPUS_FIXED_POINT conditional define.
   configs += [ "//third_party/opus:opus_config" ]
+
+  if (is_ios) {
+    deps += [ ":unit_tests_bundle_data" ]
+  }
 }
 
 test("media_perftests") {
@@ -242,6 +311,11 @@ test("audio_unittests") {
       "//ui/android:ui_java",
     ]
   }
+
+  if (is_fuchsia) {
+    additional_manifest_fragments =
+        [ "//build/config/fuchsia/test/audio_output.shard.test-cml" ]
+  }
 }
 
 # Note: Most external components should just depend on //media unless they
@@ -251,6 +325,7 @@ component("shared_memory_support") {
   sources = [
     "base/audio_bus.cc",
     "base/audio_bus.h",
+    "base/audio_codecs.h",
     "base/audio_latency.cc",
     "base/audio_latency.h",
     "base/audio_parameters.cc",
@@ -261,12 +336,15 @@ component("shared_memory_support") {
     "base/channel_layout.cc",
     "base/channel_layout.h",
     "base/limits.h",
+    "base/media_export.h",
     "base/media_shmem_export.h",
     "base/sample_format.cc",
     "base/sample_format.h",
     "base/vector_math.cc",
     "base/vector_math.h",
     "base/vector_math_testing.h",
+    "base/video_types.cc",
+    "base/video_types.h",
   ]
   if (is_mac) {
     # These need to be included here because audio_latency.cc depends on them.
@@ -287,6 +365,8 @@ component("shared_memory_support") {
   }
   deps = [
     "//base",
+    "//build:chromeos_buildflags",
+    "//media:media_buildflags",
     "//ui/gfx/geometry",
   ]
 }
@@ -355,13 +435,6 @@ fuzzer_test("media_webm_muxer_fuzzer") {
     "//base",
     "//third_party/libwebm",
   ]
-
-  if (use_efl && tizen_multimedia_support) {
-    deps += external_media_efl_deps
-    sources += external_media_efl_sources
-    sources -= external_exclude_media_efl_sources
-    configs += external_media_efl_config
-  }
 }
 
 fuzzer_test("cbcs_decryptor_fuzzer") {