Extract SIGPIPE ignoring code to a common place.
[chromium-blink-merge.git] / media / media.gyp
blobbee289bc800c940a5a9c4fa9d7188487172b7a62
1 # Copyright (c) 2012 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     'chromium_code': 1,
8     # Override to dynamically link the PulseAudio library.
9     'use_pulseaudio%': 0,
10     # Override to dynamically link the cras (ChromeOS audio) library.
11     'use_cras%': 0,
12     'conditions': [
13       ['OS == "android" or OS == "ios"', {
14         # Android and iOS don't use ffmpeg.
15         'use_ffmpeg%': 0,
16       }, {  # 'OS != "android" and OS != "ios"'
17         'use_ffmpeg%': 1,
18       }],
19     ],
20   },
21   'targets': [
22     {
23       'target_name': 'media',
24       'type': '<(component)',
25       'dependencies': [
26         '../base/base.gyp:base',
27         '../build/temp_gyp/googleurl.gyp:googleurl',
28         '../crypto/crypto.gyp:crypto',
29         '../skia/skia.gyp:skia',
30         '../ui/ui.gyp:ui',
31       ],
32       'defines': [
33         'MEDIA_IMPLEMENTATION',
34       ],
35       'include_dirs': [
36         '..',
37       ],
38       'sources': [
39         'audio/android/audio_manager_android.cc',
40         'audio/android/audio_manager_android.h',
41         'audio/android/opensles_input.cc',
42         'audio/android/opensles_input.h',
43         'audio/android/opensles_output.cc',
44         'audio/android/opensles_output.h',
45         'audio/async_socket_io_handler.h',
46         'audio/async_socket_io_handler_posix.cc',
47         'audio/async_socket_io_handler_win.cc',
48         'audio/audio_buffers_state.cc',
49         'audio/audio_buffers_state.h',
50         'audio/audio_device_name.cc',
51         'audio/audio_device_name.h',
52         'audio/audio_device_thread.cc',
53         'audio/audio_device_thread.h',
54         'audio/audio_input_controller.cc',
55         'audio/audio_input_controller.h',
56         'audio/audio_input_device.cc',
57         'audio/audio_input_device.h',
58         'audio/audio_input_ipc.cc',
59         'audio/audio_input_ipc.h',
60         # TODO(dalecurtis): Temporarily disabled while switching pipeline to use
61         # float, http://crbug.com/114700
62         # 'audio/audio_output_mixer.cc',
63         # 'audio/audio_output_mixer.h',
64         'audio/audio_input_stream_impl.cc',
65         'audio/audio_input_stream_impl.h',
66         'audio/audio_io.h',
67         'audio/audio_manager.cc',
68         'audio/audio_manager.h',
69         'audio/audio_manager_base.cc',
70         'audio/audio_manager_base.h',
71         'audio/audio_output_controller.cc',
72         'audio/audio_output_controller.h',
73         'audio/audio_output_device.cc',
74         'audio/audio_output_device.h',
75         'audio/audio_output_dispatcher.cc',
76         'audio/audio_output_dispatcher.h',
77         'audio/audio_output_dispatcher_impl.cc',
78         'audio/audio_output_dispatcher_impl.h',
79         'audio/audio_output_ipc.cc',
80         'audio/audio_output_ipc.h',
81         'audio/audio_output_proxy.cc',
82         'audio/audio_output_proxy.h',
83         'audio/audio_output_resampler.cc',
84         'audio/audio_output_resampler.h',
85         'audio/audio_util.cc',
86         'audio/audio_util.h',
87         'audio/cross_process_notification.cc',
88         'audio/cross_process_notification.h',
89         'audio/cross_process_notification_posix.cc',
90         'audio/cross_process_notification_win.cc',
91         'audio/fake_audio_input_stream.cc',
92         'audio/fake_audio_input_stream.h',
93         'audio/fake_audio_output_stream.cc',
94         'audio/fake_audio_output_stream.h',
95         'audio/ios/audio_manager_ios.h',
96         'audio/ios/audio_manager_ios.mm',
97         'audio/linux/alsa_input.cc',
98         'audio/linux/alsa_input.h',
99         'audio/linux/alsa_output.cc',
100         'audio/linux/alsa_output.h',
101         'audio/linux/alsa_util.cc',
102         'audio/linux/alsa_util.h',
103         'audio/linux/alsa_wrapper.cc',
104         'audio/linux/alsa_wrapper.h',
105         'audio/linux/audio_manager_linux.cc',
106         'audio/linux/audio_manager_linux.h',
107         'audio/linux/cras_input.cc',
108         'audio/linux/cras_input.h',
109         'audio/linux/cras_output.cc',
110         'audio/linux/cras_output.h',
111         'audio/mac/audio_input_mac.cc',
112         'audio/mac/audio_input_mac.h',
113         'audio/mac/audio_low_latency_input_mac.cc',
114         'audio/mac/audio_low_latency_input_mac.h',
115         'audio/mac/audio_low_latency_output_mac.cc',
116         'audio/mac/audio_low_latency_output_mac.h',
117         'audio/mac/audio_manager_mac.cc',
118         'audio/mac/audio_manager_mac.h',
119         'audio/mac/audio_output_mac.cc',
120         'audio/mac/audio_output_mac.h',
121         'audio/mac/audio_synchronized_mac.cc',
122         'audio/mac/audio_synchronized_mac.h',
123         'audio/mac/audio_unified_mac.cc',
124         'audio/mac/audio_unified_mac.h',
125         'audio/null_audio_sink.cc',
126         'audio/null_audio_sink.h',
127         'audio/openbsd/audio_manager_openbsd.cc',
128         'audio/openbsd/audio_manager_openbsd.h',
129         'audio/pulse/pulse_output.cc',
130         'audio/pulse/pulse_output.h',
131         'audio/sample_rates.cc',
132         'audio/sample_rates.h',
133         'audio/scoped_loop_observer.cc',
134         'audio/scoped_loop_observer.h',
135         'audio/simple_sources.cc',
136         'audio/simple_sources.h',
137         'audio/win/audio_device_listener_win.cc',
138         'audio/win/audio_device_listener_win.h',
139         'audio/win/audio_low_latency_input_win.cc',
140         'audio/win/audio_low_latency_input_win.h',
141         'audio/win/audio_low_latency_output_win.cc',
142         'audio/win/audio_low_latency_output_win.h',
143         'audio/win/audio_manager_win.cc',
144         'audio/win/audio_manager_win.h',
145         'audio/win/audio_unified_win.cc',
146         'audio/win/audio_unified_win.h',
147         'audio/win/avrt_wrapper_win.cc',
148         'audio/win/avrt_wrapper_win.h',
149         'audio/win/device_enumeration_win.cc',
150         'audio/win/device_enumeration_win.h',
151         'audio/win/core_audio_util_win.cc',
152         'audio/win/core_audio_util_win.h',
153         'audio/win/wavein_input_win.cc',
154         'audio/win/wavein_input_win.h',
155         'audio/win/waveout_output_win.cc',
156         'audio/win/waveout_output_win.h',
157         'base/android/cookie_getter.cc',
158         'base/android/cookie_getter.h',
159         'base/android/media_player_bridge_manager.cc',
160         'base/android/media_player_bridge_manager.h',
161         'base/audio_decoder.cc',
162         'base/audio_decoder.h',
163         'base/audio_decoder_config.cc',
164         'base/audio_decoder_config.h',
165         'base/audio_fifo.cc',
166         'base/audio_fifo.h',
167         'base/audio_pull_fifo.cc',
168         'base/audio_pull_fifo.h',
169         'base/audio_renderer.cc',
170         'base/audio_renderer.h',
171         'base/audio_renderer_mixer.cc',
172         'base/audio_renderer_mixer.h',
173         'base/audio_renderer_mixer_input.cc',
174         'base/audio_renderer_mixer_input.h',
175         'base/bind_to_loop.h',
176         'base/bitstream_buffer.h',
177         'base/bit_reader.cc',
178         'base/bit_reader.h',
179         'base/buffers.cc',
180         'base/buffers.h',
181         'base/byte_queue.cc',
182         'base/byte_queue.h',
183         'base/channel_mixer.cc',
184         'base/channel_mixer.h',
185         'base/clock.cc',
186         'base/clock.h',
187         'base/data_buffer.cc',
188         'base/data_buffer.h',
189         'base/data_source.cc',
190         'base/data_source.h',
191         'base/decoder_buffer.cc',
192         'base/decoder_buffer.h',
193         'base/decryptor.cc',
194         'base/decryptor.h',
195         'base/decryptor_client.h',
196         'base/decrypt_config.cc',
197         'base/decrypt_config.h',
198         'base/demuxer.cc',
199         'base/demuxer.h',
200         'base/demuxer_stream.cc',
201         'base/demuxer_stream.h',
202         'base/djb2.cc',
203         'base/djb2.h',
204         'base/filter_collection.cc',
205         'base/filter_collection.h',
206         'base/media.h',
207         'base/media_log.cc',
208         'base/media_log.h',
209         'base/media_log_event.h',
210         'base/media_posix.cc',
211         'base/media_switches.cc',
212         'base/media_switches.h',
213         'base/media_win.cc',
214         'base/message_loop_factory.cc',
215         'base/message_loop_factory.h',
216         'base/multi_channel_resampler.cc',
217         'base/multi_channel_resampler.h',
218         'base/pipeline.cc',
219         'base/pipeline.h',
220         'base/pipeline_status.cc',
221         'base/pipeline_status.h',
222         'base/ranges.cc',
223         'base/ranges.h',
224         'base/seekable_buffer.cc',
225         'base/seekable_buffer.h',
226         'base/serial_runner.cc',
227         'base/serial_runner.h',
228         'base/sinc_resampler.cc',
229         'base/sinc_resampler.h',
230         'base/stream_parser.cc',
231         'base/stream_parser.h',
232         'base/stream_parser_buffer.cc',
233         'base/stream_parser_buffer.h',
234         'base/vector_math.cc',
235         'base/vector_math.h',
236         'base/video_decoder.cc',
237         'base/video_decoder.h',
238         'base/video_decoder_config.cc',
239         'base/video_decoder_config.h',
240         'base/video_frame.cc',
241         'base/video_frame.h',
242         'base/video_renderer.cc',
243         'base/video_renderer.h',
244         'base/video_util.cc',
245         'base/video_util.h',
246         'crypto/aes_decryptor.cc',
247         'crypto/aes_decryptor.h',
248         'ffmpeg/ffmpeg_common.cc',
249         'ffmpeg/ffmpeg_common.h',
250         'filters/audio_file_reader.cc',
251         'filters/audio_file_reader.h',
252         'filters/audio_renderer_algorithm.cc',
253         'filters/audio_renderer_algorithm.h',
254         'filters/audio_renderer_impl.cc',
255         'filters/audio_renderer_impl.h',
256         'filters/blocking_url_protocol.cc',
257         'filters/blocking_url_protocol.h',
258         'filters/chunk_demuxer.cc',
259         'filters/chunk_demuxer.h',
260         'filters/decrypting_audio_decoder.cc',
261         'filters/decrypting_audio_decoder.h',
262         'filters/decrypting_demuxer_stream.cc',
263         'filters/decrypting_demuxer_stream.h',
264         'filters/decrypting_video_decoder.cc',
265         'filters/decrypting_video_decoder.h',
266         'filters/dummy_demuxer.cc',
267         'filters/dummy_demuxer.h',
268         'filters/ffmpeg_audio_decoder.cc',
269         'filters/ffmpeg_audio_decoder.h',
270         'filters/ffmpeg_demuxer.cc',
271         'filters/ffmpeg_demuxer.h',
272         'filters/ffmpeg_glue.cc',
273         'filters/ffmpeg_glue.h',
274         'filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc',
275         'filters/ffmpeg_h264_to_annex_b_bitstream_converter.h',
276         'filters/ffmpeg_video_decoder.cc',
277         'filters/ffmpeg_video_decoder.h',
278         'filters/file_data_source.cc',
279         'filters/file_data_source.h',
280         'filters/gpu_video_decoder.cc',
281         'filters/gpu_video_decoder.h',
282         'filters/h264_to_annex_b_bitstream_converter.cc',
283         'filters/h264_to_annex_b_bitstream_converter.h',
284         'filters/in_memory_url_protocol.cc',
285         'filters/in_memory_url_protocol.h',
286         'filters/skcanvas_video_renderer.cc',
287         'filters/skcanvas_video_renderer.h',
288         'filters/source_buffer_stream.cc',
289         'filters/source_buffer_stream.h',
290         'filters/video_frame_generator.cc',
291         'filters/video_frame_generator.h',
292         'filters/video_renderer_base.cc',
293         'filters/video_renderer_base.h',
294         'video/capture/fake_video_capture_device.cc',
295         'video/capture/fake_video_capture_device.h',
296         'video/capture/linux/video_capture_device_linux.cc',
297         'video/capture/linux/video_capture_device_linux.h',
298         'video/capture/mac/video_capture_device_mac.h',
299         'video/capture/mac/video_capture_device_mac.mm',
300         'video/capture/mac/video_capture_device_qtkit_mac.h',
301         'video/capture/mac/video_capture_device_qtkit_mac.mm',
302         'video/capture/video_capture.h',
303         'video/capture/video_capture_device.h',
304         'video/capture/video_capture_device_dummy.cc',
305         'video/capture/video_capture_device_dummy.h',
306         'video/capture/video_capture_proxy.cc',
307         'video/capture/video_capture_proxy.h',
308         'video/capture/video_capture_types.h',
309         'video/capture/win/filter_base_win.cc',
310         'video/capture/win/filter_base_win.h',
311         'video/capture/win/pin_base_win.cc',
312         'video/capture/win/pin_base_win.h',
313         'video/capture/win/sink_filter_observer_win.h',
314         'video/capture/win/sink_filter_win.cc',
315         'video/capture/win/sink_filter_win.h',
316         'video/capture/win/sink_input_pin_win.cc',
317         'video/capture/win/sink_input_pin_win.h',
318         'video/capture/win/video_capture_device_win.cc',
319         'video/capture/win/video_capture_device_win.h',
320         'video/picture.cc',
321         'video/picture.h',
322         'video/video_decode_accelerator.cc',
323         'video/video_decode_accelerator.h',
324         'webm/webm_cluster_parser.cc',
325         'webm/webm_cluster_parser.h',
326         'webm/webm_constants.h',
327         'webm/webm_content_encodings.cc',
328         'webm/webm_content_encodings.h',
329         'webm/webm_content_encodings_client.cc',
330         'webm/webm_content_encodings_client.h',
331         'webm/webm_info_parser.cc',
332         'webm/webm_info_parser.h',
333         'webm/webm_parser.cc',
334         'webm/webm_parser.h',
335         'webm/webm_stream_parser.cc',
336         'webm/webm_stream_parser.h',
337         'webm/webm_tracks_parser.cc',
338         'webm/webm_tracks_parser.h',
339       ],
340       'direct_dependent_settings': {
341         'include_dirs': [
342           '..',
343         ],
344       },
345       'conditions': [
346         ['arm_neon == 1', {
347           'defines': [
348             'USE_NEON'
349           ],
350         }],
351         ['OS != "ios"', {
352           'dependencies': [
353             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
354             'shared_memory_support',
355             'yuv_convert',
356           ],
357         }],
358         ['use_ffmpeg == 1', {
359           'dependencies': [
360             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
361           ],
362         }, {  # use_ffmpeg == 0
363           # Exclude the sources that depend on ffmpeg.
364           'sources!': [
365             'base/media_posix.cc',
366             'ffmpeg/ffmpeg_common.cc',
367             'ffmpeg/ffmpeg_common.h',
368             'filters/audio_file_reader.cc',
369             'filters/audio_file_reader.h',
370             'filters/chunk_demuxer.cc',
371             'filters/chunk_demuxer.h',
372             'filters/blocking_url_protocol.cc',
373             'filters/blocking_url_protocol.h',
374             'filters/ffmpeg_audio_decoder.cc',
375             'filters/ffmpeg_audio_decoder.h',
376             'filters/ffmpeg_demuxer.cc',
377             'filters/ffmpeg_demuxer.h',
378             'filters/ffmpeg_glue.cc',
379             'filters/ffmpeg_glue.h',
380             'filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc',
381             'filters/ffmpeg_h264_to_annex_b_bitstream_converter.h',
382             'filters/ffmpeg_video_decoder.cc',
383             'filters/ffmpeg_video_decoder.h',
384             'webm/webm_cluster_parser.cc',
385             'webm/webm_cluster_parser.h',
386             'webm/webm_stream_parser.cc',
387             'webm/webm_stream_parser.h',
388           ],
389         }],
390         ['OS == "ios"', {
391           'includes': [
392             # For shared_memory_support_sources variable.
393             'shared_memory_support.gypi',
394           ],
395           'sources': [
396             'base/media_stub.cc',
397             # These sources are normally built via a dependency on the
398             # shared_memory_support target, but that target is not built on iOS.
399             # Instead, directly build only the files that are needed for iOS.
400             '<@(shared_memory_support_sources)',
401           ],
402           'sources/': [
403             # iOS support is limited to audio input only.
404             ['exclude', '.*'],
405             ['include', '^audio/audio_buffers_state\\.'],
406             ['include', '^audio/audio_input_controller\\.'],
407             ['include', '^audio/audio_io\\.h$'],
408             ['include', '^audio/audio_manager\\.'],
409             ['include', '^audio/audio_manager_base\\.'],
410             ['include', '^audio/audio_parameters\\.'],
411             ['include', '^audio/fake_audio_input_stream\\.'],
412             ['include', '^audio/fake_audio_output_stream\\.'],
413             ['include', '^audio/ios/audio_manager_ios\\.'],
414             ['include', '^base/audio_bus\\.'],
415             ['include', '^base/channel_layout\\.'],
416             ['include', '^base/media\\.h$'],
417             ['include', '^base/media_stub\\.cc$'],
418           ],
419           'link_settings': {
420             'libraries': [
421               '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
422               '$(SDKROOT)/System/Library/Frameworks/AVFoundation.framework',
423               '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
424             ],
425           },
426         }],
427         ['OS == "android"', {
428           'sources': [
429             'base/media_stub.cc',
430           ],
431           'link_settings': {
432             'libraries': [
433               '-lOpenSLES',
434             ],
435           },
436         }],
437         # A simple WebM encoder for animated avatars on ChromeOS.
438         ['chromeos==1', {
439           'dependencies': [
440             '../third_party/libvpx/libvpx.gyp:libvpx',
441             '../third_party/libyuv/libyuv.gyp:libyuv',
442           ],
443           'sources': [
444             'webm/chromeos/ebml_writer.cc',
445             'webm/chromeos/ebml_writer.h',
446             'webm/chromeos/webm_encoder.cc',
447             'webm/chromeos/webm_encoder.h',
448           ],
449         }],
450         ['OS=="linux" or OS=="freebsd" or OS=="solaris"', {
451           'link_settings': {
452             'libraries': [
453               '-lasound',
454             ],
455           },
456         }],
457         ['OS=="openbsd"', {
458           'sources/': [ ['exclude', '/alsa_' ],
459                         ['exclude', '/audio_manager_linux' ] ],
460           'link_settings': {
461             'libraries': [
462             ],
463           },
464         }],
465         ['OS!="openbsd"', {
466           'sources!': [
467             'audio/openbsd/audio_manager_openbsd.cc',
468             'audio/openbsd/audio_manager_openbsd.h',
469           ],
470         }],
471         ['OS=="linux"', {
472           'variables': {
473             'conditions': [
474               ['sysroot!=""', {
475                 'pkg-config': '../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
476               }, {
477                 'pkg-config': 'pkg-config'
478               }],
479             ],
480           },
481           'conditions': [
482             ['use_cras == 1', {
483               'cflags': [
484                 '<!@(<(pkg-config) --cflags libcras)',
485               ],
486               'link_settings': {
487                 'libraries': [
488                   '<!@(<(pkg-config) --libs libcras)',
489                 ],
490               },
491               'defines': [
492                 'USE_CRAS',
493               ],
494             }, {  # else: use_cras == 0
495               'sources!': [
496                 'audio/linux/cras_input.cc',
497                 'audio/linux/cras_input.h',
498                 'audio/linux/cras_output.cc',
499                 'audio/linux/cras_output.h',
500               ],
501             }],
502           ],
503         }],
504         ['os_posix == 1', {
505           'conditions': [
506             ['use_pulseaudio == 1', {
507               'cflags': [
508                 '<!@(pkg-config --cflags libpulse)',
509               ],
510               'link_settings': {
511                 'libraries': [
512                   '<!@(pkg-config --libs-only-l libpulse)',
513                 ],
514               },
515               'defines': [
516                 'USE_PULSEAUDIO',
517               ],
518             }, {  # else: use_pulseaudio == 0
519               'sources!': [
520                 'audio/pulse/pulse_output.cc',
521                 'audio/pulse/pulse_output.h',
522               ],
523             }],
524           ],
525         }],
526         ['os_posix == 1 and OS != "android"', {
527           # Video capture isn't supported in Android yet.
528           'sources!': [
529             'video/capture/video_capture_device_dummy.cc',
530             'video/capture/video_capture_device_dummy.h',
531           ],
532         }],
533         ['OS=="mac"', {
534           'link_settings': {
535             'libraries': [
536               '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework',
537               '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
538               '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
539               '$(SDKROOT)/System/Library/Frameworks/CoreVideo.framework',
540               '$(SDKROOT)/System/Library/Frameworks/QTKit.framework',
541             ],
542           },
543         }],
544         ['OS=="win"', {
545           'sources!': [
546             'audio/pulse/pulse_output.cc',
547             'audio/pulse/pulse_output.h',
548             'video/capture/video_capture_device_dummy.cc',
549             'video/capture/video_capture_device_dummy.h',
550           ],
551         }],
552         ['proprietary_codecs==1 or branding=="Chrome"', {
553           'sources': [
554             'mp4/aac.cc',
555             'mp4/aac.h',
556             'mp4/avc.cc',
557             'mp4/avc.h',
558             'mp4/box_definitions.cc',
559             'mp4/box_definitions.h',
560             'mp4/box_reader.cc',
561             'mp4/box_reader.h',
562             'mp4/cenc.cc',
563             'mp4/cenc.h',
564             'mp4/es_descriptor.cc',
565             'mp4/es_descriptor.h',
566             'mp4/mp4_stream_parser.cc',
567             'mp4/mp4_stream_parser.h',
568             'mp4/offset_byte_queue.cc',
569             'mp4/offset_byte_queue.h',
570             'mp4/track_run_iterator.cc',
571             'mp4/track_run_iterator.h',
572           ],
573         }],
574       ],
575       'target_conditions': [
576         ['OS == "ios"', {
577           'sources/': [
578             # Pull in specific Mac files for iOS (which have been filtered out
579             # by file name rules).
580             ['include', '^audio/mac/audio_input_mac\\.'],
581           ],
582         }],
583       ],
584     },
585     {
586       'target_name': 'media_unittests',
587       'type': '<(gtest_target_type)',
588       'dependencies': [
589         'media',
590         'media_test_support',
591         '../base/base.gyp:base',
592         '../base/base.gyp:base_i18n',
593         '../base/base.gyp:test_support_base',
594         '../skia/skia.gyp:skia',
595         '../testing/gmock.gyp:gmock',
596         '../testing/gtest.gyp:gtest',
597         '../ui/ui.gyp:ui',
598       ],
599       'sources': [
600         'audio/async_socket_io_handler_unittest.cc',
601         'audio/audio_input_controller_unittest.cc',
602         'audio/audio_input_device_unittest.cc',
603         'audio/audio_input_unittest.cc',
604         'audio/audio_input_volume_unittest.cc',
605         'audio/audio_low_latency_input_output_unittest.cc',
606         'audio/audio_output_controller_unittest.cc',
607         'audio/audio_output_device_unittest.cc',
608         'audio/audio_output_proxy_unittest.cc',
609         'audio/audio_parameters_unittest.cc',
610         'audio/audio_util_unittest.cc',
611         'audio/cross_process_notification_unittest.cc',
612         'audio/fake_audio_output_stream_unittest.cc',
613         'audio/ios/audio_manager_ios_unittest.cc',
614         'audio/linux/alsa_output_unittest.cc',
615         'audio/mac/audio_low_latency_input_mac_unittest.cc',
616         'audio/mac/audio_output_mac_unittest.cc',
617         'audio/simple_sources_unittest.cc',
618         'audio/win/audio_device_listener_win_unittest.cc',
619         'audio/win/audio_low_latency_input_win_unittest.cc',
620         'audio/win/audio_low_latency_output_win_unittest.cc',
621         'audio/win/audio_output_win_unittest.cc',
622         'audio/win/audio_unified_win_unittest.cc',
623         'audio/win/core_audio_util_win_unittest.cc',
624         'base/audio_bus_unittest.cc',
625         'base/audio_fifo_unittest.cc',
626         'base/audio_pull_fifo_unittest.cc',
627         'base/audio_renderer_mixer_input_unittest.cc',
628         'base/audio_renderer_mixer_unittest.cc',
629         'base/bit_reader_unittest.cc',
630         'base/bind_to_loop_unittest.cc',
631         'base/buffers_unittest.cc',
632         'base/channel_mixer_unittest.cc',
633         'base/clock_unittest.cc',
634         'base/data_buffer_unittest.cc',
635         'base/decoder_buffer_unittest.cc',
636         'base/djb2_unittest.cc',
637         'base/filter_collection_unittest.cc',
638         'base/gmock_callback_support_unittest.cc',
639         'base/multi_channel_resampler_unittest.cc',
640         'base/pipeline_unittest.cc',
641         'base/ranges_unittest.cc',
642         'base/run_all_unittests.cc',
643         'base/seekable_buffer_unittest.cc',
644         'base/sinc_resampler_unittest.cc',
645         'base/test_data_util.cc',
646         'base/test_data_util.h',
647         'base/vector_math_testing.h',
648         'base/vector_math_unittest.cc',
649         'base/video_frame_unittest.cc',
650         'base/video_util_unittest.cc',
651         'base/yuv_convert_unittest.cc',
652         'crypto/aes_decryptor_unittest.cc',
653         'ffmpeg/ffmpeg_common_unittest.cc',
654         'filters/audio_renderer_algorithm_unittest.cc',
655         'filters/audio_renderer_impl_unittest.cc',
656         'filters/blocking_url_protocol_unittest.cc',
657         'filters/chunk_demuxer_unittest.cc',
658         'filters/decrypting_audio_decoder_unittest.cc',
659         'filters/decrypting_demuxer_stream_unittest.cc',
660         'filters/decrypting_video_decoder_unittest.cc',
661         'filters/ffmpeg_audio_decoder_unittest.cc',
662         'filters/ffmpeg_decoder_unittest.h',
663         'filters/ffmpeg_demuxer_unittest.cc',
664         'filters/ffmpeg_glue_unittest.cc',
665         'filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc',
666         'filters/ffmpeg_video_decoder_unittest.cc',
667         'filters/file_data_source_unittest.cc',
668         'filters/h264_to_annex_b_bitstream_converter_unittest.cc',
669         'filters/pipeline_integration_test.cc',
670         'filters/pipeline_integration_test_base.cc',
671         'filters/skcanvas_video_renderer_unittest.cc',
672         'filters/source_buffer_stream_unittest.cc',
673         'filters/video_renderer_base_unittest.cc',
674         'video/capture/video_capture_device_unittest.cc',
675         'webm/cluster_builder.cc',
676         'webm/cluster_builder.h',
677         'webm/webm_cluster_parser_unittest.cc',
678         'webm/webm_content_encodings_client_unittest.cc',
679         'webm/webm_parser_unittest.cc',
680       ],
681       'conditions': [
682         ['arm_neon == 1', {
683           'defines': [
684             'USE_NEON'
685           ],
686         }],
687         ['OS != "ios"', {
688           'dependencies': [
689             'shared_memory_support',
690             'yuv_convert',
691           ],
692         }],
693         ['use_ffmpeg == 1', {
694           'dependencies': [
695             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
696           ],
697         }],
698         ['os_posix==1 and OS!="mac" and OS!="ios"', {
699           'conditions': [
700             ['linux_use_tcmalloc==1', {
701               'dependencies': [
702                 '../base/allocator/allocator.gyp:allocator',
703               ],
704             }],
705           ],
706         }],
707         ['OS == "ios"', {
708           'sources/': [
709             ['exclude', '.*'],
710             ['include', '^audio/audio_input_controller_unittest\\.cc$'],
711             ['include', '^audio/audio_input_unittest\\.cc$'],
712             ['include', '^audio/audio_parameters_unittest\\.cc$'],
713             ['include', '^audio/ios/audio_manager_ios_unittest\\.cc$'],
714             ['include', '^base/mock_reader\\.h$'],
715             ['include', '^base/run_all_unittests\\.cc$'],
716           ],
717         }],
718         ['OS=="android"', {
719           'sources!': [
720             'audio/audio_input_volume_unittest.cc',
721             'base/test_data_util.cc',
722             'base/test_data_util.h',
723             'ffmpeg/ffmpeg_common_unittest.cc',
724             'filters/blocking_url_protocol_unittest.cc',
725             'filters/chunk_demuxer_unittest.cc',
726             'filters/ffmpeg_audio_decoder_unittest.cc',
727             'filters/ffmpeg_demuxer_unittest.cc',
728             'filters/ffmpeg_glue_unittest.cc',
729             'filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc',
730             'filters/ffmpeg_video_decoder_unittest.cc',
731             'filters/pipeline_integration_test.cc',
732             'filters/pipeline_integration_test_base.cc',
733             'mp4/mp4_stream_parser_unittest.cc',
734             'webm/webm_cluster_parser_unittest.cc',
735           ],
736           'conditions': [
737             ['gtest_target_type == "shared_library"', {
738               'dependencies': [
739                 '../testing/android/native_test.gyp:native_test_native_code',
740               ],
741             }],
742           ],
743         }],
744         ['OS == "linux"', {
745           'conditions': [
746             ['use_cras == 1', {
747               'sources': [
748                 'audio/linux/cras_input_unittest.cc',
749                 'audio/linux/cras_output_unittest.cc',
750               ],
751               'defines': [
752                 'USE_CRAS',
753               ],
754             }],
755           ],
756         }],
757         [ 'target_arch=="ia32" or target_arch=="x64"', {
758           'sources': [
759             'base/simd/convert_rgb_to_yuv_unittest.cc',
760           ],
761         }],
762         ['proprietary_codecs==1 or branding=="Chrome"', {
763           'sources': [
764             'mp4/aac_unittest.cc',
765             'mp4/avc_unittest.cc',
766             'mp4/box_reader_unittest.cc',
767             'mp4/es_descriptor_unittest.cc',
768             'mp4/mp4_stream_parser_unittest.cc',
769             'mp4/offset_byte_queue_unittest.cc',
770             'mp4/track_run_iterator_unittest.cc',
771           ],
772         }],
773       ],
774     },
775     {
776       'target_name': 'media_test_support',
777       'type': 'static_library',
778       'dependencies': [
779         'media',
780         '../base/base.gyp:base',
781         '../testing/gmock.gyp:gmock',
782         '../testing/gtest.gyp:gtest',
783       ],
784       'sources': [
785         'audio/mock_audio_manager.cc',
786         'audio/mock_audio_manager.h',
787         'audio/test_audio_input_controller_factory.cc',
788         'audio/test_audio_input_controller_factory.h',
789         'base/fake_audio_render_callback.cc',
790         'base/fake_audio_render_callback.h',
791         'base/gmock_callback_support.h',
792         'base/mock_audio_renderer_sink.cc',
793         'base/mock_audio_renderer_sink.h',
794         'base/mock_callback.cc',
795         'base/mock_callback.h',
796         'base/mock_data_source_host.cc',
797         'base/mock_data_source_host.h',
798         'base/mock_demuxer_host.cc',
799         'base/mock_demuxer_host.h',
800         'base/mock_filters.cc',
801         'base/mock_filters.h',
802       ],
803     },
804   ],
805   'conditions': [
806     ['OS != "ios"', {
807       'targets': [
808         {
809           # Minimal target for NaCl and other renderer side media clients which
810           # only need to send audio data across the shared memory to the browser
811           # process.
812           'target_name': 'shared_memory_support',
813           'type': '<(component)',
814           'dependencies': [
815             '../base/base.gyp:base',
816           ],
817           'defines': [
818             'MEDIA_IMPLEMENTATION',
819           ],
820           'include_dirs': [
821             '..',
822           ],
823           'includes': [
824             'shared_memory_support.gypi',
825           ],
826           'sources': [
827             '<@(shared_memory_support_sources)',
828           ],
829         },
830         {
831           'target_name': 'yuv_convert',
832           'type': 'static_library',
833           'include_dirs': [
834             '..',
835           ],
836           'conditions': [
837             [ 'target_arch == "ia32" or target_arch == "x64"', {
838               'dependencies': [
839                 'yuv_convert_simd_x86',
840               ],
841             }],
842             [ 'target_arch == "arm" or target_arch == "mipsel"', {
843               'dependencies': [
844                 'yuv_convert_simd_c',
845               ],
846             }],
847           ],
848           'sources': [
849             'base/yuv_convert.cc',
850             'base/yuv_convert.h',
851           ],
852         },
853         {
854           'target_name': 'yuv_convert_simd_x86',
855           'type': 'static_library',
856           'include_dirs': [
857             '..',
858           ],
859           'sources': [
860             'base/simd/convert_rgb_to_yuv_c.cc',
861             'base/simd/convert_rgb_to_yuv_sse2.cc',
862             'base/simd/convert_rgb_to_yuv_ssse3.asm',
863             'base/simd/convert_rgb_to_yuv_ssse3.cc',
864             'base/simd/convert_rgb_to_yuv_ssse3.inc',
865             'base/simd/convert_yuv_to_rgb_c.cc',
866             'base/simd/convert_yuv_to_rgb_mmx.asm',
867             'base/simd/convert_yuv_to_rgb_mmx.inc',
868             'base/simd/convert_yuv_to_rgb_sse.asm',
869             'base/simd/convert_yuv_to_rgb_x86.cc',
870             'base/simd/filter_yuv.h',
871             'base/simd/filter_yuv_c.cc',
872             'base/simd/filter_yuv_mmx.cc',
873             'base/simd/filter_yuv_sse2.cc',
874             'base/simd/linear_scale_yuv_to_rgb_mmx.asm',
875             'base/simd/linear_scale_yuv_to_rgb_mmx.inc',
876             'base/simd/linear_scale_yuv_to_rgb_sse.asm',
877             'base/simd/scale_yuv_to_rgb_mmx.asm',
878             'base/simd/scale_yuv_to_rgb_mmx.inc',
879             'base/simd/scale_yuv_to_rgb_sse.asm',
880             'base/simd/yuv_to_rgb_table.cc',
881             'base/simd/yuv_to_rgb_table.h',
882           ],
883           'conditions': [
884             [ 'target_arch == "x64"', {
885               # Source files optimized for X64 systems.
886               'sources': [
887                 'base/simd/linear_scale_yuv_to_rgb_mmx_x64.asm',
888                 'base/simd/scale_yuv_to_rgb_sse2_x64.asm',
889               ],
890             }],
891             [ 'os_posix == 1 and OS != "mac" and OS != "android"', {
892               'cflags': [
893                 '-msse2',
894               ],
895             }],
896             [ 'OS == "mac"', {
897               'configurations': {
898                 'Debug': {
899                   'xcode_settings': {
900                     # gcc on the mac builds horribly unoptimized sse code in
901                     # debug mode. Since this is rarely going to be debugged,
902                     # run with full optimizations in Debug as well as Release.
903                     'GCC_OPTIMIZATION_LEVEL': '3',  # -O3
904                    },
905                  },
906               },
907             }],
908             [ 'OS=="win"', {
909               'variables': {
910                 'yasm_flags': [
911                   '-DWIN32',
912                   '-DMSVC',
913                   '-DCHROMIUM',
914                   '-Isimd',
915                 ],
916               },
917             }],
918             [ 'OS=="mac"', {
919               'variables': {
920                 'conditions': [
921                   [ 'target_arch=="ia32"', {
922                     'yasm_flags': [
923                       '-DPREFIX',
924                       '-DMACHO',
925                       '-DCHROMIUM',
926                       '-Isimd',
927                     ],
928                   }, {
929                     'yasm_flags': [
930                       '-DPREFIX',
931                       '-DARCH_X86_64',
932                       '-DMACHO',
933                       '-DCHROMIUM',
934                       '-Isimd',
935                     ],
936                   }],
937                 ],
938               },
939             }],
940             [ 'os_posix==1 and OS!="mac"', {
941               'variables': {
942                 'conditions': [
943                   [ 'target_arch=="ia32"', {
944                     'yasm_flags': [
945                       '-DX86_32',
946                       '-DELF',
947                       '-DCHROMIUM',
948                       '-Isimd',
949                     ],
950                   }, {
951                     'yasm_flags': [
952                       '-DARCH_X86_64',
953                       '-DELF',
954                       '-DPIC',
955                       '-DCHROMIUM',
956                       '-Isimd',
957                     ],
958                   }],
959                 ],
960               },
961             }],
962           ],
963           'variables': {
964             'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/media',
965           },
966           'msvs_2010_disable_uldi_when_referenced': 1,
967           'includes': [
968             '../third_party/yasm/yasm_compile.gypi',
969           ],
970         },
971         {
972           'target_name': 'yuv_convert_simd_c',
973           'type': 'static_library',
974           'include_dirs': [
975             '..',
976           ],
977           'sources': [
978             'base/simd/convert_rgb_to_yuv.h',
979             'base/simd/convert_rgb_to_yuv_c.cc',
980             'base/simd/convert_yuv_to_rgb.h',
981             'base/simd/convert_yuv_to_rgb_c.cc',
982             'base/simd/filter_yuv.h',
983             'base/simd/filter_yuv_c.cc',
984             'base/simd/yuv_to_rgb_table.cc',
985             'base/simd/yuv_to_rgb_table.h',
986           ],
987         },
988         {
989           'target_name': 'scaler_bench',
990           'type': 'executable',
991           'dependencies': [
992             'media',
993             'yuv_convert',
994             '../base/base.gyp:base',
995             '../skia/skia.gyp:skia',
996             '../ui/ui.gyp:ui',
997           ],
998           'sources': [
999             'tools/scaler_bench/scaler_bench.cc',
1000           ],
1001         },
1002         {
1003           'target_name': 'qt_faststart',
1004           'type': 'executable',
1005           'sources': [
1006             'tools/qt_faststart/qt_faststart.c'
1007           ],
1008         },
1009         {
1010           'target_name': 'seek_tester',
1011           'type': 'executable',
1012           'dependencies': [
1013             'media',
1014             '../base/base.gyp:base',
1015           ],
1016           'sources': [
1017             'tools/seek_tester/seek_tester.cc',
1018           ],
1019         },
1020       ],
1021     }],
1022     ['OS=="win"', {
1023       'targets': [
1024         {
1025           'target_name': 'player_wtl',
1026           'type': 'executable',
1027           'dependencies': [
1028             'media',
1029             'yuv_convert',
1030             '../base/base.gyp:base',
1031             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
1032             '../ui/ui.gyp:ui',
1033           ],
1034           'include_dirs': [
1035             '<(DEPTH)/third_party/wtl/include',
1036           ],
1037           'sources': [
1038             'tools/player_wtl/list.h',
1039             'tools/player_wtl/mainfrm.h',
1040             'tools/player_wtl/movie.cc',
1041             'tools/player_wtl/movie.h',
1042             'tools/player_wtl/player_wtl.cc',
1043             'tools/player_wtl/player_wtl.rc',
1044             'tools/player_wtl/props.h',
1045             'tools/player_wtl/resource.h',
1046             'tools/player_wtl/seek.h',
1047             'tools/player_wtl/view.h',
1048           ],
1049           'msvs_settings': {
1050             'VCLinkerTool': {
1051               'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
1052             },
1053           },
1054           'defines': [
1055             '_CRT_SECURE_NO_WARNINGS=1',
1056           ],
1057         },
1058       ],
1059     }],
1060     ['(OS == "win" or toolkit_uses_gtk == 1) and use_aura != 1', {
1061       'targets': [
1062         {
1063           'target_name': 'shader_bench',
1064           'type': 'executable',
1065           'dependencies': [
1066             'media',
1067             'yuv_convert',
1068             '../base/base.gyp:base',
1069             '../ui/gl/gl.gyp:gl',
1070             '../ui/ui.gyp:ui',
1071           ],
1072           'sources': [
1073             'tools/shader_bench/cpu_color_painter.cc',
1074             'tools/shader_bench/cpu_color_painter.h',
1075             'tools/shader_bench/gpu_color_painter.cc',
1076             'tools/shader_bench/gpu_color_painter.h',
1077             'tools/shader_bench/gpu_painter.cc',
1078             'tools/shader_bench/gpu_painter.h',
1079             'tools/shader_bench/painter.cc',
1080             'tools/shader_bench/painter.h',
1081             'tools/shader_bench/shader_bench.cc',
1082             'tools/shader_bench/window.cc',
1083             'tools/shader_bench/window.h',
1084           ],
1085           'conditions': [
1086             ['toolkit_uses_gtk == 1', {
1087               'dependencies': [
1088                 '../build/linux/system.gyp:gtk',
1089               ],
1090               'sources': [
1091                 'tools/shader_bench/window_linux.cc',
1092               ],
1093             }],
1094             ['OS=="win"', {
1095               'dependencies': [
1096                 '../third_party/angle/src/build_angle.gyp:libEGL',
1097                 '../third_party/angle/src/build_angle.gyp:libGLESv2',
1098               ],
1099               'sources': [
1100                 'tools/shader_bench/window_win.cc',
1101               ],
1102             }],
1103           ],
1104         },
1105       ],
1106     }],
1107     ['OS == "linux" and target_arch != "arm" and target_arch != "mipsel"', {
1108       'targets': [
1109         {
1110           'target_name': 'tile_render_bench',
1111           'type': 'executable',
1112           'dependencies': [
1113             '../base/base.gyp:base',
1114             '../ui/gl/gl.gyp:gl',
1115           ],
1116           'libraries': [
1117             '-lGL',
1118             '-ldl',
1119           ],
1120           'sources': [
1121             'tools/tile_render_bench/tile_render_bench.cc',
1122           ],
1123         },
1124       ],
1125     }],
1126     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
1127       'targets': [
1128         {
1129           'target_name': 'player_x11',
1130           'type': 'executable',
1131           'dependencies': [
1132             'media',
1133             'yuv_convert',
1134             '../base/base.gyp:base',
1135             '../ui/gl/gl.gyp:gl',
1136             '../ui/ui.gyp:ui',
1137           ],
1138           'link_settings': {
1139             'libraries': [
1140               '-ldl',
1141               '-lX11',
1142               '-lXrender',
1143               '-lXext',
1144             ],
1145           },
1146           'sources': [
1147             'tools/player_x11/data_source_logger.cc',
1148             'tools/player_x11/data_source_logger.h',
1149             'tools/player_x11/gl_video_renderer.cc',
1150             'tools/player_x11/gl_video_renderer.h',
1151             'tools/player_x11/player_x11.cc',
1152             'tools/player_x11/x11_video_renderer.cc',
1153             'tools/player_x11/x11_video_renderer.h',
1154           ],
1155         },
1156       ],
1157     }],
1158     # Special target to wrap a gtest_target_type==shared_library
1159     # media_unittests into an android apk for execution.
1160     ['OS == "android" and gtest_target_type == "shared_library"', {
1161       'targets': [
1162         {
1163           'target_name': 'media_unittests_apk',
1164           'type': 'none',
1165           'dependencies': [
1166             'media_java',
1167             'media_unittests',
1168           ],
1169           'variables': {
1170             'test_suite_name': 'media_unittests',
1171             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)media_unittests<(SHARED_LIB_SUFFIX)',
1172           },
1173           'includes': [ '../build/apk_test.gypi' ],
1174         },
1175       ],
1176     }],
1177     ['OS == "android"', {
1178       'targets': [
1179          {
1180           'target_name': 'media_player_jni_headers',
1181           'type': 'none',
1182           'variables': {
1183             'jni_gen_dir': 'media',
1184             'input_java_class': 'android/media/MediaPlayer.class',
1185             'input_jar_file': '<(android_sdk)/android.jar',
1186           },
1187           'includes': [ '../build/jar_file_jni_generator.gypi' ],
1188         },
1189         {
1190           'target_name': 'player_android_jni_headers',
1191           'type': 'none',
1192           'dependencies': [
1193             'media_player_jni_headers',
1194           ],
1195           'sources': [
1196             'base/android/java/src/org/chromium/media/MediaPlayerBridge.java',
1197             'base/android/java/src/org/chromium/media/MediaPlayerListener.java',
1198           ],
1199           'variables': {
1200             'jni_gen_dir': 'media',
1201           },
1202           'includes': [ '../build/jni_generator.gypi' ],
1203         },
1204         {
1205           'target_name': 'player_android',
1206           'type': 'static_library',
1207           'sources': [
1208             'base/android/media_jni_registrar.cc',
1209             'base/android/media_jni_registrar.h',
1210             'base/android/media_player_bridge.cc',
1211             'base/android/media_player_bridge.h',
1212             'base/android/media_player_listener.cc',
1213             'base/android/media_player_listener.h',
1214           ],
1215           'dependencies': [
1216             '../base/base.gyp:base',
1217             'player_android_jni_headers',
1218           ],
1219           'include_dirs': [
1220             '<(SHARED_INTERMEDIATE_DIR)/media',
1221           ],
1222         },
1223         {
1224           'target_name': 'media_java',
1225           'type': 'none',
1226           'dependencies': [
1227             '../base/base.gyp:base',
1228           ],
1229           'export_dependent_settings': [
1230             '../base/base.gyp:base',
1231           ],
1232           'variables': {
1233             'package_name': 'media',
1234             'java_in_dir': 'base/android/java',
1235           },
1236           'includes': [ '../build/java.gypi' ],
1237         },
1239       ],
1240     }],
1241     ['OS != "android" and OS != "ios"', {
1242       # Android and iOS do not use ffmpeg, so disable the targets which require
1243       # it.
1244       'targets': [
1245         {
1246           'target_name': 'ffmpeg_unittests',
1247           'type': 'executable',
1248           'dependencies': [
1249             '../base/base.gyp:base',
1250             '../base/base.gyp:base_i18n',
1251             '../base/base.gyp:test_support_base',
1252             '../base/base.gyp:test_support_perf',
1253             '../testing/gtest.gyp:gtest',
1254             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
1255             'media',
1256             'media_test_support',
1257           ],
1258           'sources': [
1259             'ffmpeg/ffmpeg_unittest.cc',
1260           ],
1261           'conditions': [
1262             ['toolkit_uses_gtk == 1', {
1263               'dependencies': [
1264                 # Needed for the following #include chain:
1265                 #   base/run_all_unittests.cc
1266                 #   ../base/test_suite.h
1267                 #   gtk/gtk.h
1268                 '../build/linux/system.gyp:gtk',
1269               ],
1270               'conditions': [
1271                 ['linux_use_tcmalloc==1', {
1272                   'dependencies': [
1273                     '../base/allocator/allocator.gyp:allocator',
1274                   ],
1275                 }],
1276               ],
1277             }],
1278           ],
1279         },
1280         {
1281           'target_name': 'ffmpeg_regression_tests',
1282           'type': 'executable',
1283           'dependencies': [
1284             '../base/base.gyp:test_support_base',
1285             '../testing/gmock.gyp:gmock',
1286             '../testing/gtest.gyp:gtest',
1287             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
1288             'media',
1289             'media_test_support',
1290           ],
1291           'sources': [
1292             'base/run_all_unittests.cc',
1293             'base/test_data_util.cc',
1294             'ffmpeg/ffmpeg_regression_tests.cc',
1295             'filters/pipeline_integration_test_base.cc',
1296           ],
1297           'conditions': [
1298             ['os_posix==1 and OS!="mac"', {
1299               'conditions': [
1300                 ['linux_use_tcmalloc==1', {
1301                   'dependencies': [
1302                     '../base/allocator/allocator.gyp:allocator',
1303                   ],
1304                 }],
1305               ],
1306             }],
1307           ],
1308         },
1309         {
1310           'target_name': 'ffmpeg_tests',
1311           'type': 'executable',
1312           'dependencies': [
1313             '../base/base.gyp:base',
1314             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
1315             'media',
1316           ],
1317           'sources': [
1318             'test/ffmpeg_tests/ffmpeg_tests.cc',
1319           ],
1320         },
1321         {
1322           'target_name': 'media_bench',
1323           'type': 'executable',
1324           'dependencies': [
1325             '../base/base.gyp:base',
1326             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
1327             'media',
1328           ],
1329           'sources': [
1330             'tools/media_bench/media_bench.cc',
1331           ],
1332         },
1333       ],
1334     }]
1335   ],