123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 |
- # Copyright 2016 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/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- import("//build/config/ui.gni")
- import("//media/media_options.gni")
- import("//testing/test.gni")
- group("capture") {
- public_deps = [
- ":capture_lib",
- "//media/capture/mojom:image_capture",
- "//media/capture/mojom:image_capture_types",
- "//media/capture/mojom:video_capture",
- "//services/service_manager/public/cpp",
- ]
- }
- component("capture_switches") {
- defines = [ "CAPTURE_IMPLEMENTATION" ]
- sources = [
- "capture_export.h",
- "capture_switches.cc",
- "capture_switches.h",
- ]
- deps = [ "//base" ]
- }
- # Things needed by //media/capture/mojom/video_capture_types.mojom.
- component("capture_base") {
- defines = [ "CAPTURE_IMPLEMENTATION" ]
- sources = [
- "capture_export.h",
- "video/video_capture_device_descriptor.cc",
- "video/video_capture_device_descriptor.h",
- "video/video_capture_device_info.cc",
- "video/video_capture_device_info.h",
- "video/video_capture_feedback.cc",
- "video/video_capture_feedback.h",
- "video_capture_types.cc",
- "video_capture_types.h",
- ]
- deps = [
- "//base",
- "//base:i18n",
- "//media:shared_memory_support",
- "//media/base:video_facing",
- "//ui/gfx",
- ]
- }
- # Target which allows breakout of Android BUILD.gn files.
- source_set("capture_device_specific") {
- visibility = [
- ":capture_lib",
- "//media/capture/content/android",
- "//media/capture/video/android",
- ]
- defines = [ "CAPTURE_IMPLEMENTATION" ]
- sources = [
- "content/animated_content_sampler.cc",
- "content/animated_content_sampler.h",
- "content/capture_resolution_chooser.cc",
- "content/capture_resolution_chooser.h",
- "content/screen_enumerator.h",
- "content/smooth_event_sampler.cc",
- "content/smooth_event_sampler.h",
- "content/video_capture_oracle.cc",
- "content/video_capture_oracle.h",
- "video/blob_utils.cc",
- "video/blob_utils.h",
- "video/fake_video_capture_device.cc",
- "video/fake_video_capture_device.h",
- "video/fake_video_capture_device_factory.cc",
- "video/fake_video_capture_device_factory.h",
- "video/file_video_capture_device.cc",
- "video/file_video_capture_device.h",
- "video/file_video_capture_device_factory.cc",
- "video/file_video_capture_device_factory.h",
- "video/gpu_memory_buffer_utils.cc",
- "video/gpu_memory_buffer_utils.h",
- "video/video_capture_buffer_handle.cc",
- "video/video_capture_buffer_handle.h",
- "video/video_capture_device.cc",
- "video/video_capture_device.h",
- "video/video_capture_device_factory.cc",
- "video/video_capture_device_factory.h",
- ]
- public_deps = [ ":capture_base" ]
- deps = [
- "//base",
- "//base:i18n",
- "//build:chromeos_buildflags",
- "//gpu/command_buffer/client",
- "//gpu/ipc/common:common",
- "//media",
- "//media/capture/mojom:image_capture",
- "//media/capture/mojom:image_capture_types",
- "//media/capture/mojom:video_capture",
- "//media/mojo/mojom",
- "//media/parsers",
- "//skia",
- "//third_party/libyuv",
- "//ui/gfx",
- ]
- if (is_win) {
- deps += [ "//media/base/win:media_foundation_util" ]
- }
- }
- component("capture_lib") {
- defines = [ "CAPTURE_IMPLEMENTATION" ]
- sources = [
- "video/create_video_capture_device_factory.cc",
- "video/create_video_capture_device_factory.h",
- "video/scoped_buffer_pool_reservation.h",
- "video/shared_memory_buffer_tracker.cc",
- "video/shared_memory_buffer_tracker.h",
- "video/video_capture_buffer_pool.h",
- "video/video_capture_buffer_pool_impl.cc",
- "video/video_capture_buffer_pool_impl.h",
- "video/video_capture_buffer_pool_util.cc",
- "video/video_capture_buffer_pool_util.h",
- "video/video_capture_buffer_tracker.cc",
- "video/video_capture_buffer_tracker.h",
- "video/video_capture_buffer_tracker_factory.h",
- "video/video_capture_buffer_tracker_factory_impl.cc",
- "video/video_capture_buffer_tracker_factory_impl.h",
- "video/video_capture_device_client.cc",
- "video/video_capture_device_client.h",
- "video/video_capture_metrics.cc",
- "video/video_capture_metrics.h",
- "video/video_capture_system.h",
- "video/video_capture_system_impl.cc",
- "video/video_capture_system_impl.h",
- "video/video_frame_receiver.cc",
- "video/video_frame_receiver.h",
- "video/video_frame_receiver_on_task_runner.cc",
- "video/video_frame_receiver_on_task_runner.h",
- ]
- public_deps = [
- ":capture_base",
- ":capture_device_specific",
- ":capture_switches",
- ]
- deps = [
- "//base",
- "//base:i18n",
- "//build:chromeos_buildflags",
- "//media",
- "//media/capture/mojom:image_capture",
- "//media/capture/mojom:image_capture_types",
- "//media/capture/mojom:video_capture",
- "//media/mojo/mojom",
- "//services/service_manager/public/cpp",
- "//third_party/libyuv",
- "//ui/display",
- "//ui/gfx",
- ]
- if (is_android) {
- public_deps += [
- "content/android",
- "video/android",
- ]
- deps += [
- "content/android:screen_capture_jni_headers",
- "video/android:capture_jni_headers",
- ]
- }
- if (is_mac) {
- sources += [
- "video/mac/gpu_memory_buffer_tracker_mac.cc",
- "video/mac/gpu_memory_buffer_tracker_mac.h",
- "video/mac/pixel_buffer_pool_mac.cc",
- "video/mac/pixel_buffer_pool_mac.h",
- "video/mac/pixel_buffer_transferer_mac.cc",
- "video/mac/pixel_buffer_transferer_mac.h",
- "video/mac/sample_buffer_transformer_mac.cc",
- "video/mac/sample_buffer_transformer_mac.h",
- "video/mac/video_capture_device_avfoundation_mac.h",
- "video/mac/video_capture_device_avfoundation_mac.mm",
- "video/mac/video_capture_device_avfoundation_utils_mac.h",
- "video/mac/video_capture_device_avfoundation_utils_mac.mm",
- "video/mac/video_capture_device_decklink_mac.h",
- "video/mac/video_capture_device_decklink_mac.mm",
- "video/mac/video_capture_device_factory_mac.h",
- "video/mac/video_capture_device_factory_mac.mm",
- "video/mac/video_capture_device_mac.h",
- "video/mac/video_capture_device_mac.mm",
- "video/mac/video_capture_metrics_mac.h",
- "video/mac/video_capture_metrics_mac.mm",
- ]
- deps += [
- "//components/crash/core/common:crash_key",
- "//services/video_capture/public/uma",
- "//third_party/decklink",
- ]
- frameworks = [
- "AVFoundation.framework",
- "CoreFoundation.framework",
- "CoreGraphics.framework",
- "CoreMedia.framework",
- "CoreVideo.framework",
- "Foundation.framework",
- "IOSurface.framework",
- "VideoToolbox.framework",
- ]
- }
- if (is_win) {
- sources += [
- "video/win/capability_list_win.cc",
- "video/win/capability_list_win.h",
- "video/win/filter_base_win.cc",
- "video/win/filter_base_win.h",
- "video/win/gpu_memory_buffer_tracker.cc",
- "video/win/gpu_memory_buffer_tracker.h",
- "video/win/metrics.cc",
- "video/win/metrics.h",
- "video/win/pin_base_win.cc",
- "video/win/pin_base_win.h",
- "video/win/sink_filter_observer_win.h",
- "video/win/sink_filter_win.cc",
- "video/win/sink_filter_win.h",
- "video/win/sink_input_pin_win.cc",
- "video/win/sink_input_pin_win.h",
- "video/win/video_capture_buffer_tracker_factory_win.cc",
- "video/win/video_capture_buffer_tracker_factory_win.h",
- "video/win/video_capture_device_factory_win.cc",
- "video/win/video_capture_device_factory_win.h",
- "video/win/video_capture_device_mf_win.cc",
- "video/win/video_capture_device_mf_win.h",
- "video/win/video_capture_device_utils_win.cc",
- "video/win/video_capture_device_utils_win.h",
- "video/win/video_capture_device_win.cc",
- "video/win/video_capture_device_win.h",
- ]
- deps += [ "//media/base/win:media_foundation_util" ]
- libs = [
- "mf.lib",
- "mfplat.lib",
- "mfreadwrite.lib",
- "mfuuid.lib",
- ]
- ldflags = [
- "/DELAYLOAD:mf.dll",
- "/DELAYLOAD:mfplat.dll",
- "/DELAYLOAD:mfreadwrite.dll",
- ]
- }
- if (is_linux || is_chromeos) {
- sources += [
- "video/linux/scoped_v4l2_device_fd.cc",
- "video/linux/scoped_v4l2_device_fd.h",
- "video/linux/v4l2_capture_delegate.cc",
- "video/linux/v4l2_capture_delegate.h",
- "video/linux/v4l2_capture_device.h",
- "video/linux/v4l2_capture_device_impl.cc",
- "video/linux/v4l2_capture_device_impl.h",
- "video/linux/video_capture_device_factory_linux.cc",
- "video/linux/video_capture_device_factory_linux.h",
- "video/linux/video_capture_device_linux.cc",
- "video/linux/video_capture_device_linux.h",
- ]
- }
- if (is_chromeos_ash) {
- sources += [
- "video/chromeos/camera_3a_controller.cc",
- "video/chromeos/camera_3a_controller.h",
- "video/chromeos/camera_app_device_bridge_impl.cc",
- "video/chromeos/camera_app_device_bridge_impl.h",
- "video/chromeos/camera_app_device_impl.cc",
- "video/chromeos/camera_app_device_impl.h",
- "video/chromeos/camera_app_device_provider_impl.cc",
- "video/chromeos/camera_app_device_provider_impl.h",
- "video/chromeos/camera_buffer_factory.cc",
- "video/chromeos/camera_buffer_factory.h",
- "video/chromeos/camera_device_context.cc",
- "video/chromeos/camera_device_context.h",
- "video/chromeos/camera_device_delegate.cc",
- "video/chromeos/camera_device_delegate.h",
- "video/chromeos/camera_hal_delegate.cc",
- "video/chromeos/camera_hal_delegate.h",
- "video/chromeos/camera_hal_dispatcher_impl.cc",
- "video/chromeos/camera_hal_dispatcher_impl.h",
- "video/chromeos/camera_metadata_utils.cc",
- "video/chromeos/camera_metadata_utils.h",
- "video/chromeos/camera_trace_utils.cc",
- "video/chromeos/camera_trace_utils.h",
- "video/chromeos/capture_metadata_dispatcher.h",
- "video/chromeos/display_rotation_observer.cc",
- "video/chromeos/display_rotation_observer.h",
- "video/chromeos/gpu_memory_buffer_tracker.cc",
- "video/chromeos/gpu_memory_buffer_tracker.h",
- "video/chromeos/pixel_format_utils.cc",
- "video/chromeos/pixel_format_utils.h",
- "video/chromeos/request_builder.cc",
- "video/chromeos/request_builder.h",
- "video/chromeos/request_manager.cc",
- "video/chromeos/request_manager.h",
- "video/chromeos/scoped_video_capture_jpeg_decoder.cc",
- "video/chromeos/scoped_video_capture_jpeg_decoder.h",
- "video/chromeos/stream_buffer_manager.cc",
- "video/chromeos/stream_buffer_manager.h",
- "video/chromeos/token_manager.cc",
- "video/chromeos/token_manager.h",
- "video/chromeos/vendor_tag_ops_delegate.cc",
- "video/chromeos/vendor_tag_ops_delegate.h",
- "video/chromeos/video_capture_device_chromeos_delegate.cc",
- "video/chromeos/video_capture_device_chromeos_delegate.h",
- "video/chromeos/video_capture_device_chromeos_halv3.cc",
- "video/chromeos/video_capture_device_chromeos_halv3.h",
- "video/chromeos/video_capture_device_factory_chromeos.cc",
- "video/chromeos/video_capture_device_factory_chromeos.h",
- "video/chromeos/video_capture_features_chromeos.cc",
- "video/chromeos/video_capture_features_chromeos.h",
- "video/chromeos/video_capture_jpeg_decoder.h",
- "video/chromeos/video_capture_jpeg_decoder_impl.cc",
- "video/chromeos/video_capture_jpeg_decoder_impl.h",
- ]
- public_deps += [
- "//ash/webui/camera_app_ui:document_scanning",
- "//media/capture/video/chromeos/public",
- ]
- deps += [
- "//ash/constants",
- "//build/config/linux/libdrm",
- "//chromeos/components/sensors:sensors",
- "//chromeos/dbus/power",
- "//components/chromeos_camera:mojo_mjpeg_decode_accelerator",
- "//components/chromeos_camera/common",
- "//components/device_event_log",
- "//gpu/ipc/common:common",
- "//media/capture/video/chromeos/mojom:cros_camera",
- "//third_party/libsync",
- ]
- }
- if (is_fuchsia) {
- sources += [
- "video/fuchsia/video_capture_device_factory_fuchsia.cc",
- "video/fuchsia/video_capture_device_factory_fuchsia.h",
- "video/fuchsia/video_capture_device_fuchsia.cc",
- "video/fuchsia/video_capture_device_fuchsia.h",
- ]
- deps += [
- "//media/fuchsia/common",
- "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.camera3",
- "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
- "//third_party/libyuv",
- ]
- }
- }
- source_set("test_support") {
- testonly = true
- sources = [
- "video/mock_device.cc",
- "video/mock_device.h",
- "video/mock_device_factory.cc",
- "video/mock_device_factory.h",
- "video/mock_gpu_memory_buffer_manager.cc",
- "video/mock_gpu_memory_buffer_manager.h",
- "video/mock_video_capture_device_client.cc",
- "video/mock_video_capture_device_client.h",
- "video/mock_video_frame_receiver.cc",
- "video/mock_video_frame_receiver.h",
- ]
- deps = [
- ":capture_lib",
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//gpu/command_buffer/client",
- "//gpu/command_buffer/common:common",
- "//media:test_support",
- "//media/capture/mojom:image_capture",
- "//media/capture/mojom:image_capture_types",
- "//testing/gmock",
- "//ui/gfx:test_support",
- ]
- if (is_linux || is_chromeos_lacros) {
- sources += [
- "video/linux/fake_device_provider.cc",
- "video/linux/fake_device_provider.h",
- "video/linux/fake_v4l2_impl.cc",
- "video/linux/fake_v4l2_impl.h",
- ]
- }
- if (is_chromeos_ash) {
- sources += [
- "video/chromeos/mock_camera_module.cc",
- "video/chromeos/mock_camera_module.h",
- "video/chromeos/mock_vendor_tag_ops.cc",
- "video/chromeos/mock_vendor_tag_ops.h",
- "video/chromeos/mock_video_capture_client.cc",
- "video/chromeos/mock_video_capture_client.h",
- ]
- deps += [
- "//media/capture/video/chromeos/mojom:cros_camera",
- "//media/capture/video/chromeos/public",
- ]
- }
- testonly = true
- }
- test("capture_unittests") {
- use_xvfb = use_xvfb_in_this_config
- sources = [
- "content/animated_content_sampler_unittest.cc",
- "content/capture_resolution_chooser_unittest.cc",
- "content/smooth_event_sampler_unittest.cc",
- "content/video_capture_oracle_unittest.cc",
- "run_all_unittests.cc",
- "video/fake_video_capture_device_unittest.cc",
- "video/file_video_capture_device_unittest.cc",
- "video/video_capture_device_client_unittest.cc",
- "video/video_capture_device_unittest.cc",
- "video/video_capture_metrics_unittest.cc",
- "video_capture_types_unittest.cc",
- ]
- data = [ "//media/test/data/bear.mjpeg" ]
- deps = [
- ":capture",
- ":test_support",
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//gpu/command_buffer/client",
- "//media:test_support",
- "//media/capture/mojom:image_capture",
- "//media/capture/mojom:image_capture_types",
- "//mojo/core/embedder",
- "//testing/gmock",
- "//testing/gtest",
- "//third_party/libyuv:libyuv",
- "//ui/gfx:test_support",
- ]
- if (is_linux || is_chromeos_lacros) {
- sources += [
- "video/linux/v4l2_capture_delegate_unittest.cc",
- "video/linux/video_capture_device_factory_linux_unittest.cc",
- ]
- }
- if (is_android) {
- deps += [
- "//media/capture/video/android",
- "//media/capture/video/android:capture_java",
- ]
- }
- if (is_fuchsia) {
- deps += [
- "//media/fuchsia/camera:test_support",
- "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.camera3",
- "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.sysmem",
- "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
- ]
- sources += [
- "video/fuchsia/video_capture_device_factory_fuchsia_test.cc",
- "video/fuchsia/video_capture_device_fuchsia_test.cc",
- ]
- use_cfv1 = false
- additional_manifest_fragments =
- [ "//media/fuchsia/test_support.shard.test-cml" ]
- }
- if (is_mac) {
- sources += [
- "video/mac/pixel_buffer_pool_mac_unittest.mm",
- "video/mac/pixel_buffer_transferer_mac_unittest.mm",
- "video/mac/sample_buffer_transformer_mac_unittest.mm",
- "video/mac/test/fake_av_capture_device_format.h",
- "video/mac/test/fake_av_capture_device_format.mm",
- "video/mac/test/mock_video_capture_device_avfoundation_frame_receiver_mac.h",
- "video/mac/test/mock_video_capture_device_avfoundation_frame_receiver_mac.mm",
- "video/mac/test/pixel_buffer_test_utils_mac.cc",
- "video/mac/test/pixel_buffer_test_utils_mac.h",
- "video/mac/test/video_capture_test_utils_mac.h",
- "video/mac/test/video_capture_test_utils_mac.mm",
- "video/mac/video_capture_device_avfoundation_mac_unittest.mm",
- "video/mac/video_capture_device_factory_mac_unittest.mm",
- "video/mac/video_capture_device_mac_unittest.mm",
- "video/mac/video_capture_metrics_mac_unittest.mm",
- ]
- frameworks = [
- "AVFoundation.framework",
- "CoreMedia.framework",
- "CoreVideo.framework",
- "IOSurface.framework",
- ]
- deps += [ "//third_party/ocmock" ]
- }
- if (is_win) {
- sources += [
- "video/win/d3d_capture_test_utils.cc",
- "video/win/d3d_capture_test_utils.h",
- "video/win/gpu_memory_buffer_tracker_unittest.cc",
- "video/win/video_capture_device_factory_win_unittest.cc",
- "video/win/video_capture_device_mf_win_unittest.cc",
- ]
- libs = [
- "mf.lib",
- "mfplat.lib",
- "mfreadwrite.lib",
- "mfuuid.lib",
- "dxguid.lib",
- ]
- ldflags = [
- "/DELAYLOAD:mf.dll",
- "/DELAYLOAD:mfplat.dll",
- "/DELAYLOAD:mfreadwrite.dll",
- ]
- deps += [ "//media/base/win:media_foundation_util" ]
- }
- if (is_chromeos) {
- deps += [ "//chromeos/dbus/power" ]
- }
- # TODO(https://crbug.com/1043007): use is_linux.
- if (is_chromeos_ash) {
- deps += [ "//media/gpu/test:local_gpu_memory_buffer_manager" ]
- }
- if (is_chromeos_ash) {
- sources += [
- "video/chromeos/camera_3a_controller_unittest.cc",
- "video/chromeos/camera_device_delegate_unittest.cc",
- "video/chromeos/camera_hal_delegate_unittest.cc",
- "video/chromeos/camera_hal_dispatcher_impl_unittest.cc",
- "video/chromeos/request_manager_unittest.cc",
- "video/chromeos/token_manager_unittest.cc",
- ]
- deps += [
- "//build/config/linux/libdrm",
- "//media/capture/video/chromeos/mojom:cros_camera",
- "//media/capture/video/chromeos/public",
- "//mojo/core/embedder",
- "//third_party/libsync",
- "//third_party/minigbm",
- ]
- }
- }
|