| # 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", |
| ], |
| ) |