blob: a6deee07cec1944b5c59b9f445108f19a8ef729e [file]
# Copyright 2025 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
load("@rules_cc//cc:defs.bzl", "cc_library")
cc_library(
name = "fourcc",
hdrs = [
"include/lib/media/codec_impl/fourcc.h",
],
includes = [
"include",
],
# TODO(b/525150193): Stop doing #include <lib/media/codec_impl/fourcc.h>, to
# allow using bazel2gn. Instead clients will include
# src/media/lib/codec_impl/fourcc.h, for example.
strip_include_prefix = "include",
visibility = ["//visibility:public"],
)
_CODEC_IMPL_INTERNAL_SRCS = [
# cc files
"codec_adapter.cc",
"codec_adapter_events.cc",
"codec_admission_control.cc",
"codec_buffer.cc",
"codec_diagnostics.cc",
"codec_frame.cc",
"codec_impl.cc",
"codec_input_item.cc",
"codec_metrics.cc",
"codec_packet.cc",
"codec_vmo_range.cc",
"decryptor_adapter.cc",
"fake_map_range.cc",
"include/lib/media/codec_impl/fake_map_range.h",
"include/lib/media/codec_impl/log.h",
"include/lib/media/codec_impl/codec_port.h",
"include/lib/media/codec_impl/codec_frame.h",
"utils.h",
"dispatcher.h",
"log.cc",
]
_CODEC_IMPL_INTERNAL_HDRS = [
"include/lib/media/codec_impl/codec_adapter.h",
"include/lib/media/codec_impl/codec_adapter_events.h",
"include/lib/media/codec_impl/codec_admission_control.h",
"include/lib/media/codec_impl/codec_buffer.h",
"include/lib/media/codec_impl/codec_diagnostics.h",
"include/lib/media/codec_impl/codec_impl.h",
"include/lib/media/codec_impl/codec_input_item.h",
"include/lib/media/codec_impl/codec_metrics.h",
"include/lib/media/codec_impl/codec_packet.h",
"include/lib/media/codec_impl/codec_vmo_range.h",
"include/lib/media/codec_impl/decryptor_adapter.h",
]
_CODEC_IMPL_INTERNAL_IMPLEMENTATION_DEPS = [
"@fuchsia_sdk//pkg/memory_barriers",
"@fuchsia_sdk//pkg/sys_cpp",
"@fuchsia_sdk//pkg/vfs_cpp",
"@fuchsia_sdk//bind/fuchsia.sysmem.heap:fuchsia.sysmem.heap_cc",
# Only for <ddk/debug.h>'s severity levels.
"@fuchsia_sdk//pkg/driver_logging_cpp",
"@fuchsia_sdk//pkg/sync_cpp",
]
_CODEC_IMPL_INTERNAL_DEPS = [
":fourcc",
"//src/lib/metrics_buffer",
"//src/media/lib/blocking_mpsc_queue",
"//src/media/lib/metrics:metrics_cc",
"//zircon/system/ulib/closure-queue",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/sysmem-version",
"//zircon/system/ulib/thread-safe-deleter",
"//zircon/third_party/ulib/safemath",
"@fuchsia_sdk//fidl/fuchsia.media.drm:fuchsia.media.drm_hlcpp",
"@fuchsia_sdk//fidl/fuchsia.media:fuchsia.media_cpp",
"@fuchsia_sdk//fidl/fuchsia.media:fuchsia.media_hlcpp",
"@fuchsia_sdk//fidl/fuchsia.mediacodec:fuchsia.mediacodec_hlcpp",
"@fuchsia_sdk//fidl/fuchsia.sysmem2:fuchsia.sysmem2_cpp",
"@fuchsia_sdk//pkg/async-cpp",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/driver_logging_cpp",
"@fuchsia_sdk//pkg/fit",
"@fuchsia_sdk//pkg/inspect",
"@fuchsia_sdk//pkg/inspect_component_cpp",
"@fuchsia_sdk//pkg/sync_cpp",
"@fuchsia_sdk//pkg/syslog_cpp",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-vthread",
]
cc_library(
name = "codec_impl_internal_no_dynamic",
srcs = _CODEC_IMPL_INTERNAL_SRCS,
hdrs = _CODEC_IMPL_INTERNAL_HDRS,
defines = ["CODEC_IMPL_INTERNAL_ENABLE_DYNAMIC_BUFFERS=0"],
implementation_deps = _CODEC_IMPL_INTERNAL_IMPLEMENTATION_DEPS,
includes = [
"include",
],
visibility = ["//src/media/lib/codec_impl:__subpackages__"],
deps = _CODEC_IMPL_INTERNAL_DEPS,
)
cc_library(
name = "codec_impl_internal_dynamic",
srcs = _CODEC_IMPL_INTERNAL_SRCS,
hdrs = _CODEC_IMPL_INTERNAL_HDRS,
defines = ["CODEC_IMPL_INTERNAL_ENABLE_DYNAMIC_BUFFERS=1"],
implementation_deps = _CODEC_IMPL_INTERNAL_IMPLEMENTATION_DEPS,
includes = [
"include",
],
visibility = ["//src/media/lib/codec_impl:__subpackages__"],
deps = _CODEC_IMPL_INTERNAL_DEPS,
)
cc_library(
name = "codec_impl",
srcs = [
"dispatcher_via_async_loop.cc",
"log_via_fprintf.cc",
],
visibility = ["//visibility:public"],
deps = [
":codec_impl_internal_no_dynamic",
"//src/lib/fxl",
],
)
cc_library(
name = "codec_impl_syslog",
srcs = [
"dispatcher_via_async_loop.cc",
"log_via_syslog.cc",
],
visibility = ["//visibility:public"],
deps = [
":codec_impl_internal_no_dynamic",
"//src/lib/fxl",
"@fuchsia_sdk//pkg/syslog_cpp",
],
)
cc_library(
name = "codec_impl_dfv2",
srcs = [
"dispatcher_via_fdf_dispatcher.cc",
"log_via_fdf.cc",
],
visibility = ["//visibility:public"],
deps = [
":codec_impl_internal_dynamic",
"@fuchsia_sdk//pkg/driver_logging_cpp",
],
)