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

assert(is_fuchsia)

source_set("video") {
  visibility = [
    ":unittests",
    "//content/renderer/*",
    "//media/gpu/*",
    "//third_party/blink/renderer/modules/webcodecs/*",
  ]
  public = [
    "fuchsia_decoder_factory.h",
    "fuchsia_video_decoder.h",
    "fuchsia_video_encode_accelerator.h",
  ]
  sources = [
    "fuchsia_decoder_factory.cc",
    "fuchsia_video_decoder.cc",
    "fuchsia_video_encode_accelerator.cc",
  ]
  public_deps = [
    "//base",
    "//media",
    "//media/fuchsia/common",
    "//media/mojo/mojom",
    "//mojo/public/cpp/bindings",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.media:fuchsia.media_hlcpp",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec_hlcpp",
    "//ui/gfx",
  ]
  deps = [
    "//components/viz/common",
    "//gpu/command_buffer/client",
    "//gpu/command_buffer/common",
    "//gpu/ipc/common",
    "//third_party/blink/public/common",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec_hlcpp",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    "//third_party/libyuv:libyuv",
    "//ui/ozone",
  ]
}

source_set("unittests") {
  testonly = true
  sources = [ "fuchsia_video_decoder_unittest.cc" ]
  deps = [
    ":video",
    "//base/test:test_support",
    "//components/viz/common",
    "//components/viz/test:test_support",
    "//gpu/command_buffer/client",
    "//gpu/config",
    "//media:test_support",
    "//media/mojo/mojom",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public/common",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec_hlcpp",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
  ]
}
