[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / BUILD.gn
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.
4
5 import("//media/media_options.gni")
6 import("//mojo/public/tools/bindings/mojom.gni")
7
8 mojom("mojom") {
9   generate_java = true
10
11   # TODO(crbug.com/676224): Conditionally add source files in this list when we
12   # support EnabledIf attribute in mojom files.
13   sources = [
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",
25     "cdm_service.mojom",
26     "cdm_storage.mojom",
27     "content_decryption_module.mojom",
28     "decryptor.mojom",
29     "demuxer_stream.mojom",
30     "display_media_information.mojom",
31     "frame_interface_factory.mojom",
32     "interface_factory.mojom",
33     "key_system_support.mojom",
34     "media_log.mojom",
35     "media_metrics_provider.mojom",
36     "media_player.mojom",
37     "media_service.mojom",
38     "media_types.mojom",
39     "output_protection.mojom",
40     "playback_events_recorder.mojom",
41     "provision_fetcher.mojom",
42     "renderer.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",
52   ]
53
54   if (enable_media_drm_storage) {
55     sources += [ "media_drm_storage.mojom" ]
56   }
57
58   if (is_android) {
59     sources += [ "android_overlay.mojom" ]
60   } else {
61     sources += [ "speech_recognition_service.mojom" ]
62   }
63
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" ]
68   }
69
70   if (is_win) {
71     sources += [
72       "dcomp_surface_registry.mojom",
73       "media_foundation_preferences.mojom",
74       "media_foundation_service.mojom",
75     ]
76   }
77
78   public_deps = [
79     ":audio_data",
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",
91     "//ui/gfx/mojom",
92     "//ui/gfx/mojom:hdr_metadata",
93     "//ui/gl/mojom",
94     "//url/mojom:url_mojom_gurl",
95     "//url/mojom:url_mojom_origin",
96   ]
97
98   if (is_mac) {
99     # TODO(xhwang): Ideally media should not worry about sandbox. Find a way to
100     # remove this dependency.
101     public_deps += [ "//sandbox/mac/mojom" ]
102   }
103
104   if (!is_android) {
105     public_deps += [ ":speech_recognition" ]
106   }
107
108   enabled_features = []
109   if (is_linux || is_chromeos || is_tizen) {
110     enabled_features += [ "is_linux_or_chromeos" ]
111   }
112
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" ]
120   } else {
121     assert(false, "Invalid mojo media host: $mojo_media_host")
122   }
123
124   if (enable_cast_renderer) {
125     enabled_features += [ "enable_cast_renderer" ]
126   }
127
128   if (tizen_multimedia) {
129     enabled_features += [ "tizen_multimedia" ]
130   }
131
132   if (tizen_video_hole) {
133     enabled_features += [ "tizen_video_hole" ]
134   }
135
136   if (tizen_product_tv) {
137     enabled_features += [ "is_tizen_tv" ]
138   }
139
140   shared_typemaps = [
141     {
142       types = [
143         {
144           mojom = "media.mojom.AudioParameters"
145           cpp = "::media::AudioParameters"
146         },
147       ]
148       traits_headers = [ "//media/base/ipc/media_param_traits.h" ]
149       traits_public_deps = [
150         "//media",
151         "//media/base/ipc",
152       ]
153     },
154     {
155       types = [
156         {
157           mojom = "media.mojom.AudioProcessingSettings"
158           cpp = "::media::AudioProcessingSettings"
159         },
160         {
161           mojom = "media.mojom.AudioProcessingStats"
162           cpp = "::media::AudioProcessingStats"
163         },
164       ]
165       traits_headers = [ "audio_processing_mojom_traits.h" ]
166       traits_public_deps = [ ":shared_mojom_traits" ]
167     },
168     {
169       types = [
170         {
171           mojom = "media.mojom.FullscreenVideoStatus"
172           cpp = "::blink::WebFullscreenVideoStatus"
173         },
174       ]
175       traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
176     },
177     {
178       types = [
179         {
180           mojom = "media.mojom.MediaContentType"
181           cpp = "::media::MediaContentType"
182         },
183       ]
184       traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
185       traits_public_deps = [
186         "//base",
187         "//media",
188         "//media/base/ipc",
189       ]
190     },
191     {
192       types = [
193         {
194           mojom = "media.mojom.VideoFrameMetadata"
195           cpp = "::media::VideoFrameMetadata"
196         },
197       ]
198       traits_headers = [ "video_frame_metadata_mojom_traits.h" ]
199       traits_public_deps = [ ":shared_mojom_traits" ]
200     },
201   ]
202
203   cpp_typemaps = [
204     {
205       types = [
206         {
207           mojom = "media.mojom.AudioDecoderConfig"
208           cpp = "::media::AudioDecoderConfig"
209         },
210         {
211           mojom = "media.mojom.AudioDecoderType"
212           cpp = "::media::AudioDecoderType"
213         },
214       ]
215       traits_headers = [ "audio_decoder_config_mojom_traits.h" ]
216       traits_sources = [ "audio_decoder_config_mojom_traits.cc" ]
217       traits_public_deps = [
218         "//base",
219         "//media",
220         "//media/base/ipc",
221       ]
222     },
223     {
224       types = [
225         {
226           mojom = "media.mojom.AudioEncoderConfig"
227           cpp = "::media::AudioEncoder::Options"
228         },
229       ]
230       traits_headers = [ "audio_encoder_config_mojom_traits.h" ]
231       traits_sources = [ "audio_encoder_config_mojom_traits.cc" ]
232       traits_public_deps = [
233         "//base",
234         "//media",
235         "//media/base/ipc",
236       ]
237     },
238     {
239       types = [
240         {
241           mojom = "media.mojom.EncodedAudioBuffer"
242           cpp = "::media::EncodedAudioBuffer"
243           move_only = true
244         },
245       ]
246       traits_headers = [ "encoded_audio_buffer_traits.h" ]
247       traits_sources = [ "encoded_audio_buffer_traits.cc" ]
248       traits_public_deps = [
249         "//base",
250         "//media",
251       ]
252     },
253     {
254       types = [
255         {
256           mojom = "media.mojom.CdmKeyInformation"
257           cpp = "::std::unique_ptr<::media::CdmKeyInformation>"
258           move_only = true
259         },
260         {
261           mojom = "media.mojom.CdmKeyStatus"
262           cpp = "::media::CdmKeyInformation::KeyStatus"
263         },
264       ]
265       traits_headers = [ "cdm_key_information_mojom_traits.h" ]
266       traits_sources = [ "cdm_key_information_mojom_traits.cc" ]
267       traits_public_deps = [ "//media" ]
268     },
269     {
270       types = [
271         {
272           mojom = "media.mojom.VideoRotation"
273           cpp = "::media::VideoRotation"
274         },
275         {
276           mojom = "media.mojom.VideoTransformation"
277           cpp = "::media::VideoTransformation"
278         },
279       ]
280       traits_headers = [ "video_transformation_mojom_traits.h" ]
281       traits_sources = [ "video_transformation_mojom_traits.cc" ]
282     },
283     {
284       types = [
285         {
286           mojom = "media.mojom.CdmConfig"
287           cpp = "::media::CdmConfig"
288         },
289         {
290           mojom = "media.mojom.CdmPromiseResult.Exception"
291           cpp = "::media::CdmPromise::Exception"
292         },
293         {
294           mojom = "media.mojom.CdmSessionType"
295           cpp = "::media::CdmSessionType"
296         },
297         {
298           mojom = "media.mojom.CdmMessageType"
299           cpp = "::media::CdmMessageType"
300         },
301         {
302           mojom = "media.mojom.Decryptor.Status"
303           cpp = "::media::Decryptor::Status"
304         },
305         {
306           mojom = "media.mojom.Decryptor.StreamType"
307           cpp = "::media::Decryptor::StreamType"
308         },
309         {
310           mojom = "media.mojom.DemuxerStream.Status"
311           cpp = "::media::DemuxerStream::Status"
312         },
313         {
314           mojom = "media.mojom.DemuxerStream.Type"
315           cpp = "::media::DemuxerStream::Type"
316         },
317         {
318           mojom = "media.mojom.EmeInitDataType"
319           cpp = "::media::EmeInitDataType"
320         },
321         {
322           mojom = "media.mojom.HdcpVersion"
323           cpp = "::media::HdcpVersion"
324         },
325         {
326           mojom = "media.mojom.SessionData.KeyType"
327           cpp = "::media::MediaDrmKeyType"
328         },
329       ]
330       traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
331       traits_public_deps = [
332         "//media",
333         "//media/base/ipc",
334       ]
335     },
336     {
337       types = [
338         {
339           mojom = "media.mojom.PipelineStatistics"
340           cpp = "::media::PipelineStatistics"
341         },
342         {
343           mojom = "media.mojom.AudioPipelineInfo"
344           cpp = "::media::AudioPipelineInfo"
345         },
346         {
347           mojom = "media.mojom.VideoPipelineInfo"
348           cpp = "::media::VideoPipelineInfo"
349         },
350         {
351           mojom = "media.mojom.AudioDecoderType"
352           cpp = "::media::AudioDecoderType"
353         },
354         {
355           mojom = "media.mojom.VideoDecoderType"
356           cpp = "::media::VideoDecoderType"
357         },
358       ]
359       traits_headers = [ "pipeline_status_mojom_traits.h" ]
360     },
361     {
362       types = [
363         {
364           mojom = "media.mojom.StatusData"
365           cpp = "::media::internal::StatusData"
366         },
367         {
368           mojom = "media.mojom.EncoderStatus"
369           cpp = "::media::EncoderStatus"
370         },
371         {
372           mojom = "media.mojom.DecoderStatus"
373           cpp = "::media::DecoderStatus"
374         },
375         {
376           mojom = "media.mojom.PipelineStatus"
377           cpp = "::media::PipelineStatus"
378         },
379       ]
380       traits_headers = [ "status_mojom_traits.h" ]
381       traits_sources = [ "status_mojom_traits.cc" ]
382     },
383     {
384       types = [
385         {
386           mojom = "media.mojom.VideoColorSpace.PrimaryID"
387           cpp = "::media::VideoColorSpace::PrimaryID"
388         },
389         {
390           mojom = "media.mojom.VideoColorSpace.TransferID:"
391           cpp = "::media::VideoColorSpace::TransferID"
392         },
393         {
394           mojom = "media.mojom.VideoColorSpace.MatrixID:"
395           cpp = "::media::VideoColorSpace::MatrixID"
396         },
397         {
398           mojom = "media.mojom.VideoColorSpace.RangeID:"
399           cpp = "::gfx::ColorSpace::RangeID"
400         },
401         {
402           mojom = "media.mojom.VideoColorSpace:"
403           cpp = "::media::VideoColorSpace"
404         },
405       ]
406       traits_headers = [ "video_color_space_mojom_traits.h" ]
407     },
408     {
409       types = [
410         {
411           mojom = "media.mojom.OverlayInfo"
412           cpp = "::media::OverlayInfo"
413         },
414         {
415           mojom = "media.mojom.SupportedVideoDecoderConfig"
416           cpp = "::media::SupportedVideoDecoderConfig"
417         },
418         {
419           mojom = "media.mojom.VideoDecoderType"
420           cpp = "::media::VideoDecoderType"
421         },
422       ]
423       traits_headers = [
424         "supported_video_decoder_config_mojom_traits.h",
425         "//media/base/ipc/media_param_traits_macros.h",
426       ]
427       traits_sources = [ "supported_video_decoder_config_mojom_traits.cc" ]
428       traits_public_deps = [
429         "//base",
430         "//media",
431         "//media/base/ipc",
432         "//media/gpu/ipc/common",
433         "//ui/gfx/geometry/mojom:mojom_traits",
434       ]
435     },
436     {
437       types = [
438         {
439           mojom = "media.mojom.VideoDecoderConfig"
440           cpp = "::media::VideoDecoderConfig"
441         },
442       ]
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 = [
447         "//base",
448         "//media",
449         "//media/base/ipc",
450         "//ui/gfx/geometry/mojom:mojom_traits",
451       ]
452     },
453     {
454       types = [
455         {
456           mojom = "media.mojom.BitstreamBufferMetadata"
457           cpp = "::media::BitstreamBufferMetadata"
458         },
459         {
460           mojom = "media.mojom.VideoBitrateAllocation"
461           cpp = "::media::VideoBitrateAllocation"
462         },
463         {
464           mojom = "media.mojom.VideoEncodeAccelerator.Error"
465           cpp = "::media::VideoEncodeAccelerator::Error"
466         },
467         {
468           mojom = "media.mojom.VideoEncodeOptions"
469           cpp = "::media::VideoEncoder::EncodeOptions"
470         },
471         {
472           mojom = "media.mojom.VideoEncodeAcceleratorConfig"
473           cpp = "::media::VideoEncodeAccelerator::Config"
474         },
475         {
476           mojom = "media.mojom.SVCInterLayerPredMode"
477           cpp = "::media::SVCInterLayerPredMode"
478         },
479         {
480           mojom = "media.mojom.SpatialLayer"
481           cpp = "::media::VideoEncodeAccelerator::Config::SpatialLayer"
482         },
483         {
484           mojom = "media.mojom.SVCScalabilityMode"
485           cpp = "::media::SVCScalabilityMode"
486         },
487         {
488           mojom = "media.mojom.VariableBitrate"
489           cpp = "::media::Bitrate"
490         },
491         {
492           mojom = "media.mojom.ConstantBitrate"
493           cpp = "::media::Bitrate"
494         },
495         {
496           mojom = "media.mojom.Bitrate"
497           cpp = "::media::Bitrate"
498         },
499         {
500           mojom = "media.mojom.VideoEncodeAcceleratorSupportedProfile"
501           cpp = "::media::VideoEncodeAccelerator::SupportedProfile"
502         },
503         {
504           mojom = "media.mojom.Vp8Metadata"
505           cpp = "::media::Vp8Metadata"
506         },
507         {
508           mojom = "media.mojom.Vp9Metadata"
509           cpp = "::media::Vp9Metadata"
510         },
511       ]
512       traits_headers = [ "video_encode_accelerator_mojom_traits.h" ]
513       traits_sources = [ "video_encode_accelerator_mojom_traits.cc" ]
514       traits_public_deps = [
515         "//base",
516         "//media",
517         "//media/base/ipc",
518         "//ui/gfx/geometry/mojom:mojom_traits",
519       ]
520     },
521     {
522       types = [
523         {
524           mojom = "media.mojom.ResolutionBitrateLimit"
525           cpp = "::media::ResolutionBitrateLimit"
526         },
527         {
528           mojom = "media.mojom.VideoEncoderInfo"
529           cpp = "::media::VideoEncoderInfo"
530         },
531       ]
532       traits_headers = [ "video_encoder_info_mojom_traits.h" ]
533       traits_sources = [ "video_encoder_info_mojom_traits.cc" ]
534       traits_public_deps = [
535         "//base",
536         "//media",
537         "//media/base/ipc",
538         "//ui/gfx/geometry/mojom:mojom_traits",
539       ]
540     },
541     {
542       types = [
543         {
544           mojom = "media.mojom.AudioCodec"
545           cpp = "::media::AudioCodec"
546         },
547         {
548           mojom = "media.mojom.AudioCodecProfile"
549           cpp = "::media::AudioCodecProfile"
550         },
551         {
552           mojom = "media.mojom.BufferingState"
553           cpp = "::media::BufferingState"
554         },
555         {
556           mojom = "media.mojom.BufferingStateChangeReason"
557           cpp = "::media::BufferingStateChangeReason"
558         },
559         {
560           mojom = "media.mojom.ChannelLayout"
561           cpp = "::media::ChannelLayout"
562         },
563         {
564           mojom = "media.mojom.DecodeStatus"
565           cpp = "::media::DecodeStatus"
566         },
567         {
568           mojom = "media.mojom.EncryptionScheme"
569           cpp = "::media::EncryptionScheme"
570         },
571         {
572           mojom = "media.mojom.MediaContainerName"
573           cpp = "::media::container_names::MediaContainerName"
574         },
575         {
576           mojom = "media.mojom.MediaLogRecord"
577           cpp = "::media::MediaLogRecord"
578         },
579         {
580           mojom = "media.mojom.OutputDeviceStatus"
581           cpp = "::media::OutputDeviceStatus"
582         },
583         {
584           mojom = "media.mojom.PipelineStatus"
585           cpp = "::media::PipelineStatus"
586         },
587         {
588           mojom = "media.mojom.SampleFormat"
589           cpp = "::media::SampleFormat"
590         },
591         {
592           mojom = "media.mojom.SubsampleEntry"
593           cpp = "::media::SubsampleEntry"
594         },
595         {
596           mojom = "media.mojom.VideoCodec"
597           cpp = "::media::VideoCodec"
598         },
599         {
600           mojom = "media.mojom.VideoCodecProfile"
601           cpp = "::media::VideoCodecProfile"
602         },
603         {
604           mojom = "media.mojom.VideoPixelFormat"
605           cpp = "::media::VideoPixelFormat"
606         },
607         {
608           mojom = "media.mojom.WaitingReason"
609           cpp = "::media::WaitingReason"
610         },
611         {
612           mojom = "media.mojom.WatchTimeKey"
613           cpp = "::media::WatchTimeKey"
614         },
615         {
616           mojom = "media.mojom.MediaStatusState"
617           cpp = "::media::MediaStatus::State"
618         },
619         {
620           mojom = "media.mojom.StatusCode"
621           cpp = "::media::StatusCode"
622         },
623       ]
624       traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
625     },
626     {
627       types = [
628         {
629           mojom = "media.mojom.VideoFrame"
630           cpp = "::scoped_refptr<::media::VideoFrame>"
631           nullable_is_same_type = true
632         },
633       ]
634       traits_headers = [ "video_frame_mojom_traits.h" ]
635       traits_sources = [ "video_frame_mojom_traits.cc" ]
636       traits_public_deps = [ "//ui/gfx/geometry/mojom" ]
637     },
638     {
639       types = [
640         {
641           mojom = "media.mojom.CdmCapability"
642           cpp = "::media::CdmCapability"
643         },
644       ]
645       traits_headers = [ "cdm_capability_mojom_traits.h" ]
646       traits_sources = [ "cdm_capability_mojom_traits.cc" ]
647       traits_public_deps = [ "//media" ]
648     },
649     {
650       types = [
651         {
652           mojom = "media.mojom.CdmSessionClosedReason"
653           cpp = "::media::CdmSessionClosedReason"
654         },
655       ]
656       traits_headers = [ "media_types_enum_mojom_traits.h" ]
657     },
658     {
659       types = [
660         {
661           mojom = "media.mojom.RendererType"
662           cpp = "::media::RendererType"
663         },
664       ]
665       traits_headers = [ "media_types_enum_mojom_traits.h" ]
666     },
667   ]
668
669   if (is_win) {
670     cpp_typemaps += [
671       {
672         types = [
673           {
674             mojom = "media.mojom.CdmEvent"
675             cpp = "::media::CdmEvent"
676           },
677         ]
678         traits_headers = [ "media_types_enum_mojom_traits.h" ]
679       },
680       {
681         types = [
682           {
683             mojom = "media.mojom.MediaFoundationCdmData"
684             cpp = "::std::unique_ptr<::media::MediaFoundationCdmData>"
685             move_only = true
686           },
687         ]
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" ]
691       },
692       {
693         types = [
694           {
695             mojom = "media.mojom.MediaFoundationRenderingMode"
696             cpp = "::media::MediaFoundationRenderingMode"
697           },
698         ]
699         traits_headers = [ "media_foundation_rendering_mode_mojom_traits.h" ]
700         traits_public_deps = [ "//media" ]
701       },
702     ]
703   }
704
705   if (is_fuchsia) {
706     sources += [ "fuchsia_media.mojom" ]
707
708     shared_typemaps += [
709       {
710         types = [
711           {
712             mojom = "media.mojom.CdmRequest"
713             cpp = "::fidl::InterfaceRequest<::fuchsia::media::drm::ContentDecryptionModule>"
714             move_only = true
715           },
716           {
717             mojom = "media.mojom.StreamProcessorRequest"
718             cpp = "::fidl::InterfaceRequest<::fuchsia::media::StreamProcessor>"
719             move_only = true
720           },
721         ]
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",
727         ]
728       },
729     ]
730   }
731
732   cpp_typemaps += shared_typemaps
733   blink_cpp_typemaps = shared_typemaps
734
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"
738 }
739
740 mojom("audio_data") {
741   generate_java = true
742   sources = [ "audio_data.mojom" ]
743 }
744
745 mojom("encryption_pattern") {
746   generate_java = true
747   sources = [ "encryption_pattern.mojom" ]
748   cpp_typemaps = [
749     {
750       types = [
751         {
752           mojom = "media.mojom.EncryptionPattern"
753           cpp = "::media::EncryptionPattern"
754         },
755       ]
756       traits_headers = [ "encryption_pattern_mojom_traits.h" ]
757       traits_sources = [ "encryption_pattern_mojom_traits.cc" ]
758       traits_public_deps = [
759         "//media",
760         "//media/base/ipc",
761       ]
762     },
763   ]
764 }
765
766 # Speech recognition API used between renderer/browser/service and between
767 # LaCrOS/Ash.
768 mojom("speech_recognition") {
769   sources = [ "speech_recognition.mojom" ]
770   cpp_typemaps = [
771     {
772       types = [
773         {
774           mojom = "media.mojom.HypothesisParts"
775           cpp = "::media::HypothesisParts"
776         },
777         {
778           mojom = "media.mojom.TimingInformation"
779           cpp = "::media::TimingInformation"
780         },
781         {
782           mojom = "media.mojom.SpeechRecognitionResult"
783           cpp = "::media::SpeechRecognitionResult"
784         },
785       ]
786       traits_headers = [
787         "speech_recognition_result_mojom_traits.h",
788         "speech_recognition_result.h",
789       ]
790       traits_sources = [
791         "speech_recognition_result.cc",
792         "speech_recognition_result_mojom_traits.cc",
793       ]
794       traits_public_deps = [ "//base" ]
795     },
796   ]
797   public_deps = [
798     ":audio_data",
799     "//mojo/public/mojom/base",
800     "//sandbox/policy/mojom",
801     "//ui/gfx/geometry/mojom",
802   ]
803 }
804
805 source_set("shared_mojom_traits") {
806   sources = [
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",
811   ]
812
813   public_deps = [
814     ":mojom_shared",
815     "//gpu/ipc/common",
816     "//media",
817     "//media/base/ipc:ipc",
818     "//mojo/public/mojom/base",
819     "//ui/gfx/geometry/mojom:mojom_traits",
820   ]
821 }
822
823 mojom("remoting_common") {
824   sources = [ "remoting_common.mojom" ]
825 }
826
827 mojom("remoting") {
828   sources = [ "remoting.mojom" ]
829
830   public_deps = [
831     ":mojom",
832     ":remoting_common",
833   ]
834 }
835
836 mojom("test_interfaces") {
837   testonly = true
838   sources = [ "traits_test_service.mojom" ]
839   public_deps = [ ":mojom" ]
840 }
841
842 source_set("unit_tests") {
843   testonly = true
844
845   sources = [
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",
853   ]
854
855   if (!is_android) {
856     sources += [ "speech_recognition_result_mojom_traits_unittest.cc" ]
857   }
858
859   deps = [
860     "//base",
861     "//base/test:test_support",
862     "//media:test_support",
863     "//media/mojo:test_support",
864     "//mojo/public/cpp/test_support:test_utils",
865     "//testing/gmock",
866     "//testing/gtest",
867     "//ui/gfx:test_support",
868   ]
869
870   if (!is_android) {
871     deps += [ ":speech_recognition" ]
872   }
873 }