# 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/features.gni")
import("//build/config/linux/pkg_config.gni")
import("//build/config/ui.gni")
import("//media/media_options.gni")

# Common configuration for targets in the media directory.
# NOT for exporting.
config("media_config") {
  defines = [ "MEDIA_IMPLEMENTATION" ]
  if (cpu_arch == "arm" && arm_use_neon) {
    defines += [ "USE_NEON" ]
  }
  if (use_pulseaudio) {
    defines += [ "USE_PULSEAUDIO" ]
    if (!link_pulseaudio) {
      defines += [ "DLOPEN_PULSEAUDIO" ]
    }
  }
  if (use_cras) {
    defines += [ "USE_CRAS" ]
  }
}

config("media_dependent_config") {
  defines = []
  if (!media_use_libvpx) {
    defines += [ "MEDIA_DISABLE_LIBVPX" ]
  }
  if (is_win) {
    ldflags = [
      "/DELAYLOAD:mf.dll",
      "/DELAYLOAD:mfplat.dll",
      "/DELAYLOAD:mfreadwrite.dll",
    ]
  }
}

if (use_ozone) {
  action("generate_ozone_constructor_list") {
    # Ozone platform objects are auto-generated using similar
    # patterns for naming and classes constructors. Here we build the
    # object MediaOzonePlatform.
    script = "../ui/ozone/generate_constructor_list.py"

    platform_list_txt_file = "$target_gen_dir/../ui/ozone/platform_list.txt"
    constructor_list_cc_file = "$target_gen_dir/../media/ozone/constructor_list.cc"

    sources = [ platform_list_txt_file ]
    outputs = [ constructor_list_cc_file ]
    args = [
      "--platform_list=" + rebase_path(platform_list_txt_file, root_build_dir),
      "--output_cc=" + rebase_path(constructor_list_cc_file, root_build_dir),
      "--namespace=media",
      "--typename=MediaOzonePlatform",
      "--include=\"media/ozone/media_ozone_platform.h\""
    ]
  }
}

component("media") {
  sources = [
    "cdm/aes_decryptor.cc",
    "cdm/aes_decryptor.h",
    "cdm/json_web_key.cc",
    "cdm/json_web_key.h",
    "cdm/key_system_names.cc",
    "cdm/key_system_names.h",
    "cdm/player_tracker_impl.cc",
    "cdm/player_tracker_impl.h",
    "ffmpeg/ffmpeg_deleters.h",
    "filters/audio_clock.cc",
    "filters/audio_clock.h",
    "filters/audio_renderer_algorithm.cc",
    "filters/audio_renderer_algorithm.h",
    "filters/audio_renderer_impl.cc",
    "filters/audio_renderer_impl.h",
    "filters/chunk_demuxer.cc",
    "filters/chunk_demuxer.h",
    "filters/decoder_selector.cc",
    "filters/decoder_selector.h",
    "filters/decoder_stream.cc",
    "filters/decoder_stream.h",
    "filters/decoder_stream_traits.cc",
    "filters/decoder_stream_traits.h",
    "filters/decrypting_audio_decoder.cc",
    "filters/decrypting_audio_decoder.h",
    "filters/decrypting_demuxer_stream.cc",
    "filters/decrypting_demuxer_stream.h",
    "filters/decrypting_video_decoder.cc",
    "filters/decrypting_video_decoder.h",
    "filters/file_data_source.cc",
    "filters/file_data_source.h",
    "filters/frame_processor.cc",
    "filters/frame_processor.h",
    "filters/gpu_video_accelerator_factories.cc",
    "filters/gpu_video_accelerator_factories.h",
    "filters/gpu_video_decoder.cc",
    "filters/gpu_video_decoder.h",
    "filters/h264_bit_reader.cc",
    "filters/h264_bit_reader.h",
    "filters/h264_parser.cc",
    "filters/h264_parser.h",
    "filters/renderer_impl.cc",
    "filters/renderer_impl.h",
    "filters/skcanvas_video_renderer.cc",
    "filters/skcanvas_video_renderer.h",
    "filters/source_buffer_platform.cc",
    "filters/source_buffer_platform.h",
    "filters/source_buffer_range.cc",
    "filters/source_buffer_range.h",
    "filters/source_buffer_stream.cc",
    "filters/source_buffer_stream.h",
    "filters/stream_parser_factory.cc",
    "filters/stream_parser_factory.h",
    "filters/video_frame_scheduler.h",
    "filters/video_frame_scheduler_impl.cc",
    "filters/video_frame_scheduler_impl.h",
    "filters/video_frame_scheduler_proxy.cc",
    "filters/video_frame_scheduler_proxy.h",
    "filters/video_renderer_impl.cc",
    "filters/video_renderer_impl.h",
    "filters/webvtt_util.h",
    "filters/wsola_internals.cc",
    "filters/wsola_internals.h",
    "midi/midi_manager.cc",
    "midi/midi_manager.h",
    "midi/midi_manager_mac.cc",
    "midi/midi_manager_mac.h",
    "midi/midi_manager_usb.cc",
    "midi/midi_manager_usb.h",
    "midi/midi_manager_win.cc",
    "midi/midi_manager_win.h",
    "midi/midi_message_queue.cc",
    "midi/midi_message_queue.h",
    "midi/midi_message_util.cc",
    "midi/midi_message_util.h",
    "midi/midi_port_info.cc",
    "midi/midi_port_info.h",
    "midi/usb_midi_descriptor_parser.cc",
    "midi/usb_midi_descriptor_parser.h",
    "midi/usb_midi_device.h",
    "midi/usb_midi_input_stream.cc",
    "midi/usb_midi_input_stream.h",
    "midi/usb_midi_jack.h",
    "midi/usb_midi_output_stream.cc",
    "midi/usb_midi_output_stream.h",
    "video/capture/fake_video_capture_device.cc",
    "video/capture/fake_video_capture_device.h",
    "video/capture/fake_video_capture_device_factory.h",
    "video/capture/fake_video_capture_device_factory.cc",
    "video/capture/file_video_capture_device.cc",
    "video/capture/file_video_capture_device.h",
    "video/capture/file_video_capture_device_factory.h",
    "video/capture/file_video_capture_device_factory.cc",
    "video/capture/linux/video_capture_device_factory_linux.cc",
    "video/capture/linux/video_capture_device_factory_linux.h",
    "video/capture/linux/video_capture_device_linux.cc",
    "video/capture/linux/video_capture_device_linux.h",
    "video/capture/linux/video_capture_device_chromeos.cc",
    "video/capture/linux/video_capture_device_chromeos.h",
    "video/capture/mac/platform_video_capturing_mac.h",
    "video/capture/mac/video_capture_device_avfoundation_mac.h",
    "video/capture/mac/video_capture_device_avfoundation_mac.mm",
    "video/capture/mac/video_capture_device_decklink_mac.h",
    "video/capture/mac/video_capture_device_decklink_mac.mm",
    "video/capture/mac/video_capture_device_factory_mac.h",
    "video/capture/mac/video_capture_device_factory_mac.mm",
    "video/capture/mac/video_capture_device_mac.h",
    "video/capture/mac/video_capture_device_mac.mm",
    "video/capture/mac/video_capture_device_qtkit_mac.h",
    "video/capture/mac/video_capture_device_qtkit_mac.mm",
    "video/capture/video_capture_device.cc",
    "video/capture/video_capture_device.h",
    "video/capture/video_capture_device_factory.cc",
    "video/capture/video_capture_device_factory.h",
    "video/capture/video_capture_device_info.cc",
    "video/capture/video_capture_device_info.h",
    "video/capture/video_capture_types.cc",
    "video/capture/video_capture_types.h",
    "video/capture/win/capability_list_win.cc",
    "video/capture/win/capability_list_win.h",
    "video/capture/win/filter_base_win.cc",
    "video/capture/win/filter_base_win.h",
    "video/capture/win/pin_base_win.cc",
    "video/capture/win/pin_base_win.h",
    "video/capture/win/sink_filter_observer_win.h",
    "video/capture/win/sink_filter_win.cc",
    "video/capture/win/sink_filter_win.h",
    "video/capture/win/sink_input_pin_win.cc",
    "video/capture/win/sink_input_pin_win.h",
    "video/capture/win/video_capture_device_factory_win.cc",
    "video/capture/win/video_capture_device_factory_win.h",
    "video/capture/win/video_capture_device_mf_win.cc",
    "video/capture/win/video_capture_device_mf_win.h",
    "video/capture/win/video_capture_device_win.cc",
    "video/capture/win/video_capture_device_win.h",
    "video/picture.cc",
    "video/picture.h",
    "video/video_decode_accelerator.cc",
    "video/video_decode_accelerator.h",
    "video/video_encode_accelerator.cc",
    "video/video_encode_accelerator.h",
    "formats/common/offset_byte_queue.cc",
    "formats/common/offset_byte_queue.h",
    "formats/webm/webm_audio_client.cc",
    "formats/webm/webm_audio_client.h",
    "formats/webm/webm_cluster_parser.cc",
    "formats/webm/webm_cluster_parser.h",
    "formats/webm/webm_constants.cc",
    "formats/webm/webm_constants.h",
    "formats/webm/webm_content_encodings.cc",
    "formats/webm/webm_content_encodings.h",
    "formats/webm/webm_content_encodings_client.cc",
    "formats/webm/webm_content_encodings_client.h",
    "formats/webm/webm_crypto_helpers.cc",
    "formats/webm/webm_crypto_helpers.h",
    "formats/webm/webm_info_parser.cc",
    "formats/webm/webm_info_parser.h",
    "formats/webm/webm_parser.cc",
    "formats/webm/webm_parser.h",
    "formats/webm/webm_stream_parser.cc",
    "formats/webm/webm_stream_parser.h",
    "formats/webm/webm_tracks_parser.cc",
    "formats/webm/webm_tracks_parser.h",
    "formats/webm/webm_video_client.cc",
    "formats/webm/webm_video_client.h",
    "formats/webm/webm_webvtt_parser.cc",
    "formats/webm/webm_webvtt_parser.h",
  ]

  configs += [ ":media_config", ]
  all_dependent_configs = [ ":media_dependent_config" ]

  cflags = []
  libs = []
  defines = []
  deps = []

  include_dirs = [ "." ]
  if (media_use_ffmpeg) {
    deps += [ "//third_party/ffmpeg" ]
    sources += [
      "ffmpeg/ffmpeg_common.cc",
      "ffmpeg/ffmpeg_common.h",
      "filters/audio_file_reader.cc",
      "filters/audio_file_reader.h",
      "filters/blocking_url_protocol.cc",
      "filters/blocking_url_protocol.h",
      "filters/ffmpeg_audio_decoder.cc",
      "filters/ffmpeg_audio_decoder.h",
      "filters/ffmpeg_bitstream_converter.h",
      "filters/ffmpeg_demuxer.cc",
      "filters/ffmpeg_demuxer.h",
      "filters/ffmpeg_glue.cc",
      "filters/ffmpeg_glue.h",
      "filters/ffmpeg_video_decoder.cc",
      "filters/ffmpeg_video_decoder.h",
      "filters/in_memory_url_protocol.cc",
      "filters/in_memory_url_protocol.h",
    ]
    if (proprietary_codecs) {
      sources += [
        "filters/ffmpeg_aac_bitstream_converter.cc",
        "filters/ffmpeg_aac_bitstream_converter.h",
        "filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc",
        "filters/ffmpeg_h264_to_annex_b_bitstream_converter.h",
      ]
    }
  }

  if (cpu_arch == "arm" && arm_use_neon) {
    defines += [ "USE_NEON" ]
  }

  if (media_use_libvpx) {
     sources += [
       "filters/vpx_video_decoder.cc",
       "filters/vpx_video_decoder.h",
     ]
     deps += [ "//third_party/libvpx" ]
  }

  if (!is_android) {
    sources += [
      "filters/opus_audio_decoder.cc",
      "filters/opus_audio_decoder.h",
    ]
  } else {
    sources += [
      "midi/midi_manager_android.cc",
      "midi/usb_midi_device_android.cc",
      "midi/usb_midi_device_android.h",
      "midi/usb_midi_device_factory_android.cc",
      "midi/usb_midi_device_factory_android.h",
      "video/capture/android/video_capture_device_android.cc",
      "video/capture/android/video_capture_device_android.h",
      "video/capture/android/video_capture_device_factory_android.cc",
      "video/capture/android/video_capture_device_factory_android.h",
    ]
    deps += [
      "//media/base/android",
      "//media/base/android:media_jni_headers",
      "//media/base/android:video_capture_jni_headers",
    ]
    if (!is_android_webview_build) {
      deps += [ "//media/base/android:media_java" ]
    }
  }

  if (cpu_arch != "arm" && is_chromeos && use_x11) {
    sources += [
      "filters/h264_bitstream_buffer.cc",
      "filters/h264_bitstream_buffer.h",
    ]
  }

  if (use_alsa) {
    libs += [ "asound" ]
    defines += [ "USE_ALSA" ]
    sources += [
      "midi/midi_manager_alsa.cc",
      "midi/midi_manager_alsa.h",
    ]
  }

  # A simple WebM encoder for animated avatars on ChromeOS.

  if (use_ozone) {
    # Used for the generated listing header (ui/ozone/platform_list.h)
    include_dirs += [ target_gen_dir ]

    sources += [
      "ozone/media_ozone_platform.cc",
      "ozone/media_ozone_platform.h",
    ] + get_target_outputs(":generate_ozone_constructor_list")

    deps += [
      ":generate_ozone_constructor_list",
      "//ui/ozone",
    ]
  }

  if (is_mac) {
    deps += [
      "//media/base/mac",
      "//third_party/decklink",
    ]
    libs += [
      "CoreMIDI.framework",
      "CoreVideo.framework",
      "OpenGL.framework",
      "QTKit.framework",
    ]
  }

  if (is_ios) {
    deps += [
      "//media/base/mac",
    ]
  }

  if (is_win) {
    libs += [
      "mf.lib",
      "mfplat.lib",
      "mfreadwrite.lib",
      "mfuuid.lib",
    ]
    cflags += [
      "/wd4267"  # TODO(wolenetz): Fix size_t to int trunctaion in win64. See
                 # http://crbug.com/171009
    ]
  }

  if (proprietary_codecs) {
    sources += [
      "filters/h264_to_annex_b_bitstream_converter.cc",
      "filters/h264_to_annex_b_bitstream_converter.h",
      "formats/mp2t/es_adapter_video.cc",
      "formats/mp2t/es_adapter_video.h",
      "formats/mp2t/es_parser.cc",
      "formats/mp2t/es_parser.h",
      "formats/mp2t/es_parser_adts.cc",
      "formats/mp2t/es_parser_adts.h",
      "formats/mp2t/es_parser_h264.cc",
      "formats/mp2t/es_parser_h264.h",
      "formats/mp2t/es_parser_mpeg1audio.cc",
      "formats/mp2t/es_parser_mpeg1audio.h",
      "formats/mp2t/mp2t_common.h",
      "formats/mp2t/mp2t_stream_parser.cc",
      "formats/mp2t/mp2t_stream_parser.h",
      "formats/mp2t/timestamp_unroller.cc",
      "formats/mp2t/timestamp_unroller.h",
      "formats/mp2t/ts_packet.cc",
      "formats/mp2t/ts_packet.h",
      "formats/mp2t/ts_section.h",
      "formats/mp2t/ts_section_pat.cc",
      "formats/mp2t/ts_section_pat.h",
      "formats/mp2t/ts_section_pes.cc",
      "formats/mp2t/ts_section_pes.h",
      "formats/mp2t/ts_section_pmt.cc",
      "formats/mp2t/ts_section_pmt.h",
      "formats/mp2t/ts_section_psi.cc",
      "formats/mp2t/ts_section_psi.h",
      "formats/mp4/aac.cc",
      "formats/mp4/aac.h",
      "formats/mp4/avc.cc",
      "formats/mp4/avc.h",
      "formats/mp4/box_definitions.cc",
      "formats/mp4/box_definitions.h",
      "formats/mp4/box_reader.cc",
      "formats/mp4/box_reader.h",
      "formats/mp4/cenc.cc",
      "formats/mp4/cenc.h",
      "formats/mp4/es_descriptor.cc",
      "formats/mp4/es_descriptor.h",
      "formats/mp4/mp4_stream_parser.cc",
      "formats/mp4/mp4_stream_parser.h",
      "formats/mp4/sample_to_group_iterator.cc",
      "formats/mp4/sample_to_group_iterator.h",
      "formats/mp4/track_run_iterator.cc",
      "formats/mp4/track_run_iterator.h",
      "formats/mpeg/adts_constants.cc",
      "formats/mpeg/adts_constants.h",
      "formats/mpeg/adts_stream_parser.cc",
      "formats/mpeg/adts_stream_parser.h",
      "formats/mpeg/mpeg_audio_stream_parser_base.cc",
      "formats/mpeg/mpeg_audio_stream_parser_base.h",
      "formats/mpeg/mpeg1_audio_stream_parser.cc",
      "formats/mpeg/mpeg1_audio_stream_parser.h",
    ]
  }

  public_deps = [
    "//media/base",
    "//media/audio",
  ]

  deps += [
    ":shared_memory_support",
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//crypto",
    "//crypto:platform",  # TODO(ajwong): This used to be provided by crypto.gyp via export_dependent_settings
    "//gpu/command_buffer/common",
    "//skia",
    "//third_party/libyuv",
    "//third_party/opus",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]
}

# Minimal media component for media/cast on iOS.
if (is_ios) {
  component("media_for_cast_ios") {
    configs += [ ":media_config" ]
    all_dependent_configs = [ ":media_dependent_config" ]
    include_dirs = [ "." ]
    libs = [ "CoreVideo.framework" ]

    deps = [
      ":shared_memory_support",
      "//base",
      "//media/base:base_for_cast_ios",
      "//media/base/mac",
      "//ui/gfx/geometry",
    ]
  }
}

test("media_unittests") {
  sources = [
    "cdm/aes_decryptor_unittest.cc",
    "cdm/json_web_key_unittest.cc",
    "filters/audio_clock_unittest.cc",
    "filters/audio_decoder_selector_unittest.cc",
    "filters/audio_renderer_algorithm_unittest.cc",
    "filters/audio_renderer_impl_unittest.cc",
    "filters/chunk_demuxer_unittest.cc",
    "filters/decrypting_audio_decoder_unittest.cc",
    "filters/decrypting_demuxer_stream_unittest.cc",
    "filters/decrypting_video_decoder_unittest.cc",
    "filters/fake_demuxer_stream.cc",
    "filters/fake_demuxer_stream.h",
    "filters/fake_demuxer_stream_unittest.cc",
    "filters/fake_video_decoder.cc",
    "filters/fake_video_decoder.h",
    "filters/fake_video_decoder_unittest.cc",
    "filters/file_data_source_unittest.cc",
    "filters/frame_processor_unittest.cc",
    "filters/h264_bit_reader_unittest.cc",
    "filters/h264_parser_unittest.cc",
    "filters/renderer_impl_unittest.cc",
    "filters/skcanvas_video_renderer_unittest.cc",
    "filters/source_buffer_stream_unittest.cc",
    "filters/video_decoder_selector_unittest.cc",
    "filters/video_frame_scheduler_impl_unittest.cc",
    "filters/video_frame_scheduler_unittest.cc",
    "filters/video_frame_stream_unittest.cc",
    "filters/video_renderer_impl_unittest.cc",
    "midi/midi_manager_unittest.cc",
    "midi/midi_manager_usb_unittest.cc",
    "midi/midi_message_queue_unittest.cc",
    "midi/midi_message_util_unittest.cc",
    "midi/usb_midi_descriptor_parser_unittest.cc",
    "midi/usb_midi_input_stream_unittest.cc",
    "midi/usb_midi_output_stream_unittest.cc",
    "video/capture/fake_video_capture_device_unittest.cc",
    "video/capture/video_capture_device_unittest.cc",
    "formats/common/offset_byte_queue_unittest.cc",
    "formats/webm/cluster_builder.cc",
    "formats/webm/cluster_builder.h",
    "formats/webm/tracks_builder.cc",
    "formats/webm/tracks_builder.h",
    "formats/webm/webm_cluster_parser_unittest.cc",
    "formats/webm/webm_content_encodings_client_unittest.cc",
    "formats/webm/webm_parser_unittest.cc",
    "formats/webm/webm_tracks_parser_unittest.cc",
    "formats/webm/webm_webvtt_parser_unittest.cc",
  ]

  deps = [
    ":media",
    ":test_support",
    "//base/allocator",
    "//base/test:test_support",
    "//media/audio:unittests",
    "//media/audio:test_support",
    "//media/base:unittests",
    "//media/base:test_support",
    "//skia",  # Direct dependency required to inherit config.
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/widevine/cdm:version_h",
    "//ui/gfx:test_support",
    "//url",
  ]

  if (is_android) {
    deps += [
      "//media/base/android",
      # TODO(GYP)
      #"//testing/android:native_test_native_code"
    ]
  }

  if (media_use_ffmpeg) {
    sources += [
      "ffmpeg/ffmpeg_common_unittest.cc",
      "filters/audio_decoder_unittest.cc",
      "filters/audio_file_reader_unittest.cc",
      "filters/blocking_url_protocol_unittest.cc",
      "filters/ffmpeg_demuxer_unittest.cc",
      "filters/ffmpeg_glue_unittest.cc",
      "filters/ffmpeg_video_decoder_unittest.cc",
      "filters/in_memory_url_protocol_unittest.cc",
      "filters/pipeline_integration_test.cc",
      "filters/pipeline_integration_test_base.cc",
    ]
  }

  if (cpu_arch != "arm" && is_chromeos && use_x11) {
    sources += [ "filters/h264_bitstream_buffer_unittest.cc" ]
  }

  if (proprietary_codecs) {
    sources += [
      "filters/ffmpeg_aac_bitstream_converter_unittest.cc",
      "filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc",
      "filters/h264_to_annex_b_bitstream_converter_unittest.cc",
      "formats/common/stream_parser_test_base.cc",
      "formats/common/stream_parser_test_base.h",
      "formats/mp2t/es_adapter_video_unittest.cc",
      "formats/mp2t/es_parser_adts_unittest.cc",
      "formats/mp2t/es_parser_h264_unittest.cc",
      "formats/mp2t/es_parser_mpeg1audio_unittest.cc",
      "formats/mp2t/es_parser_test_base.cc",
      "formats/mp2t/es_parser_test_base.h",
      "formats/mp2t/mp2t_stream_parser_unittest.cc",
      "formats/mp2t/timestamp_unroller_unittest.cc",
      "formats/mp4/aac_unittest.cc",
      "formats/mp4/avc_unittest.cc",
      "formats/mp4/box_reader_unittest.cc",
      "formats/mp4/es_descriptor_unittest.cc",
      "formats/mp4/mp4_stream_parser_unittest.cc",
      "formats/mp4/sample_to_group_iterator_unittest.cc",
      "formats/mp4/track_run_iterator_unittest.cc",
      "formats/mpeg/adts_stream_parser_unittest.cc",
      "formats/mpeg/mpeg1_audio_stream_parser_unittest.cc",
    ]
  }

  if (is_win && cpu_arch == "x64") {
    cflags += [
      "/wd4267"  # TODO(wolenetz): Fix size_t to int trunctaion in win64. See
                 # http://crbug.com/171009
    ]
  }

  if (is_mac) {
    sources += [
      "video/capture/mac/video_capture_device_factory_mac_unittest.mm"
    ]
  }

#      include_dirs += [
#        # Needed by media_drm_bridge.cc.
#        target_gen_dir,
#      ],

  configs += [ ":media_config" ]

  if (media_use_ffmpeg) {
    deps += [
      "//third_party/ffmpeg",  # Direct dependency required to inherit config.
    ]
  }
}

test("media_perftests") {
  sources = []
  if (media_use_ffmpeg) {
    sources += [
      "filters/pipeline_integration_perftest.cc",
      "filters/pipeline_integration_test_base.cc",
    ]
  }
  configs += [ ":media_config" ]
  deps = [
    ":media",
    ":shared_memory_support",
    ":test_support",
    "//base/test:test_support",
    "//media/audio:test_support",
    "//media/base:perftests",
    "//media/base:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//testing/perf",
    "//third_party/widevine/cdm:version_h",
    "//ui/gfx:test_support",
  ]
  if (is_android) {
    deps += [ "//ui/gl" ]
  }
  if (media_use_ffmpeg) {
    deps += [
      "//third_party/ffmpeg",  # Direct dependency required to inherit config.
    ]
  }
}

source_set("test_support") {
  testonly = true
  sources = [
    "filters/clockless_video_frame_scheduler.cc",
    "filters/clockless_video_frame_scheduler.h",
    "filters/mock_gpu_video_accelerator_factories.cc",
    "filters/mock_gpu_video_accelerator_factories.h",
    "filters/test_video_frame_scheduler.cc",
    "filters/test_video_frame_scheduler.h",
    "video/mock_video_decode_accelerator.cc",
    "video/mock_video_decode_accelerator.h",
  ]
  deps = [
    ":media",
    ":shared_memory_support",
    "//base",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

# TODO(dalecurtis): How to split this across audio/base directories??
component("shared_memory_support") {
  sources = [
    "audio/audio_parameters.cc",
    "audio/audio_parameters.h",
    "base/audio_bus.cc",
    "base/audio_bus.h",
    "base/channel_layout.cc",
    "base/channel_layout.h",
    "base/limits.h",
    "base/media_export.h",
    "base/vector_math.cc",
    "base/vector_math.h",
  ]
  configs += [ ":media_config" ]
  defines = [ "MEDIA_IMPLEMENTATION" ]
  deps = [ "//base" ]
}

if (media_use_ffmpeg) {
  test("ffmpeg_unittests") {
    sources = [ "ffmpeg/ffmpeg_unittest.cc" ]

    deps = [
       ":media",
       ":test_support",
       "//base",
       "//base:i18n",
       "//base/test:test_support",
       "//testing/gtest",
       "//third_party/ffmpeg",
       "//ui/gfx:test_support",
    ]
  }

  test("ffmpeg_regression_tests") {
    sources = [
      "base/run_all_unittests.cc",
      "ffmpeg/ffmpeg_regression_tests.cc",
      "filters/pipeline_integration_test_base.cc",
    ]
    configs += [ ":media_config" ]
    deps = [
      ":media",
      ":test_support",
      "//base/test:test_support",
      "//media/audio:test_support",
      "//media/base:test_support",
      "//testing/gmock",
      "//testing/gtest",
      "//third_party/ffmpeg",
      "//ui/gfx/geometry",
      "//ui/gfx:test_support",
    ]
  # TODO(ajwong): This was in the original gyp, but it seems silly.
  #        ['os_posix==1 and OS!="mac"', {
  #          'conditions': [
  #            ['use_allocator!="none"', {
  #              'dependencies': [
  #                '../base/allocator/allocator.gyp:allocator',
  #              ],
  #            }],
  #          ],
  #        }],
  }
}

if (use_x11) {
  executable("player_x11") {
    sources = [
      "tools/player_x11/data_source_logger.cc",
      "tools/player_x11/data_source_logger.h",
      "tools/player_x11/gl_video_renderer.cc",
      "tools/player_x11/gl_video_renderer.h",
      "tools/player_x11/player_x11.cc",
      "tools/player_x11/x11_video_renderer.cc",
      "tools/player_x11/x11_video_renderer.h",
    ]
    configs += [
      ":media_config",
      "//build/config/linux:x11",
      "//build/config/linux:xext",
# TODO(ajwong): Why does xext get a separate thing in //build/config/linux:BUILD.gn
    #  "//build/config/linux:xrender",
    ]
    deps = [
      ":media",
      ":shared_memory_support",
      "//base",
      "//ui/gl",
      "//ui/gfx",
      "//ui/gfx/geometry",
    ]
  }
}
