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("//media/media_options.gni")
6 import("//mojo/public/tools/bindings/mojom.gni")
11 # TODO(crbug.com/676224): Conditionally add source files in this list when we
12 # support EnabledIf attribute in mojom files.
14 "audio_data_pipe.mojom",
15 "audio_decoder.mojom",
16 "audio_encoder.mojom",
17 "audio_input_stream.mojom",
18 "audio_logging.mojom",
19 "audio_output_stream.mojom",
20 "audio_parameters.mojom",
21 "audio_processing.mojom",
22 "audio_stream_factory.mojom",
23 "capture_handle.mojom",
24 "cdm_document_service.mojom",
27 "content_decryption_module.mojom",
29 "demuxer_stream.mojom",
30 "display_media_information.mojom",
31 "frame_interface_factory.mojom",
32 "interface_factory.mojom",
33 "key_system_support.mojom",
35 "media_metrics_provider.mojom",
37 "media_service.mojom",
39 "output_protection.mojom",
40 "playback_events_recorder.mojom",
41 "provision_fetcher.mojom",
43 "renderer_extensions.mojom",
44 "video_decode_perf_history.mojom",
45 "video_decode_stats_recorder.mojom",
46 "video_decoder.mojom",
47 "video_encode_accelerator.mojom",
48 "video_encoder_info.mojom",
49 "video_encoder_metrics_provider.mojom",
50 "watch_time_recorder.mojom",
51 "webrtc_video_perf.mojom",
54 if (enable_media_drm_storage) {
55 sources += [ "media_drm_storage.mojom" ]
59 sources += [ "android_overlay.mojom" ]
61 sources += [ "speech_recognition_service.mojom" ]
64 # TODO(crbug.com/1293520): Revisit this after the cast renderer has been
65 # deprecated and removed.
66 if (is_castos || is_cast_android) {
67 sources += [ "cast_application_media_info_manager.mojom" ]
72 "dcomp_surface_registry.mojom",
73 "media_foundation_preferences.mojom",
74 "media_foundation_service.mojom",
80 ":encryption_pattern",
81 "//gpu/ipc/common:interfaces",
82 "//media/learning/mojo/public/mojom",
83 "//media/mojo/mojom/stable:stable_video_decoder",
84 "//mojo/public/mojom/base",
85 "//sandbox/policy/mojom",
86 "//services/media_session/public/mojom",
87 "//services/network/public/mojom",
88 "//services/network/public/mojom:cookies_mojom",
89 "//services/service_manager/public/mojom",
90 "//ui/gfx/geometry/mojom",
92 "//ui/gfx/mojom:hdr_metadata",
94 "//url/mojom:url_mojom_gurl",
95 "//url/mojom:url_mojom_origin",
99 # TODO(xhwang): Ideally media should not worry about sandbox. Find a way to
100 # remove this dependency.
101 public_deps += [ "//sandbox/mac/mojom" ]
105 public_deps += [ ":speech_recognition" ]
108 enabled_features = []
109 if (is_linux || is_chromeos || is_tizen) {
110 enabled_features += [ "is_linux_or_chromeos" ]
113 # Help select ServiceSandbox for media_service.mojom.
114 if (mojo_media_host == "browser") {
115 enabled_features += [ "mojo_media_in_browser" ]
116 } else if (mojo_media_host == "gpu") {
117 enabled_features += [ "mojo_media_in_gpu" ]
118 } else if (mojo_media_host == "") {
119 enabled_features += [ "mojo_media_service_unused" ]
121 assert(false, "Invalid mojo media host: $mojo_media_host")
124 if (enable_cast_renderer) {
125 enabled_features += [ "enable_cast_renderer" ]
128 if (tizen_multimedia) {
129 enabled_features += [ "tizen_multimedia" ]
132 if (tizen_video_hole) {
133 enabled_features += [ "tizen_video_hole" ]
136 if (tizen_product_tv) {
137 enabled_features += [ "is_tizen_tv" ]
144 mojom = "media.mojom.AudioParameters"
145 cpp = "::media::AudioParameters"
148 traits_headers = [ "//media/base/ipc/media_param_traits.h" ]
149 traits_public_deps = [
157 mojom = "media.mojom.AudioProcessingSettings"
158 cpp = "::media::AudioProcessingSettings"
161 mojom = "media.mojom.AudioProcessingStats"
162 cpp = "::media::AudioProcessingStats"
165 traits_headers = [ "audio_processing_mojom_traits.h" ]
166 traits_public_deps = [ ":shared_mojom_traits" ]
171 mojom = "media.mojom.FullscreenVideoStatus"
172 cpp = "::blink::WebFullscreenVideoStatus"
175 traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
180 mojom = "media.mojom.MediaContentType"
181 cpp = "::media::MediaContentType"
184 traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
185 traits_public_deps = [
194 mojom = "media.mojom.VideoFrameMetadata"
195 cpp = "::media::VideoFrameMetadata"
198 traits_headers = [ "video_frame_metadata_mojom_traits.h" ]
199 traits_public_deps = [ ":shared_mojom_traits" ]
207 mojom = "media.mojom.AudioDecoderConfig"
208 cpp = "::media::AudioDecoderConfig"
211 mojom = "media.mojom.AudioDecoderType"
212 cpp = "::media::AudioDecoderType"
215 traits_headers = [ "audio_decoder_config_mojom_traits.h" ]
216 traits_sources = [ "audio_decoder_config_mojom_traits.cc" ]
217 traits_public_deps = [
226 mojom = "media.mojom.AudioEncoderConfig"
227 cpp = "::media::AudioEncoder::Options"
230 traits_headers = [ "audio_encoder_config_mojom_traits.h" ]
231 traits_sources = [ "audio_encoder_config_mojom_traits.cc" ]
232 traits_public_deps = [
241 mojom = "media.mojom.EncodedAudioBuffer"
242 cpp = "::media::EncodedAudioBuffer"
246 traits_headers = [ "encoded_audio_buffer_traits.h" ]
247 traits_sources = [ "encoded_audio_buffer_traits.cc" ]
248 traits_public_deps = [
256 mojom = "media.mojom.CdmKeyInformation"
257 cpp = "::std::unique_ptr<::media::CdmKeyInformation>"
261 mojom = "media.mojom.CdmKeyStatus"
262 cpp = "::media::CdmKeyInformation::KeyStatus"
265 traits_headers = [ "cdm_key_information_mojom_traits.h" ]
266 traits_sources = [ "cdm_key_information_mojom_traits.cc" ]
267 traits_public_deps = [ "//media" ]
272 mojom = "media.mojom.VideoRotation"
273 cpp = "::media::VideoRotation"
276 mojom = "media.mojom.VideoTransformation"
277 cpp = "::media::VideoTransformation"
280 traits_headers = [ "video_transformation_mojom_traits.h" ]
281 traits_sources = [ "video_transformation_mojom_traits.cc" ]
286 mojom = "media.mojom.CdmConfig"
287 cpp = "::media::CdmConfig"
290 mojom = "media.mojom.CdmPromiseResult.Exception"
291 cpp = "::media::CdmPromise::Exception"
294 mojom = "media.mojom.CdmSessionType"
295 cpp = "::media::CdmSessionType"
298 mojom = "media.mojom.CdmMessageType"
299 cpp = "::media::CdmMessageType"
302 mojom = "media.mojom.Decryptor.Status"
303 cpp = "::media::Decryptor::Status"
306 mojom = "media.mojom.Decryptor.StreamType"
307 cpp = "::media::Decryptor::StreamType"
310 mojom = "media.mojom.DemuxerStream.Status"
311 cpp = "::media::DemuxerStream::Status"
314 mojom = "media.mojom.DemuxerStream.Type"
315 cpp = "::media::DemuxerStream::Type"
318 mojom = "media.mojom.EmeInitDataType"
319 cpp = "::media::EmeInitDataType"
322 mojom = "media.mojom.HdcpVersion"
323 cpp = "::media::HdcpVersion"
326 mojom = "media.mojom.SessionData.KeyType"
327 cpp = "::media::MediaDrmKeyType"
330 traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
331 traits_public_deps = [
339 mojom = "media.mojom.PipelineStatistics"
340 cpp = "::media::PipelineStatistics"
343 mojom = "media.mojom.AudioPipelineInfo"
344 cpp = "::media::AudioPipelineInfo"
347 mojom = "media.mojom.VideoPipelineInfo"
348 cpp = "::media::VideoPipelineInfo"
351 mojom = "media.mojom.AudioDecoderType"
352 cpp = "::media::AudioDecoderType"
355 mojom = "media.mojom.VideoDecoderType"
356 cpp = "::media::VideoDecoderType"
359 traits_headers = [ "pipeline_status_mojom_traits.h" ]
364 mojom = "media.mojom.StatusData"
365 cpp = "::media::internal::StatusData"
368 mojom = "media.mojom.EncoderStatus"
369 cpp = "::media::EncoderStatus"
372 mojom = "media.mojom.DecoderStatus"
373 cpp = "::media::DecoderStatus"
376 mojom = "media.mojom.PipelineStatus"
377 cpp = "::media::PipelineStatus"
380 traits_headers = [ "status_mojom_traits.h" ]
381 traits_sources = [ "status_mojom_traits.cc" ]
386 mojom = "media.mojom.VideoColorSpace.PrimaryID"
387 cpp = "::media::VideoColorSpace::PrimaryID"
390 mojom = "media.mojom.VideoColorSpace.TransferID:"
391 cpp = "::media::VideoColorSpace::TransferID"
394 mojom = "media.mojom.VideoColorSpace.MatrixID:"
395 cpp = "::media::VideoColorSpace::MatrixID"
398 mojom = "media.mojom.VideoColorSpace.RangeID:"
399 cpp = "::gfx::ColorSpace::RangeID"
402 mojom = "media.mojom.VideoColorSpace:"
403 cpp = "::media::VideoColorSpace"
406 traits_headers = [ "video_color_space_mojom_traits.h" ]
411 mojom = "media.mojom.OverlayInfo"
412 cpp = "::media::OverlayInfo"
415 mojom = "media.mojom.SupportedVideoDecoderConfig"
416 cpp = "::media::SupportedVideoDecoderConfig"
419 mojom = "media.mojom.VideoDecoderType"
420 cpp = "::media::VideoDecoderType"
424 "supported_video_decoder_config_mojom_traits.h",
425 "//media/base/ipc/media_param_traits_macros.h",
427 traits_sources = [ "supported_video_decoder_config_mojom_traits.cc" ]
428 traits_public_deps = [
432 "//media/gpu/ipc/common",
433 "//ui/gfx/geometry/mojom:mojom_traits",
439 mojom = "media.mojom.VideoDecoderConfig"
440 cpp = "::media::VideoDecoderConfig"
443 traits_headers = [ "//media/base/video_decoder_config.h" ]
444 traits_private_headers = [ "video_decoder_config_mojom_traits.h" ]
445 traits_sources = [ "video_decoder_config_mojom_traits.cc" ]
446 traits_public_deps = [
450 "//ui/gfx/geometry/mojom:mojom_traits",
456 mojom = "media.mojom.BitstreamBufferMetadata"
457 cpp = "::media::BitstreamBufferMetadata"
460 mojom = "media.mojom.VideoBitrateAllocation"
461 cpp = "::media::VideoBitrateAllocation"
464 mojom = "media.mojom.VideoEncodeAccelerator.Error"
465 cpp = "::media::VideoEncodeAccelerator::Error"
468 mojom = "media.mojom.VideoEncodeOptions"
469 cpp = "::media::VideoEncoder::EncodeOptions"
472 mojom = "media.mojom.VideoEncodeAcceleratorConfig"
473 cpp = "::media::VideoEncodeAccelerator::Config"
476 mojom = "media.mojom.SVCInterLayerPredMode"
477 cpp = "::media::SVCInterLayerPredMode"
480 mojom = "media.mojom.SpatialLayer"
481 cpp = "::media::VideoEncodeAccelerator::Config::SpatialLayer"
484 mojom = "media.mojom.SVCScalabilityMode"
485 cpp = "::media::SVCScalabilityMode"
488 mojom = "media.mojom.VariableBitrate"
489 cpp = "::media::Bitrate"
492 mojom = "media.mojom.ConstantBitrate"
493 cpp = "::media::Bitrate"
496 mojom = "media.mojom.Bitrate"
497 cpp = "::media::Bitrate"
500 mojom = "media.mojom.VideoEncodeAcceleratorSupportedProfile"
501 cpp = "::media::VideoEncodeAccelerator::SupportedProfile"
504 mojom = "media.mojom.Vp8Metadata"
505 cpp = "::media::Vp8Metadata"
508 mojom = "media.mojom.Vp9Metadata"
509 cpp = "::media::Vp9Metadata"
512 traits_headers = [ "video_encode_accelerator_mojom_traits.h" ]
513 traits_sources = [ "video_encode_accelerator_mojom_traits.cc" ]
514 traits_public_deps = [
518 "//ui/gfx/geometry/mojom:mojom_traits",
524 mojom = "media.mojom.ResolutionBitrateLimit"
525 cpp = "::media::ResolutionBitrateLimit"
528 mojom = "media.mojom.VideoEncoderInfo"
529 cpp = "::media::VideoEncoderInfo"
532 traits_headers = [ "video_encoder_info_mojom_traits.h" ]
533 traits_sources = [ "video_encoder_info_mojom_traits.cc" ]
534 traits_public_deps = [
538 "//ui/gfx/geometry/mojom:mojom_traits",
544 mojom = "media.mojom.AudioCodec"
545 cpp = "::media::AudioCodec"
548 mojom = "media.mojom.AudioCodecProfile"
549 cpp = "::media::AudioCodecProfile"
552 mojom = "media.mojom.BufferingState"
553 cpp = "::media::BufferingState"
556 mojom = "media.mojom.BufferingStateChangeReason"
557 cpp = "::media::BufferingStateChangeReason"
560 mojom = "media.mojom.ChannelLayout"
561 cpp = "::media::ChannelLayout"
564 mojom = "media.mojom.DecodeStatus"
565 cpp = "::media::DecodeStatus"
568 mojom = "media.mojom.EncryptionScheme"
569 cpp = "::media::EncryptionScheme"
572 mojom = "media.mojom.MediaContainerName"
573 cpp = "::media::container_names::MediaContainerName"
576 mojom = "media.mojom.MediaLogRecord"
577 cpp = "::media::MediaLogRecord"
580 mojom = "media.mojom.OutputDeviceStatus"
581 cpp = "::media::OutputDeviceStatus"
584 mojom = "media.mojom.PipelineStatus"
585 cpp = "::media::PipelineStatus"
588 mojom = "media.mojom.SampleFormat"
589 cpp = "::media::SampleFormat"
592 mojom = "media.mojom.SubsampleEntry"
593 cpp = "::media::SubsampleEntry"
596 mojom = "media.mojom.VideoCodec"
597 cpp = "::media::VideoCodec"
600 mojom = "media.mojom.VideoCodecProfile"
601 cpp = "::media::VideoCodecProfile"
604 mojom = "media.mojom.VideoPixelFormat"
605 cpp = "::media::VideoPixelFormat"
608 mojom = "media.mojom.WaitingReason"
609 cpp = "::media::WaitingReason"
612 mojom = "media.mojom.WatchTimeKey"
613 cpp = "::media::WatchTimeKey"
616 mojom = "media.mojom.MediaStatusState"
617 cpp = "::media::MediaStatus::State"
620 mojom = "media.mojom.StatusCode"
621 cpp = "::media::StatusCode"
624 traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
629 mojom = "media.mojom.VideoFrame"
630 cpp = "::scoped_refptr<::media::VideoFrame>"
631 nullable_is_same_type = true
634 traits_headers = [ "video_frame_mojom_traits.h" ]
635 traits_sources = [ "video_frame_mojom_traits.cc" ]
636 traits_public_deps = [ "//ui/gfx/geometry/mojom" ]
641 mojom = "media.mojom.CdmCapability"
642 cpp = "::media::CdmCapability"
645 traits_headers = [ "cdm_capability_mojom_traits.h" ]
646 traits_sources = [ "cdm_capability_mojom_traits.cc" ]
647 traits_public_deps = [ "//media" ]
652 mojom = "media.mojom.CdmSessionClosedReason"
653 cpp = "::media::CdmSessionClosedReason"
656 traits_headers = [ "media_types_enum_mojom_traits.h" ]
661 mojom = "media.mojom.RendererType"
662 cpp = "::media::RendererType"
665 traits_headers = [ "media_types_enum_mojom_traits.h" ]
674 mojom = "media.mojom.CdmEvent"
675 cpp = "::media::CdmEvent"
678 traits_headers = [ "media_types_enum_mojom_traits.h" ]
683 mojom = "media.mojom.MediaFoundationCdmData"
684 cpp = "::std::unique_ptr<::media::MediaFoundationCdmData>"
688 traits_headers = [ "media_foundation_cdm_data_mojom_traits.h" ]
689 traits_sources = [ "media_foundation_cdm_data_mojom_traits.cc" ]
690 traits_public_deps = [ "//media" ]
695 mojom = "media.mojom.MediaFoundationRenderingMode"
696 cpp = "::media::MediaFoundationRenderingMode"
699 traits_headers = [ "media_foundation_rendering_mode_mojom_traits.h" ]
700 traits_public_deps = [ "//media" ]
706 sources += [ "fuchsia_media.mojom" ]
712 mojom = "media.mojom.CdmRequest"
713 cpp = "::fidl::InterfaceRequest<::fuchsia::media::drm::ContentDecryptionModule>"
717 mojom = "media.mojom.StreamProcessorRequest"
718 cpp = "::fidl::InterfaceRequest<::fuchsia::media::StreamProcessor>"
722 traits_headers = [ "fuchsia_media_mojom_traits.h" ]
723 traits_public_deps = [
724 "//mojo/public/cpp/base/fuchsia:traits",
725 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.media:fuchsia.media_hlcpp",
726 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.media.drm:fuchsia.media.drm_hlcpp",
732 cpp_typemaps += shared_typemaps
733 blink_cpp_typemaps = shared_typemaps
735 export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
736 export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
737 export_header_blink = "third_party/blink/public/platform/web_common.h"
740 mojom("audio_data") {
742 sources = [ "audio_data.mojom" ]
745 mojom("encryption_pattern") {
747 sources = [ "encryption_pattern.mojom" ]
752 mojom = "media.mojom.EncryptionPattern"
753 cpp = "::media::EncryptionPattern"
756 traits_headers = [ "encryption_pattern_mojom_traits.h" ]
757 traits_sources = [ "encryption_pattern_mojom_traits.cc" ]
758 traits_public_deps = [
766 # Speech recognition API used between renderer/browser/service and between
768 mojom("speech_recognition") {
769 sources = [ "speech_recognition.mojom" ]
774 mojom = "media.mojom.HypothesisParts"
775 cpp = "::media::HypothesisParts"
778 mojom = "media.mojom.TimingInformation"
779 cpp = "::media::TimingInformation"
782 mojom = "media.mojom.SpeechRecognitionResult"
783 cpp = "::media::SpeechRecognitionResult"
787 "speech_recognition_result_mojom_traits.h",
788 "speech_recognition_result.h",
791 "speech_recognition_result.cc",
792 "speech_recognition_result_mojom_traits.cc",
794 traits_public_deps = [ "//base" ]
799 "//mojo/public/mojom/base",
800 "//sandbox/policy/mojom",
801 "//ui/gfx/geometry/mojom",
805 source_set("shared_mojom_traits") {
807 "audio_processing_mojom_traits.cc",
808 "audio_processing_mojom_traits.h",
809 "video_frame_metadata_mojom_traits.cc",
810 "video_frame_metadata_mojom_traits.h",
817 "//media/base/ipc:ipc",
818 "//mojo/public/mojom/base",
819 "//ui/gfx/geometry/mojom:mojom_traits",
823 mojom("remoting_common") {
824 sources = [ "remoting_common.mojom" ]
828 sources = [ "remoting.mojom" ]
836 mojom("test_interfaces") {
838 sources = [ "traits_test_service.mojom" ]
839 public_deps = [ ":mojom" ]
842 source_set("unit_tests") {
846 "audio_decoder_config_mojom_traits_unittest.cc",
847 "audio_processing_mojom_traits_unittest.cc",
848 "cdm_key_information_mojom_traits_unittest.cc",
849 "video_decoder_config_mojom_traits_unittest.cc",
850 "video_encode_accelerator_mojom_traits_unittest.cc",
851 "video_frame_metadata_mojom_traits_unittest.cc",
852 "video_frame_mojom_traits_unittest.cc",
856 sources += [ "speech_recognition_result_mojom_traits_unittest.cc" ]
861 "//base/test:test_support",
862 "//media:test_support",
863 "//media/mojo:test_support",
864 "//mojo/public/cpp/test_support:test_utils",
867 "//ui/gfx:test_support",
871 deps += [ ":speech_recognition" ]