1 # Copyright 2014 The Chromium Authors
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//build/config/android/config.gni")
6 import("//build/config/arm.gni")
7 import("//build/config/features.gni")
8 import("//build/config/linux/pkg_config.gni")
9 import("//build/config/ozone.gni")
10 import("//build/config/ui.gni")
11 import("//media/media_options.gni")
12 import("//testing/libfuzzer/fuzzer_test.gni")
15 import("//build/config/android/rules.gni")
19 # Do not expand the visibility here without double-checking with OWNERS, this
20 # is a roll-up target which is part of the //media component. Most other DEPs
21 # should be using //media and not directly DEP this roll-up target.
22 visibility = media_subcomponent_deps
23 visibility += [ "//media" ]
25 if (!enable_library_cdms) {
26 # cdm_type_conversion is not part of media_subcomponent_deps.
27 visibility += [ "//media/cdm:cdm_type_conversion" ]
30 # TODO(dalecurtis): Replace this with empty targets on non-mac so
31 # we can just include //media/base/mac in media_subcomponent_deps.
33 visibility += [ "//media/base/mac" ]
38 [ "//gpu/command_buffer/service:android_texture_owner_unittests" ]
42 "android_overlay_config.cc",
43 "android_overlay_config.h",
44 "android_overlay_mojo_factory.h",
45 "async_destroy_video_decoder.h",
46 "async_destroy_video_encoder.h",
47 "audio_block_fifo.cc",
51 "audio_buffer_converter.cc",
52 "audio_buffer_converter.h",
53 "audio_buffer_queue.cc",
54 "audio_buffer_queue.h",
55 "audio_capturer_source.h",
62 "audio_decoder_config.cc",
63 "audio_decoder_config.h",
64 "audio_discard_helper.cc",
65 "audio_discard_helper.h",
72 "audio_power_monitor.cc",
73 "audio_power_monitor.h",
74 "audio_processing.cc",
76 "audio_processor_controls.h",
83 "audio_renderer_mixer.cc",
84 "audio_renderer_mixer.h",
85 "audio_renderer_mixer_input.cc",
86 "audio_renderer_mixer_input.h",
87 "audio_renderer_mixer_pool.h",
88 "audio_renderer_sink.h",
91 "audio_timestamp_helper.cc",
92 "audio_timestamp_helper.h",
93 "bind_to_current_loop.h",
100 "bitstream_buffer.cc",
101 "bitstream_buffer.h",
102 "buffering_state.cc",
107 "callback_registry.h",
108 "cdm_callback_promise.cc",
109 "cdm_callback_promise.h",
116 "cdm_initialized_promise.cc",
117 "cdm_initialized_promise.h",
118 "cdm_key_information.cc",
119 "cdm_key_information.h",
122 "cdm_promise_adapter.cc",
123 "cdm_promise_adapter.h",
124 "cdm_session_tracker.cc",
125 "cdm_session_tracker.h",
128 "channel_mixing_matrix.cc",
129 "channel_mixing_matrix.h",
130 "color_plane_layout.cc",
131 "color_plane_layout.h",
132 "container_names.cc",
134 "content_decryption_module.cc",
135 "content_decryption_module.h",
136 "converting_audio_fifo.cc",
137 "converting_audio_fifo.h",
147 "decoder_buffer_queue.cc",
148 "decoder_buffer_queue.h",
149 "decoder_factory.cc",
159 "demuxer_memory_limit.h",
166 "encryption_pattern.cc",
167 "encryption_pattern.h",
168 "encryption_scheme.cc",
169 "encryption_scheme.h",
170 "fake_audio_worker.cc",
171 "fake_audio_worker.h",
172 "feedback_signal_accumulator.h",
173 "flinging_controller.h",
176 "frame_rate_estimator.cc",
177 "frame_rate_estimator.h",
178 "key_system_info.cc",
180 "key_system_names.cc",
181 "key_system_names.h",
184 "localized_strings.cc",
185 "localized_strings.h",
186 "logging_override_if_enabled.h",
187 "loopback_audio_converter.cc",
188 "loopback_audio_converter.h",
193 "media_content_type.cc",
194 "media_content_type.h",
195 "media_controller.h",
199 "media_log_events.cc",
200 "media_log_events.h",
201 "media_log_message_levels.cc",
202 "media_log_message_levels.h",
203 "media_log_properties.cc",
204 "media_log_properties.h",
205 "media_log_record.h",
206 "media_log_type_enforcement.h",
209 "media_permission.cc",
210 "media_permission.h",
211 "media_player_logging_id.cc",
212 "media_player_logging_id.h",
215 "media_serializers.h",
216 "media_serializers_base.h",
219 "media_status_observer.h",
228 "media_url_demuxer.cc",
229 "media_url_demuxer.h",
230 "media_url_params.cc",
231 "media_url_params.h",
234 "memory_dump_provider_proxy.cc",
235 "memory_dump_provider_proxy.h",
238 "mime_util_internal.cc",
239 "mime_util_internal.h",
242 "multi_channel_resampler.cc",
243 "multi_channel_resampler.h",
244 "null_video_sink.cc",
246 "offloading_audio_encoder.cc",
247 "offloading_audio_encoder.h",
248 "offloading_video_encoder.cc",
249 "offloading_video_encoder.h",
250 "output_device_info.cc",
251 "output_device_info.h",
257 "pipeline_metadata.cc",
258 "pipeline_metadata.h",
259 "pipeline_status.cc",
261 "provision_fetcher.h",
264 "reentrancy_checker.cc",
265 "reentrancy_checker.h",
268 "renderer_client.cc",
270 "renderer_factory.cc",
271 "renderer_factory.h",
272 "renderer_factory_selector.cc",
273 "renderer_factory_selector.h",
274 "routing_token_callback.h",
277 "scoped_async_trace.cc",
278 "scoped_async_trace.h",
279 "seekable_buffer.cc",
283 "silent_sink_suspender.cc",
284 "silent_sink_suspender.h",
285 "simple_sync_token_client.cc",
286 "simple_sync_token_client.h",
287 "simple_watch_timer.cc",
288 "simple_watch_timer.h",
295 "stream_parser_buffer.cc",
296 "stream_parser_buffer.h",
297 "subsample_entry.cc",
299 "supported_types.cc",
301 "supported_video_decoder_config.cc",
302 "supported_video_decoder_config.h",
303 "svc_scalability_mode.cc",
304 "svc_scalability_mode.h",
312 "text_track_config.cc",
313 "text_track_config.h",
314 "time_delta_interpolator.cc",
315 "time_delta_interpolator.h",
317 "timestamp_constants.h",
320 "use_after_free_checker.h",
321 "user_input_monitor.cc",
322 "user_input_monitor.h",
323 "video_aspect_ratio.cc",
324 "video_aspect_ratio.h",
325 "video_bitrate_allocation.cc",
326 "video_bitrate_allocation.h",
329 "video_color_space.cc",
330 "video_color_space.h",
333 "video_decoder_config.cc",
334 "video_decoder_config.h",
339 "video_frame_layout.cc",
340 "video_frame_layout.h",
341 "video_frame_metadata.cc",
342 "video_frame_metadata.h",
343 "video_frame_pool.cc",
344 "video_frame_pool.h",
347 "video_thumbnail_decoder.cc",
348 "video_thumbnail_decoder.h",
349 "video_transformation.cc",
350 "video_transformation.h",
353 "wait_and_replace_sync_token_client.cc",
354 "wait_and_replace_sync_token_client.h",
356 "wall_clock_time_source.cc",
357 "wall_clock_time_source.h",
358 "watch_time_keys.cc",
366 "//media:media_buildflags",
367 "//media:shared_memory_support",
368 "//media/gpu:buildflags",
369 "//ui/gfx:color_space",
374 "//base/allocator:buildflags",
375 "//build:chromeos_buildflags",
376 "//components/system_media_controls/linux/buildflags",
377 "//gpu/command_buffer/client:interface_base",
378 "//gpu/command_buffer/client:raster_interface",
379 "//gpu/command_buffer/common",
380 "//gpu/ipc/common:common",
383 "//third_party/libyuv",
384 "//third_party/widevine/cdm:headers",
385 "//ui/display:display",
386 "//ui/events:events",
387 "//ui/events:events_base",
388 "//ui/events:keyboard_hook",
394 "//build/config:precompiled_headers",
396 "//media:subcomponent_config",
399 if (media_use_ffmpeg) {
401 "//third_party/ffmpeg",
402 "//third_party/ffmpeg:ffmpeg_features",
406 if (is_chromeos_ash) {
407 deps += [ "//ash/constants" ]
410 if (media_use_libvpx) {
411 deps += [ "//third_party/libvpx" ]
414 if (is_linux && !is_castos) {
415 sources += [ "user_input_monitor_linux.cc" ]
417 sources += [ "user_input_monitor_mac.cc" ]
419 "CoreVideo.framework",
420 "CoreFoundation.framework",
421 "CoreGraphics.framework",
422 "IOSurface.framework",
425 sources += [ "user_input_monitor_win.cc" ]
427 defines += [ "DISABLE_USER_INPUT_MONITOR" ]
430 deps += [ "//ui/ozone" ]
433 # Note: should also work on is_posix || is_fuchsia
434 if (is_linux || is_tizen || is_chromeos) {
436 "scopedfd_helper.cc",
443 "//media/base/win:dcomp_texture_wrapper",
444 "//media/base/win:mf_cdm_proxy",
445 "//media/base/win:overlay_state_observer_subscription",
448 "win/mf_feature_checks.cc",
449 "win/mf_feature_checks.h",
454 sources += [ "demuxer_memory_limit_android.cc" ]
455 } else if (is_castos) {
456 sources += [ "demuxer_memory_limit_cast.cc" ]
457 } else if (tizen_product_tv) {
458 sources += [ "demuxer_memory_limit_product_tv.cc" ]
459 } else if (is_fuchsia || tizen_multimedia) {
460 sources += [ "demuxer_memory_limit_low.cc" ]
462 sources += [ "demuxer_memory_limit_default.cc" ]
466 sources += [ "speech_recognition_client.h" ]
469 if (enable_media_drm_storage) {
471 "media_drm_key_type.h",
472 "media_drm_storage.cc",
473 "media_drm_storage.h",
478 source_set("video_facing") {
479 sources = [ "video_facing.h" ]
483 java_cpp_enum("java_enums") {
485 "audio_parameters.h",
487 "encryption_scheme.h",
493 # Note: Only specific internal targets that roll up into the //media component
494 # should depend on this, external targets should use //media:test_support.
495 static_library("test_support") {
497 "//media:test_support",
498 "//media/audio:test_support",
499 "//media/base/android:test_support",
500 "//media/filters:test_support",
501 "//media/formats:test_support",
502 "//media/renderers:test_support",
503 "//media/video:test_support",
507 "fake_audio_render_callback.cc",
508 "fake_audio_render_callback.h",
509 "fake_audio_renderer_sink.cc",
510 "fake_audio_renderer_sink.h",
511 "fake_demuxer_stream.cc",
512 "fake_demuxer_stream.h",
513 "fake_localized_strings.cc",
514 "fake_localized_strings.h",
515 "fake_single_thread_task_runner.cc",
516 "fake_single_thread_task_runner.h",
517 "fake_text_track_stream.cc",
518 "fake_text_track_stream.h",
519 "mock_audio_renderer_sink.cc",
520 "mock_audio_renderer_sink.h",
521 "mock_demuxer_host.cc",
522 "mock_demuxer_host.h",
527 "mock_video_renderer_sink.cc",
528 "mock_video_renderer_sink.h",
535 configs += [ "//media:media_config" ]
537 # Do not add any other //media deps except this; this ensures other
538 # test_support targets all use the same //media component to avoid duplicate
539 # and undefined symbol issues on Windows.
540 public_deps = [ "//media" ]
544 "//base/test:test_support",
545 "//build:chromeos_buildflags",
547 "//ui/gfx:test_support",
552 public_deps += [ "//media/base/win:test_support" ]
556 source_set("unit_tests") {
559 "audio_block_fifo_unittest.cc",
560 "audio_buffer_converter_unittest.cc",
561 "audio_buffer_queue_unittest.cc",
562 "audio_buffer_unittest.cc",
563 "audio_bus_unittest.cc",
564 "audio_converter_unittest.cc",
565 "audio_discard_helper_unittest.cc",
566 "audio_fifo_unittest.cc",
567 "audio_hash_unittest.cc",
568 "audio_latency_unittest.cc",
569 "audio_parameters_unittest.cc",
570 "audio_point_unittest.cc",
571 "audio_power_monitor_unittest.cc",
572 "audio_pull_fifo_unittest.cc",
573 "audio_push_fifo_unittest.cc",
574 "audio_renderer_mixer_input_unittest.cc",
575 "audio_renderer_mixer_unittest.cc",
576 "audio_sample_types_unittest.cc",
577 "audio_shifter_unittest.cc",
578 "audio_timestamp_helper_unittest.cc",
579 "bit_reader_unittest.cc",
580 "bitrate_unittest.cc",
581 "callback_holder_unittest.cc",
582 "callback_registry_unittest.cc",
583 "channel_mixer_unittest.cc",
584 "channel_mixing_matrix_unittest.cc",
585 "container_names_unittest.cc",
586 "converting_audio_fifo_unittest.cc",
587 "crc_16_unittest.cc",
588 "data_buffer_unittest.cc",
589 "decoder_buffer_queue_unittest.cc",
590 "decoder_buffer_unittest.cc",
591 "decrypt_config_unittest.cc",
593 "fake_audio_worker_unittest.cc",
594 "fake_demuxer_stream_unittest.cc",
595 "feedback_signal_accumulator_unittest.cc",
596 "frame_rate_estimator_unittest.cc",
597 "key_systems_unittest.cc",
598 "media_log_unittest.cc",
599 "media_serializers_unittest.cc",
600 "media_url_demuxer_unittest.cc",
601 "mime_util_unittest.cc",
602 "moving_average_unittest.cc",
603 "multi_channel_resampler_unittest.cc",
604 "null_video_sink_unittest.cc",
605 "offloading_audio_encoder_unittest.cc",
606 "offloading_video_encoder_unittest.cc",
607 "pipeline_impl_unittest.cc",
608 "ranges_unittest.cc",
609 "reentrancy_checker_unittest.cc",
610 "renderer_factory_selector_unittest.cc",
611 "seekable_buffer_unittest.cc",
612 "serial_runner_unittest.cc",
613 "silent_sink_suspender_unittest.cc",
614 "sinc_resampler_unittest.cc",
615 "status_unittest.cc",
616 "stream_parser_unittest.cc",
617 "subsample_entry_unittest.cc",
618 "supported_types_unittest.cc",
619 "supported_video_decoder_config_unittest.cc",
620 "text_ranges_unittest.cc",
621 "text_renderer_unittest.cc",
622 "time_delta_interpolator_unittest.cc",
623 "tuneable_unittest.cc",
624 "user_input_monitor_unittest.cc",
625 "vector_math_unittest.cc",
626 "video_aspect_ratio_unittest.cc",
627 "video_bitrate_allocation_unittest.cc",
628 "video_codecs_unittest.cc",
629 "video_color_space_unittest.cc",
630 "video_decoder_config_unittest.cc",
631 "video_frame_layout_unittest.cc",
632 "video_frame_pool_unittest.cc",
633 "video_frame_unittest.cc",
634 "video_thumbnail_decoder_unittest.cc",
635 "video_transformation_unittest.cc",
636 "video_types_unittest.cc",
637 "video_util_unittest.cc",
638 "wall_clock_time_source_unittest.cc",
640 configs += [ "//media:media_config" ]
642 "//base/test:test_support",
643 "//build:chromeos_buildflags",
644 "//components/viz/common",
645 "//gpu/command_buffer/common",
646 "//media:test_support",
650 "//third_party/libyuv",
651 "//third_party/widevine/cdm:headers",
656 deps += [ "//media/base/mac:unit_tests" ]
660 sources += [ "win/dxgi_device_scope_handle_unittest.cc" ]
662 "//media/base/win:media_foundation_util",
663 "//ui/events:test_support",
672 sources += [ "demuxer_memory_limit_cast_unittest.cc" ]
676 source_set("perftests") {
679 "audio_bus_perftest.cc",
680 "audio_converter_perftest.cc",
681 "run_all_perftests.cc",
682 "sinc_resampler_perftest.cc",
683 "vector_math_perftest.cc",
685 configs += [ "//media:media_config" ]
688 "//base/test:test_support",
689 "//media:test_support",
696 fuzzer_test("media_bit_reader_fuzzer") {
697 sources = [ "bit_reader_fuzzertest.cc" ]
700 "//media:test_support",
704 fuzzer_test("media_container_names_fuzzer") {
705 sources = [ "container_names_fuzzertest.cc" ]
708 "//media:test_support",