chromium/media/renderers/BUILD.gn

# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("renderers") {
  # Do not expand the visibility here without double-checking with OWNERS, this
  # is a roll-up target which is part of the //media component. Most other DEPs
  # should be using //media and not directly DEP this roll-up target.
  visibility = [ "//media" ]

  sources = [
    "audio_renderer_impl.cc",
    "audio_renderer_impl.h",
    "decrypting_renderer.cc",
    "decrypting_renderer.h",
    "decrypting_renderer_factory.cc",
    "decrypting_renderer_factory.h",
    "default_decoder_factory.cc",
    "default_decoder_factory.h",
    "paint_canvas_video_renderer.cc",
    "paint_canvas_video_renderer.h",
    "remote_playback_client_wrapper.h",
    "renderer_impl.cc",
    "renderer_impl.h",
    "renderer_impl_factory.cc",
    "renderer_impl_factory.h",
    "resource_sync_token_client.cc",
    "resource_sync_token_client.h",
    "video_frame_rgba_to_yuva_converter.cc",
    "video_frame_rgba_to_yuva_converter.h",
    "video_frame_yuv_converter.cc",
    "video_frame_yuv_converter.h",
    "video_frame_yuv_mailboxes_holder.cc",
    "video_frame_yuv_mailboxes_holder.h",
    "video_overlay_factory.cc",
    "video_overlay_factory.h",
    "video_renderer_impl.cc",
    "video_renderer_impl.h",
    "video_resource_updater.cc",
    "video_resource_updater.h",
  ]

  deps = [
    "//base",
    "//cc/base",  # For MathUtil.
    "//cc/paint",
    "//components/viz/client",
    "//components/viz/common",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/client:interface_base",
    "//gpu/command_buffer/client:raster_interface",
    "//gpu/command_buffer/common",
    "//gpu/ipc/client",
    "//media:media_buildflags",
    "//media/audio",
    "//media/base",
    "//media/filters",
    "//media/video",
    "//third_party/libyuv",
    "//ui/gfx:memory_buffer",
    "//ui/gfx/geometry",
    "//ui/gfx/geometry:geometry_skia",
    "//ui/gl",
  ]

  if (is_win) {
    sources += [
      "win/media_engine_extension.cc",
      "win/media_engine_extension.h",
      "win/media_engine_notify_impl.cc",
      "win/media_engine_notify_impl.h",
      "win/media_foundation_audio_stream.cc",
      "win/media_foundation_audio_stream.h",
      "win/media_foundation_protection_manager.cc",
      "win/media_foundation_protection_manager.h",
      "win/media_foundation_renderer.cc",
      "win/media_foundation_renderer.h",
      "win/media_foundation_renderer_extension.h",
      "win/media_foundation_rendering_mode.cc",
      "win/media_foundation_rendering_mode.h",
      "win/media_foundation_source_wrapper.cc",
      "win/media_foundation_source_wrapper.h",
      "win/media_foundation_stream_wrapper.cc",
      "win/media_foundation_stream_wrapper.h",
      "win/media_foundation_texture_pool.cc",
      "win/media_foundation_texture_pool.h",
      "win/media_foundation_video_stream.cc",
      "win/media_foundation_video_stream.h",
    ]

    deps += [ "//media/base/win:media_foundation_util" ]

    # media_foundation_renderer uses Windows D3D and Media Foundation APIs.
    libs = [
      "d3d11.lib",
      "mfplat.lib",
      "dxgi.lib",
    ]
  }

  configs += [ "//media:subcomponent_config" ]
}

# Note: This is a roll-up only target; do not expand the visibility. DEPS should
# depend on the //media:test_support target instead.
static_library("test_support") {
  visibility = [ "//media:test_support" ]
  testonly = true
  sources = [
    "shared_image_video_frame_test_utils.cc",
    "shared_image_video_frame_test_utils.h",
  ]
  configs += [ "//media:media_config" ]
  deps = [
    "//base",
    "//components/viz/common",
    "//gpu:test_support",
    "//gpu/command_buffer/client:raster_interface",
    "//gpu/command_buffer/common",
    "//media/base:test_support",
    "//ui/gfx",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "audio_renderer_impl_unittest.cc",
    "decrypting_renderer_unittest.cc",
    "paint_canvas_video_renderer_unittest.cc",
    "renderer_impl_unittest.cc",
    "resource_sync_token_client_unittest.cc",
    "video_renderer_impl_unittest.cc",
    "video_resource_updater_unittest.cc",
  ]
  configs += [ "//media:media_config" ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//cc/paint",
    "//components/viz/client",
    "//components/viz/test:test_support",
    "//gpu:test_support",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/common",
    "//media:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/libyuv",
    "//ui/gfx",
    "//ui/gl",
    "//ui/gl:test_support",
  ]

  if (is_win) {
    sources += [
      "win/media_foundation_renderer_integration_test.cc",
      "win/media_foundation_renderer_unittest.cc",
      "win/media_foundation_texture_pool_unittest.cc",
    ]
    deps += [ "//media/test:pipeline_integration_test_base" ]
    libs = [
      "mfuuid.lib",  # For MFMediaType_Video etc
    ]
  }
}