Chromecast: media interfaces for hardware-backed video plane.
[chromium-blink-merge.git] / chromecast / media / media.gyp
blob1051a6bb30a793d0ea0f8689fb8c9f2567286655
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'variables': {
7     'chromecast_branding%': 'Chromium',
8   },
9   'targets': [
10     {
11       'target_name': 'media_base',
12       'type': '<(component)',
13       'dependencies': [
14         '../../base/base.gyp:base',
15         '../../crypto/crypto.gyp:crypto',
16         '../../third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h',
17       ],
18       'sources': [
19         'base/decrypt_context.cc',
20         'base/decrypt_context.h',
21         'base/decrypt_context_clearkey.cc',
22         'base/decrypt_context_clearkey.h',
23         'base/key_systems_common.cc',
24         'base/key_systems_common.h',
25       ],
26       'conditions': [
27         ['chromecast_branding=="Chrome"', {
28           'dependencies': [
29             '<(cast_internal_gyp):media_base_internal',
30           ],
31         }, {
32           'sources': [
33             'base/key_systems_common_simple.cc',
34           ],
35         }],
36       ],
37     },
38     {
39       'target_name': 'media_cdm',
40       'type': '<(component)',
41       'dependencies': [
42         'media_base',
43         '../../base/base.gyp:base',
44         '../../media/media.gyp:media',
45       ],
46       'sources': [
47         'cdm/browser_cdm_cast.cc',
48         'cdm/browser_cdm_cast.h',
49       ],
50     },
51     {
52       'target_name': 'cma_base',
53       'type': '<(component)',
54       'dependencies': [
55         '../chromecast.gyp:cast_base',
56         '../../base/base.gyp:base',
57         '../../media/media.gyp:media',
58       ],
59       'include_dirs': [
60         '../..',
61       ],
62       'sources': [
63         'cma/base/balanced_media_task_runner_factory.cc',
64         'cma/base/balanced_media_task_runner_factory.h',
65         'cma/base/buffering_controller.cc',
66         'cma/base/buffering_controller.h',
67         'cma/base/buffering_defs.cc',
68         'cma/base/buffering_defs.h',
69         'cma/base/buffering_frame_provider.cc',
70         'cma/base/buffering_frame_provider.h',
71         'cma/base/buffering_state.cc',
72         'cma/base/buffering_state.h',
73         'cma/base/cma_logging.h',
74         'cma/base/coded_frame_provider.cc',
75         'cma/base/coded_frame_provider.h',
76         'cma/base/decoder_buffer_adapter.cc',
77         'cma/base/decoder_buffer_adapter.h',
78         'cma/base/decoder_buffer_base.cc',
79         'cma/base/decoder_buffer_base.h',
80         'cma/base/media_task_runner.cc',
81         'cma/base/media_task_runner.h',
82       ],
83     },
84     {
85       'target_name': 'cma_backend',
86       'type': '<(component)',
87       'dependencies': [
88         'cma_base',
89         'media_base',
90         '../../base/base.gyp:base',
91         '../../media/media.gyp:media',
92       ],
93       'include_dirs': [
94         '../..',
95       ],
96       'sources': [
97         'cma/backend/audio_pipeline_device.cc',
98         'cma/backend/audio_pipeline_device.h',
99         'cma/backend/media_clock_device.cc',
100         'cma/backend/media_clock_device.h',
101         'cma/backend/media_component_device.cc',
102         'cma/backend/media_component_device.h',
103         'cma/backend/media_pipeline_device.cc',
104         'cma/backend/media_pipeline_device.h',
105         'cma/backend/media_pipeline_device_fake.cc',
106         'cma/backend/media_pipeline_device_fake.h',
107         'cma/backend/media_pipeline_device_params.cc',
108         'cma/backend/media_pipeline_device_params.h',
109         'cma/backend/video_pipeline_device.cc',
110         'cma/backend/video_pipeline_device.h',
111         'cma/backend/video_plane.cc',
112         'cma/backend/video_plane.h',
113         'cma/backend/video_plane_fake.cc',
114         'cma/backend/video_plane_fake.h',
115       ],
116       'conditions': [
117         ['chromecast_branding=="Chrome"', {
118           'dependencies': [
119             '<(cast_internal_gyp):cma_backend_internal',
120           ],
121         }, {
122           'sources': [
123             'cma/backend/media_pipeline_device_fake_factory.cc',
124             'cma/backend/video_plane_fake_factory.cc',
125           ],
126         }],
127       ],
128     },
129     {
130       'target_name': 'cma_ipc',
131       'type': '<(component)',
132       'dependencies': [
133         '../../base/base.gyp:base',
134       ],
135       'sources': [
136         'cma/ipc/media_memory_chunk.cc',
137         'cma/ipc/media_memory_chunk.h',
138         'cma/ipc/media_message.cc',
139         'cma/ipc/media_message.h',
140         'cma/ipc/media_message_fifo.cc',
141         'cma/ipc/media_message_fifo.h',
142       ],
143     },
144     {
145       'target_name': 'cma_ipc_streamer',
146       'type': '<(component)',
147       'dependencies': [
148         '../../base/base.gyp:base',
149         '../../media/media.gyp:media',
150         'cma_base',
151       ],
152       'sources': [
153         'cma/ipc_streamer/audio_decoder_config_marshaller.cc',
154         'cma/ipc_streamer/audio_decoder_config_marshaller.h',
155         'cma/ipc_streamer/av_streamer_proxy.cc',
156         'cma/ipc_streamer/av_streamer_proxy.h',
157         'cma/ipc_streamer/coded_frame_provider_host.cc',
158         'cma/ipc_streamer/coded_frame_provider_host.h',
159         'cma/ipc_streamer/decoder_buffer_base_marshaller.cc',
160         'cma/ipc_streamer/decoder_buffer_base_marshaller.h',
161         'cma/ipc_streamer/decrypt_config_marshaller.cc',
162         'cma/ipc_streamer/decrypt_config_marshaller.h',
163         'cma/ipc_streamer/video_decoder_config_marshaller.cc',
164         'cma/ipc_streamer/video_decoder_config_marshaller.h',
165       ],
166     },
167     {
168       'target_name': 'cma_pipeline',
169       'type': '<(component)',
170       'dependencies': [
171         'cma_backend',
172         'cma_base',
173         'media_base',
174         'media_cdm',
175         '../../base/base.gyp:base',
176         '../../crypto/crypto.gyp:crypto',
177         '../../media/media.gyp:media',
178       ],
179       'conditions': [
180         ['chromecast_branding=="Chrome"', {
181           'dependencies': [
182             '../internal/cast_system.gyp:openssl',
183           ],
184         }, {
185           'dependencies': [
186             '../../third_party/boringssl/boringssl.gyp:boringssl',
187           ],
188         }],
189       ],
190       'sources': [
191         'cma/pipeline/audio_pipeline.cc',
192         'cma/pipeline/audio_pipeline.h',
193         'cma/pipeline/audio_pipeline_impl.cc',
194         'cma/pipeline/audio_pipeline_impl.h',
195         'cma/pipeline/av_pipeline_client.cc',
196         'cma/pipeline/av_pipeline_client.h',
197         'cma/pipeline/av_pipeline_impl.cc',
198         'cma/pipeline/av_pipeline_impl.h',
199         'cma/pipeline/decrypt_util.cc',
200         'cma/pipeline/decrypt_util.h',
201         'cma/pipeline/load_type.h',
202         'cma/pipeline/media_pipeline.h',
203         'cma/pipeline/media_pipeline_client.cc',
204         'cma/pipeline/media_pipeline_client.h',
205         'cma/pipeline/media_pipeline_impl.cc',
206         'cma/pipeline/media_pipeline_impl.h',
207         'cma/pipeline/video_pipeline.cc',
208         'cma/pipeline/video_pipeline.h',
209         'cma/pipeline/video_pipeline_client.cc',
210         'cma/pipeline/video_pipeline_client.h',
211         'cma/pipeline/video_pipeline_impl.cc',
212         'cma/pipeline/video_pipeline_impl.h',
213       ],
214     },
215     {
216       'target_name': 'cma_filters',
217       'type': '<(component)',
218       'dependencies': [
219         '../../base/base.gyp:base',
220         '../../media/media.gyp:media',
221         'cma_base',
222       ],
223       'sources': [
224         'cma/filters/cma_renderer.cc',
225         'cma/filters/cma_renderer.h',
226         'cma/filters/demuxer_stream_adapter.cc',
227         'cma/filters/demuxer_stream_adapter.h',
228       ],
229     },
230     {
231       'target_name': 'cast_media',
232       'type': 'none',
233       'dependencies': [
234         'cma_backend',
235         'cma_base',
236         'cma_filters',
237         'cma_ipc',
238         'cma_ipc_streamer',
239         'cma_pipeline',
240         'media_cdm',
241       ],
242     },
243     {
244       'target_name': 'cast_media_unittests',
245       'type': '<(gtest_target_type)',
246       'dependencies': [
247         'cast_media',
248         '../../base/base.gyp:base',
249         '../../base/base.gyp:base_i18n',
250         '../../base/base.gyp:test_support_base',
251         '../../chromecast/chromecast.gyp:cast_metrics_test_support',
252         '../../media/media.gyp:media_test_support',
253         '../../testing/gmock.gyp:gmock',
254         '../../testing/gtest.gyp:gtest',
255         '../../testing/gtest.gyp:gtest_main',
256       ],
257       'sources': [
258         'cma/backend/audio_video_pipeline_device_unittest.cc',
259         'cma/base/balanced_media_task_runner_unittest.cc',
260         'cma/base/buffering_controller_unittest.cc',
261         'cma/base/buffering_frame_provider_unittest.cc',
262         'cma/filters/demuxer_stream_adapter_unittest.cc',
263         'cma/ipc/media_message_fifo_unittest.cc',
264         'cma/ipc/media_message_unittest.cc',
265         'cma/ipc_streamer/av_streamer_unittest.cc',
266         'cma/pipeline/audio_video_pipeline_impl_unittest.cc',
267         'cma/test/frame_generator_for_test.cc',
268         'cma/test/frame_generator_for_test.h',
269         'cma/test/frame_segmenter_for_test.cc',
270         'cma/test/frame_segmenter_for_test.h',
271         'cma/test/media_component_device_feeder_for_test.cc',
272         'cma/test/media_component_device_feeder_for_test.h',
273         'cma/test/mock_frame_consumer.cc',
274         'cma/test/mock_frame_consumer.h',
275         'cma/test/mock_frame_provider.cc',
276         'cma/test/mock_frame_provider.h',
277         'cma/test/run_all_unittests.cc',
278       ],
279     },
280   ],