Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1017)

Side by Side Diff: media/BUILD.gn

Issue 268713006: Convert media.gyp on Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 世界革命をするために Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 import("//build/config/arm.gni")
6 import("//build/config/ui.gni")
7 import("//build/config/linux/pkg_config.gni")
8
9 # These variables need to be args.
10
11 # Override to dynamically link the cras (ChromeOS audio) library.
12 use_cras = false
13
14 # Option e.g. for Linux distributions to link pulseaudio directly
15 # (DT_NEEDED) instead of using dlopen. This helps with automated
16 # detection of ABI mismatches and prevents silent errors.
17 #
18 # TODO(ajwong): Why is this prefixed "linux_"?
19 linux_link_pulseaudio = false
20
21 # TODO(ajwong): Enable libvpx once that's converted.
22 media_use_ffmpeg = true
23 media_use_libvpx = false
24 if (is_android) {
25 # Android doesn't use ffmpeg or libvpx.
26 media_use_ffmpeg = false
27 media_use_libvpx = false
28 }
29
30 # TODO(ajwong): how to disable embedded?
31 # Original conditional: (OS=="linux" or OS=="freebsd" or OS=="solaris") and embe dded!=1
32 use_alsa = false
33 use_pulseaudio = false
34 if (is_posix) {
35 use_alsa = true
36 if (!use_cras) {
37 use_pulseaudio = true
38 }
39 }
40
41 # TODO(ajwong): is_openbsd should be a platform define.
42 is_openbsd = false
43
44 # TODO(ajwong): This should be branding controlled?
45 proprietary_codecs = false
46
47 # TODO(ajwong): Where are these coming from?jk
48 enable_mpeg2ts_stream_parser = false
49 enable_browser_cdms = false
50
51 # Common configuration for targets in the media directory.
52 # NOT for exporting.
53 config("media_config") {
54 defines = [ "MEDIA_IMPLEMENTATION" ]
55 if (cpu_arch == "arm" && arm_use_neon) {
56 defines += [ "USE_NEON" ]
57 }
58 if (!media_use_libvpx) {
59 defines += [ "MEDIA_DISABLE_LIBVPX" ]
60 }
61 if (use_pulseaudio) {
62 defines += [ "USE_PULSEAUDIO" ]
63 if (linux_link_pulseaudio) {
64 defines += [ "DLOPEN_PULSEAUDIO" ]
65 }
66 }
67 if (use_cras) {
68 defines = [ "USE_CRAS" ]
69 }
70 if (enable_mpeg2ts_stream_parser) {
71 defines += [ "ENABLE_MPEG2TS_STREAM_PARSER" ]
72 }
73 }
74
75 if (is_win) {
76 config("media_dependent_config") {
77 ldflags += [
78 "/DELAYLOAD:mf.dll",
79 "/DELAYLOAD:mfplat.dll",
80 "/DELAYLOAD:mfreadwrite.dll",
81 ]
82 }
83 }
84
85 if (!linux_link_pulseaudio) {
86 # When libpulse is not directly linked, use stubs to allow for dlopening of
87 # the binary.
88 action("pulse_generate_stubs") {
89 extra_header = "audio/pulse/pulse_stub_header.fragment"
90
91 script = "../tools/generate_stubs/generate_stubs.py"
92 sources = [ "audio/pulse/pulse.sigs" ]
93 source_prereqs = [ extra_header ]
94 stubs_filename_root = "pulse_stubs"
95
96 # TODO(ajwong): these need to be included in the pulse build.
97 outputs = [
98 "$target_gen_dir/audio/pulse/$stubs_filename_root.cc",
99 "$target_gen_dir/audio/pulse/$stubs_filename_root.h",
100 ]
101 args = [
102 "-i", rebase_path("$target_gen_dir/audio/pulse", root_build_dir),
103 "-o", rebase_path("$target_gen_dir/audio/pulse", root_build_dir),
104 "-t", "posix_stubs",
105 "-e", rebase_path(extra_header, root_build_dir),
106 "-s", stubs_filename_root,
107 "-p", "media/audio/pulse",
108 ]
109
110 args += rebase_path(sources, root_build_dir)
111 }
112 }
113
114 component("media") {
115 sources = [
116 "audio/agc_audio_stream.h",
117 "audio/android/audio_record_input.cc",
118 "audio/android/audio_record_input.h",
119 "audio/android/opensles_input.cc",
120 "audio/android/opensles_input.h",
121 "audio/android/opensles_output.cc",
122 "audio/android/opensles_output.h",
123 "audio/android/opensles_wrapper.cc",
124 "audio/audio_buffers_state.cc",
125 "audio/audio_buffers_state.h",
126 "audio/audio_device_name.cc",
127 "audio/audio_device_name.h",
128 "audio/audio_device_thread.cc",
129 "audio/audio_device_thread.h",
130 "audio/audio_input_controller.cc",
131 "audio/audio_input_controller.h",
132 "audio/audio_input_device.cc",
133 "audio/audio_input_device.h",
134 "audio/audio_input_ipc.cc",
135 "audio/audio_input_ipc.h",
136 "audio/audio_io.h",
137 "audio/audio_manager.cc",
138 "audio/audio_manager.h",
139 "audio/audio_manager_base.cc",
140 "audio/audio_manager_base.h",
141 "audio/audio_output_controller.cc",
142 "audio/audio_output_controller.h",
143 "audio/audio_output_device.cc",
144 "audio/audio_output_device.h",
145 "audio/audio_output_dispatcher.cc",
146 "audio/audio_output_dispatcher.h",
147 "audio/audio_output_dispatcher_impl.cc",
148 "audio/audio_output_dispatcher_impl.h",
149 "audio/audio_output_ipc.cc",
150 "audio/audio_output_ipc.h",
151 "audio/audio_output_proxy.cc",
152 "audio/audio_output_proxy.h",
153 "audio/audio_output_resampler.cc",
154 "audio/audio_output_resampler.h",
155 "audio/audio_power_monitor.cc",
156 "audio/audio_power_monitor.h",
157 "audio/audio_source_diverter.h",
158 "audio/clockless_audio_sink.cc",
159 "audio/clockless_audio_sink.h",
160 "audio/fake_audio_consumer.cc",
161 "audio/fake_audio_consumer.h",
162 "audio/fake_audio_input_stream.cc",
163 "audio/fake_audio_input_stream.h",
164 "audio/fake_audio_log_factory.h",
165 "audio/fake_audio_log_factory.cc",
166 "audio/fake_audio_manager.cc",
167 "audio/fake_audio_manager.h",
168 "audio/fake_audio_output_stream.cc",
169 "audio/fake_audio_output_stream.h",
170 "audio/linux/audio_manager_linux.cc",
171 "audio/mac/audio_auhal_mac.cc",
172 "audio/mac/audio_auhal_mac.h",
173 "audio/mac/audio_device_listener_mac.cc",
174 "audio/mac/audio_device_listener_mac.h",
175 "audio/mac/audio_input_mac.cc",
176 "audio/mac/audio_input_mac.h",
177 "audio/mac/audio_low_latency_input_mac.cc",
178 "audio/mac/audio_low_latency_input_mac.h",
179 "audio/mac/audio_manager_mac.cc",
180 "audio/mac/audio_manager_mac.h",
181 "audio/null_audio_sink.cc",
182 "audio/null_audio_sink.h",
183 "audio/sample_rates.cc",
184 "audio/sample_rates.h",
185 "audio/scoped_task_runner_observer.cc",
186 "audio/scoped_task_runner_observer.h",
187 "audio/simple_sources.cc",
188 "audio/simple_sources.h",
189 "audio/sounds/audio_stream_handler.cc",
190 "audio/sounds/audio_stream_handler.h",
191 "audio/sounds/sounds_manager.cc",
192 "audio/sounds/sounds_manager.h",
193 "audio/sounds/wav_audio_handler.cc",
194 "audio/sounds/wav_audio_handler.h",
195 "audio/virtual_audio_input_stream.cc",
196 "audio/virtual_audio_input_stream.h",
197 "audio/virtual_audio_output_stream.cc",
198 "audio/virtual_audio_output_stream.h",
199 "audio/win/audio_device_listener_win.cc",
200 "audio/win/audio_device_listener_win.h",
201 "audio/win/audio_low_latency_input_win.cc",
202 "audio/win/audio_low_latency_input_win.h",
203 "audio/win/audio_low_latency_output_win.cc",
204 "audio/win/audio_low_latency_output_win.h",
205 "audio/win/audio_manager_win.cc",
206 "audio/win/audio_manager_win.h",
207 "audio/win/avrt_wrapper_win.cc",
208 "audio/win/avrt_wrapper_win.h",
209 "audio/win/core_audio_util_win.cc",
210 "audio/win/core_audio_util_win.h",
211 "audio/win/device_enumeration_win.cc",
212 "audio/win/device_enumeration_win.h",
213 "audio/win/wavein_input_win.cc",
214 "audio/win/wavein_input_win.h",
215 "audio/win/waveout_output_win.cc",
216 "audio/win/waveout_output_win.h",
217 "base/audio_buffer.cc",
218 "base/audio_buffer.h",
219 "base/audio_buffer_queue.cc",
220 "base/audio_buffer_queue.h",
221 "base/audio_capturer_source.h",
222 "base/audio_buffer_converter.cc",
223 "base/audio_buffer_converter.h",
224 "base/audio_converter.cc",
225 "base/audio_converter.h",
226 "base/audio_decoder.cc",
227 "base/audio_decoder.h",
228 "base/audio_decoder_config.cc",
229 "base/audio_decoder_config.h",
230 "base/audio_discard_helper.cc",
231 "base/audio_discard_helper.h",
232 "base/audio_fifo.cc",
233 "base/audio_fifo.h",
234 "base/audio_hardware_config.cc",
235 "base/audio_hardware_config.h",
236 "base/audio_hash.cc",
237 "base/audio_hash.h",
238 "base/audio_pull_fifo.cc",
239 "base/audio_pull_fifo.h",
240 "base/audio_renderer.cc",
241 "base/audio_renderer.h",
242 "base/audio_renderer_mixer.cc",
243 "base/audio_renderer_mixer.h",
244 "base/audio_renderer_mixer_input.cc",
245 "base/audio_renderer_mixer_input.h",
246 "base/audio_renderer_sink.h",
247 "base/audio_splicer.cc",
248 "base/audio_splicer.h",
249 "base/audio_timestamp_helper.cc",
250 "base/audio_timestamp_helper.h",
251 "base/bind_to_current_loop.h",
252 "base/bit_reader.cc",
253 "base/bit_reader.h",
254 "base/bit_reader_core.cc",
255 "base/bit_reader_core.h",
256 "base/bitstream_buffer.h",
257 "base/buffering_state.h",
258 "base/buffers.h",
259 "base/byte_queue.cc",
260 "base/byte_queue.h",
261 "base/cdm_promise.cc",
262 "base/cdm_promise.h",
263 "base/channel_mixer.cc",
264 "base/channel_mixer.h",
265 "base/clock.h",
266 "base/data_buffer.cc",
267 "base/data_buffer.h",
268 "base/data_source.cc",
269 "base/data_source.h",
270 "base/decoder_buffer.cc",
271 "base/decoder_buffer.h",
272 "base/decoder_buffer_queue.cc",
273 "base/decoder_buffer_queue.h",
274 "base/decrypt_config.cc",
275 "base/decrypt_config.h",
276 "base/decryptor.cc",
277 "base/decryptor.h",
278 "base/demuxer.cc",
279 "base/demuxer.h",
280 "base/demuxer_stream.cc",
281 "base/demuxer_stream.h",
282 "base/djb2.cc",
283 "base/djb2.h",
284 "base/filter_collection.cc",
285 "base/filter_collection.h",
286 "base/media.cc",
287 "base/media.h",
288 "base/media_keys.cc",
289 "base/media_keys.h",
290 "base/media_log.cc",
291 "base/media_log.h",
292 "base/media_log_event.h",
293 "base/media_switches.cc",
294 "base/media_switches.h",
295 "base/media_win.cc",
296 "base/multi_channel_resampler.cc",
297 "base/multi_channel_resampler.h",
298 "base/pipeline.cc",
299 "base/pipeline.h",
300 "base/pipeline_status.h",
301 "base/player_tracker.cc",
302 "base/player_tracker.h",
303 "base/ranges.cc",
304 "base/ranges.h",
305 "base/sample_format.cc",
306 "base/sample_format.h",
307 "base/scoped_histogram_timer.h",
308 "base/seekable_buffer.cc",
309 "base/seekable_buffer.h",
310 "base/serial_runner.cc",
311 "base/serial_runner.h",
312 "base/simd/convert_rgb_to_yuv.h",
313 "base/simd/convert_rgb_to_yuv_c.cc",
314 "base/simd/convert_yuv_to_rgb.h",
315 "base/simd/convert_yuv_to_rgb_c.cc",
316 "base/simd/filter_yuv.h",
317 "base/simd/filter_yuv_c.cc",
318 "base/simd/yuv_to_rgb_table.cc",
319 "base/simd/yuv_to_rgb_table.h",
320 "base/sinc_resampler.cc",
321 "base/sinc_resampler.h",
322 "base/stream_parser.cc",
323 "base/stream_parser.h",
324 "base/stream_parser_buffer.cc",
325 "base/stream_parser_buffer.h",
326 "base/text_cue.cc",
327 "base/text_cue.h",
328 "base/text_ranges.cc",
329 "base/text_ranges.h",
330 "base/text_renderer.cc",
331 "base/text_renderer.h",
332 "base/text_track.h",
333 "base/text_track_config.cc",
334 "base/text_track_config.h",
335 "base/time_delta_interpolator.cc",
336 "base/time_delta_interpolator.h",
337 "base/user_input_monitor.cc",
338 "base/user_input_monitor.h",
339 "base/user_input_monitor_mac.cc",
340 "base/user_input_monitor_win.cc",
341 "base/video_decoder.cc",
342 "base/video_decoder.h",
343 "base/video_decoder_config.cc",
344 "base/video_decoder_config.h",
345 "base/video_frame.cc",
346 "base/video_frame.h",
347 "base/video_frame_pool.cc",
348 "base/video_frame_pool.h",
349 "base/video_renderer.cc",
350 "base/video_renderer.h",
351 "base/video_rotation.h",
352 "base/video_util.cc",
353 "base/video_util.h",
354 "base/yuv_convert.cc",
355 "base/yuv_convert.h",
356 "cdm/aes_decryptor.cc",
357 "cdm/aes_decryptor.h",
358 "cdm/json_web_key.cc",
359 "cdm/json_web_key.h",
360 "cdm/key_system_names.cc",
361 "cdm/key_system_names.h",
362 "cdm/player_tracker_impl.cc",
363 "cdm/player_tracker_impl.h",
364 "ffmpeg/ffmpeg_deleters.h",
365 "filters/audio_clock.cc",
366 "filters/audio_clock.h",
367 "filters/audio_renderer_algorithm.cc",
368 "filters/audio_renderer_algorithm.h",
369 "filters/audio_renderer_impl.cc",
370 "filters/audio_renderer_impl.h",
371 "filters/chunk_demuxer.cc",
372 "filters/chunk_demuxer.h",
373 "filters/decoder_selector.cc",
374 "filters/decoder_selector.h",
375 "filters/decoder_stream.cc",
376 "filters/decoder_stream.h",
377 "filters/decoder_stream_traits.cc",
378 "filters/decoder_stream_traits.h",
379 "filters/decrypting_audio_decoder.cc",
380 "filters/decrypting_audio_decoder.h",
381 "filters/decrypting_demuxer_stream.cc",
382 "filters/decrypting_demuxer_stream.h",
383 "filters/decrypting_video_decoder.cc",
384 "filters/decrypting_video_decoder.h",
385 "filters/file_data_source.cc",
386 "filters/file_data_source.h",
387 "filters/frame_processor.cc",
388 "filters/frame_processor.h",
389 "filters/gpu_video_accelerator_factories.cc",
390 "filters/gpu_video_accelerator_factories.h",
391 "filters/gpu_video_decoder.cc",
392 "filters/gpu_video_decoder.h",
393 "filters/h264_bit_reader.cc",
394 "filters/h264_bit_reader.h",
395 "filters/h264_parser.cc",
396 "filters/h264_parser.h",
397 "filters/skcanvas_video_renderer.cc",
398 "filters/skcanvas_video_renderer.h",
399 "filters/source_buffer_platform.cc",
400 "filters/source_buffer_platform.h",
401 "filters/source_buffer_stream.cc",
402 "filters/source_buffer_stream.h",
403 "filters/stream_parser_factory.cc",
404 "filters/stream_parser_factory.h",
405 "filters/video_frame_scheduler.h",
406 "filters/video_frame_scheduler_impl.cc",
407 "filters/video_frame_scheduler_impl.h",
408 "filters/video_frame_scheduler_proxy.cc",
409 "filters/video_frame_scheduler_proxy.h",
410 "filters/video_renderer_impl.cc",
411 "filters/video_renderer_impl.h",
412 "filters/webvtt_util.h",
413 "filters/wsola_internals.cc",
414 "filters/wsola_internals.h",
415 "midi/midi_manager.cc",
416 "midi/midi_manager.h",
417 "midi/midi_manager_mac.cc",
418 "midi/midi_manager_mac.h",
419 "midi/midi_manager_usb.cc",
420 "midi/midi_manager_usb.h",
421 "midi/midi_manager_win.cc",
422 "midi/midi_manager_win.h",
423 "midi/midi_message_queue.cc",
424 "midi/midi_message_queue.h",
425 "midi/midi_message_util.cc",
426 "midi/midi_message_util.h",
427 "midi/midi_port_info.cc",
428 "midi/midi_port_info.h",
429 "midi/usb_midi_descriptor_parser.cc",
430 "midi/usb_midi_descriptor_parser.h",
431 "midi/usb_midi_device.h",
432 "midi/usb_midi_input_stream.cc",
433 "midi/usb_midi_input_stream.h",
434 "midi/usb_midi_jack.h",
435 "midi/usb_midi_output_stream.cc",
436 "midi/usb_midi_output_stream.h",
437 "video/capture/fake_video_capture_device.cc",
438 "video/capture/fake_video_capture_device.h",
439 "video/capture/fake_video_capture_device_factory.h",
440 "video/capture/fake_video_capture_device_factory.cc",
441 "video/capture/file_video_capture_device.cc",
442 "video/capture/file_video_capture_device.h",
443 "video/capture/file_video_capture_device_factory.h",
444 "video/capture/file_video_capture_device_factory.cc",
445 "video/capture/linux/video_capture_device_factory_linux.cc",
446 "video/capture/linux/video_capture_device_factory_linux.h",
447 "video/capture/linux/video_capture_device_linux.cc",
448 "video/capture/linux/video_capture_device_linux.h",
449 "video/capture/linux/video_capture_device_chromeos.cc",
450 "video/capture/linux/video_capture_device_chromeos.h",
451 "video/capture/mac/avfoundation_glue.h",
452 "video/capture/mac/avfoundation_glue.mm",
453 "video/capture/mac/coremedia_glue.h",
454 "video/capture/mac/coremedia_glue.mm",
455 "video/capture/mac/platform_video_capturing_mac.h",
456 "video/capture/mac/video_capture_device_avfoundation_mac.h",
457 "video/capture/mac/video_capture_device_avfoundation_mac.mm",
458 "video/capture/mac/video_capture_device_factory_mac.h",
459 "video/capture/mac/video_capture_device_factory_mac.mm",
460 "video/capture/mac/video_capture_device_mac.h",
461 "video/capture/mac/video_capture_device_mac.mm",
462 "video/capture/mac/video_capture_device_qtkit_mac.h",
463 "video/capture/mac/video_capture_device_qtkit_mac.mm",
464 "video/capture/video_capture_device.cc",
465 "video/capture/video_capture_device.h",
466 "video/capture/video_capture_device_factory.cc",
467 "video/capture/video_capture_device_factory.h",
468 "video/capture/video_capture_types.cc",
469 "video/capture/video_capture_types.h",
470 "video/capture/win/capability_list_win.cc",
471 "video/capture/win/capability_list_win.h",
472 "video/capture/win/filter_base_win.cc",
473 "video/capture/win/filter_base_win.h",
474 "video/capture/win/pin_base_win.cc",
475 "video/capture/win/pin_base_win.h",
476 "video/capture/win/sink_filter_observer_win.h",
477 "video/capture/win/sink_filter_win.cc",
478 "video/capture/win/sink_filter_win.h",
479 "video/capture/win/sink_input_pin_win.cc",
480 "video/capture/win/sink_input_pin_win.h",
481 "video/capture/win/video_capture_device_factory_win.cc",
482 "video/capture/win/video_capture_device_factory_win.h",
483 "video/capture/win/video_capture_device_mf_win.cc",
484 "video/capture/win/video_capture_device_mf_win.h",
485 "video/capture/win/video_capture_device_win.cc",
486 "video/capture/win/video_capture_device_win.h",
487 "video/picture.cc",
488 "video/picture.h",
489 "video/video_decode_accelerator.cc",
490 "video/video_decode_accelerator.h",
491 "video/video_encode_accelerator.cc",
492 "video/video_encode_accelerator.h",
493 "formats/common/offset_byte_queue.cc",
494 "formats/common/offset_byte_queue.h",
495 "formats/webm/webm_audio_client.cc",
496 "formats/webm/webm_audio_client.h",
497 "formats/webm/webm_cluster_parser.cc",
498 "formats/webm/webm_cluster_parser.h",
499 "formats/webm/webm_constants.cc",
500 "formats/webm/webm_constants.h",
501 "formats/webm/webm_content_encodings.cc",
502 "formats/webm/webm_content_encodings.h",
503 "formats/webm/webm_content_encodings_client.cc",
504 "formats/webm/webm_content_encodings_client.h",
505 "formats/webm/webm_crypto_helpers.cc",
506 "formats/webm/webm_crypto_helpers.h",
507 "formats/webm/webm_info_parser.cc",
508 "formats/webm/webm_info_parser.h",
509 "formats/webm/webm_parser.cc",
510 "formats/webm/webm_parser.h",
511 "formats/webm/webm_stream_parser.cc",
512 "formats/webm/webm_stream_parser.h",
513 "formats/webm/webm_tracks_parser.cc",
514 "formats/webm/webm_tracks_parser.h",
515 "formats/webm/webm_video_client.cc",
516 "formats/webm/webm_video_client.h",
517 "formats/webm/webm_webvtt_parser.cc",
518 "formats/webm/webm_webvtt_parser.h",
519 ]
520
521 configs += [ ":media_config", ]
522
523 libs = []
524 defines = []
525 deps = []
526
527 include_dirs = [ "." ]
528 if (media_use_ffmpeg) {
529 deps += [ "//third_party/ffmpeg" ]
530 sources += [
531 "base/audio_video_metadata_extractor.cc",
532 "base/audio_video_metadata_extractor.h",
533 "base/container_names.cc",
534 "base/container_names.h",
535 "base/media_file_checker.cc",
536 "base/media_file_checker.h",
537 "base/media_posix.cc",
538 "ffmpeg/ffmpeg_common.cc",
539 "ffmpeg/ffmpeg_common.h",
540 "filters/audio_file_reader.cc",
541 "filters/audio_file_reader.h",
542 "filters/blocking_url_protocol.cc",
543 "filters/blocking_url_protocol.h",
544 "filters/ffmpeg_audio_decoder.cc",
545 "filters/ffmpeg_audio_decoder.h",
546 "filters/ffmpeg_demuxer.cc",
547 "filters/ffmpeg_demuxer.h",
548 "filters/ffmpeg_glue.cc",
549 "filters/ffmpeg_glue.h",
550 "filters/ffmpeg_video_decoder.cc",
551 "filters/ffmpeg_video_decoder.h",
552 "filters/in_memory_url_protocol.cc",
553 "filters/in_memory_url_protocol.h",
554 ]
555 if (proprietary_codecs) {
556 sources += [
557 "filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc",
558 "filters/ffmpeg_h264_to_annex_b_bitstream_converter.h",
559 ]
560 }
561 }
562
563 if (cpu_arch == "arm" && arm_use_neon) {
564 defines += [ "USE_NEON" ]
565 }
566
567 if (media_use_libvpx) {
568 sources += [
569 "filters/vpx_video_decoder.cc",
570 "filters/vpx_video_decoder.h",
571 ]
572 deps += [ "//third_party/libvpx" ]
573 }
574
575 if (enable_browser_cdms) {
576 sources += [
577 "base/browser_cdm.cc",
578 "base/browser_cdm.h",
579 "base/browser_cdm_factory.h",
580 ]
581 }
582
583 if (!is_android) {
584 sources += [
585 "filters/opus_audio_decoder.cc",
586 "filters/opus_audio_decoder.h",
587 ]
588 } else {
589 sources += [
590 "audio/android/audio_manager_android.cc",
591 "audio/android/audio_manager_android.h",
592 "base/android/demuxer_android.h",
593 "base/android/demuxer_stream_player_params.cc",
594 "base/android/demuxer_stream_player_params.h",
595 "base/android/media_player_manager.h",
596 "base/android/media_resource_getter.cc",
597 "base/android/media_resource_getter.h",
598 "base/media.cc",
599 "base/media.h",
600 "base/media_stub.cc",
601 "midi/midi_manager_android.cc",
602 "midi/usb_midi_device_android.cc",
603 "midi/usb_midi_device_android.h",
604 "midi/usb_midi_device_factory_android.cc",
605 "midi/usb_midi_device_factory_android.h",
606 "video/capture/android/video_capture_device_android.cc",
607 "video/capture/android/video_capture_device_android.h",
608 "video/capture/android/video_capture_device_factory_android.cc",
609 "video/capture/android/video_capture_device_factory_android.h",
610 ]
611 defines += [ "DISABLE_USER_INPUT_MONITOR" ]
612 # TODO(ajwong): Fix for android.
613 # deps += [
614 # ":media_android_jni_headers",
615 # ":player_android",
616 # ":video_capture_android_jni_headers",
617 # ]
618 # if (!android_webview_build) {
619 # deps += [ ":media_java" ]
620 # }
621 }
622
623 if (is_chromeos) {
624 # A simple WebM encoder for animated avatars on ChromeOS.
625 sources += [
626 "formats/webm/chromeos/ebml_writer.cc",
627 "formats/webm/chromeos/ebml_writer.h",
628 "formats/webm/chromeos/webm_encoder.cc",
629 "formats/webm/chromeos/webm_encoder.h",
630 ]
631 deps += [
632 "//third_party/libvpx",
633 "//third_party/libyuv"
634 ]
635 # For VaapiVideoEncodeAccelerator.
636 if (cpu_arch != "arm" && use_x11) {
637 sources += [
638 "filters/h264_bitstream_buffer.cc",
639 "filters/h264_bitstream_buffer.h",
640 ]
641 }
642 }
643
644 if (!is_ios) {
645 deps += [ "//third_party/libyuv" ]
646 }
647
648 if (use_alsa) {
649 libs += [ "asound" ]
650 defines += [ "USE_ALSA" ]
651 sources += [
652 "audio/alsa/alsa_input.cc",
653 "audio/alsa/alsa_input.h",
654 "audio/alsa/alsa_output.cc",
655 "audio/alsa/alsa_output.h",
656 "audio/alsa/alsa_util.cc",
657 "audio/alsa/alsa_util.h",
658 "audio/alsa/alsa_wrapper.cc",
659 "audio/alsa/alsa_wrapper.h",
660 "audio/alsa/audio_manager_alsa.cc",
661 "audio/alsa/audio_manager_alsa.h",
662 "midi/midi_manager_alsa.cc",
663 "midi/midi_manager_alsa.h",
664 ]
665 }
666
667 if (is_openbsd) {
668 sources += [
669 "audio/openbsd/audio_manager_openbsd.cc",
670 "audio/openbsd/audio_manager_openbsd.h",
671 ]
672 }
673
674 # A simple WebM encoder for animated avatars on ChromeOS.
675 if (is_linux) {
676 if (use_x11) {
677 configs += [
678 "//build/config/linux:x11",
679 "//build/config/linux:xext",
680 # TODO(ajwong): Why does xent get a separate thing in //build/config/linux:BUILD .gn
681 # "//build/config/linux:xdamage",
682 # "//build/config/linux:xfixes",
683 # "//build/config/linux:xtst",
684 ]
685 sources += [
686 "base/user_input_monitor_linux.cc"
687 ]
688 } else {
689 defines += [ "DISABLE_USER_INPUT_MONITOR" ]
690 }
691
692 if (use_cras) {
693 pkg_config("libcras") {
694 packages = [ "libcras" ]
695 }
696 configs += [ "libcras" ]
697 sources += [
698 "audio/cras/audio_manager_cras.cc",
699 "audio/cras/audio_manager_cras.h",
700 "audio/cras/cras_input.cc",
701 "audio/cras/cras_input.h",
702 "audio/cras/cras_unified.cc",
703 "audio/cras/cras_unified.h",
704 ]
705 }
706
707 }
708
709 if (use_ozone) {
710 platform_list_txt_file = "$target_gen_dir/ui/ozone/platform_list.txt"
711 constructor_list_cc_file = "$target_gen_dir/media/ozone/constructor_list.cc"
712
713 # Used for the generated listing header (ui/ozone/platform_list.h)
714 include_dirs += [ target_gen_dir ]
715
716 sources += [
717 constructor_list_cc_file,
718 "ozone/media_ozone_platform.cc",
719 "ozone/media_ozone_platform.h",
720 ]
721
722 deps += [ "//ui/ozone/ozone" ]
723
724 action("generate_constructor_list") {
725 # Ozone platform objects are auto-generated using similar
726 # patterns for naming and classes constructors. Here we build the
727 # object MediaOzonePlatform.
728 script = "../ui/ozone/generate_constructor_list.py"
729 sources = [ platform_list_txt_file ]
730 outputs = [ constructor_list_cc_file ]
731 args += [
732 "--platform_list=$platform_list_txt_file",
733 "--output_cc=$constructor_list_cc_file",
734 "--namespace=media",
735 "--typename=MediaOzonePlatform",
736 "--include=\"media/ozone/media_ozone_platform.h\""
737 ]
738 }
739 }
740
741 if (use_pulseaudio) {
742 if (linux_link_pulseaudio) {
743 pkg_config("libpulse") {
744 packages = [ "libpulse" ]
745 }
746 configs += [ ":libpulse" ]
747 } else {
748 # TODO(ajwong): Technically, this dl should go in the action.
749 libs += [ "dl" ]
750 deps += [ ":pulse_generate_stubs" ]
751 sources += get_target_outputs(":pulse_generate_stubs")
752 }
753 sources += [
754 "audio/pulse/audio_manager_pulse.cc",
755 "audio/pulse/audio_manager_pulse.h",
756 "audio/pulse/pulse_input.cc",
757 "audio/pulse/pulse_input.h",
758 "audio/pulse/pulse_output.cc",
759 "audio/pulse/pulse_output.h",
760 "audio/pulse/pulse_util.cc",
761 "audio/pulse/pulse_util.h",
762 ]
763 }
764
765 if (is_mac) {
766 libs += [
767 "AudioToolbox.framework",
768 "AudioUnit.framework",
769 "CoreAudio.framework",
770 "CoreMIDI.framework",
771 "CoreVideo.framework",
772 "OpenGL.framework",
773 "QTKit.framework",
774 ]
775 }
776
777 if (is_win) {
778 libs += [
779 "mf.lib",
780 "mfplat.lib",
781 "mfreadwrite.lib",
782 "mfuuid.lib",
783 ]
784 cflags += [
785 "/wd4267" # TODO(wolenetz): Fix size_t to int trunctaion in win64. See
786 # http://crbug.com/171009
787 ]
788 configs += [ ":media_dependent_config" ]
789 all_dependent_configs = [ ":media_dependent_config" ]
790 }
791
792 if (proprietary_codecs) {
793 sources += [
794 "formats/mp2t/es_parser.h",
795 "formats/mp2t/es_parser_adts.cc",
796 "formats/mp2t/es_parser_adts.h",
797 "formats/mp2t/es_parser_h264.cc",
798 "formats/mp2t/es_parser_h264.h",
799 "formats/mp2t/mp2t_common.h",
800 "formats/mp2t/mp2t_stream_parser.cc",
801 "formats/mp2t/mp2t_stream_parser.h",
802 "formats/mp2t/ts_packet.cc",
803 "formats/mp2t/ts_packet.h",
804 "formats/mp2t/ts_section.h",
805 "formats/mp2t/ts_section_pat.cc",
806 "formats/mp2t/ts_section_pat.h",
807 "formats/mp2t/ts_section_pes.cc",
808 "formats/mp2t/ts_section_pes.h",
809 "formats/mp2t/ts_section_pmt.cc",
810 "formats/mp2t/ts_section_pmt.h",
811 "formats/mp2t/ts_section_psi.cc",
812 "formats/mp2t/ts_section_psi.h",
813 "formats/mp4/aac.cc",
814 "formats/mp4/aac.h",
815 "formats/mp4/avc.cc",
816 "formats/mp4/avc.h",
817 "formats/mp4/box_definitions.cc",
818 "formats/mp4/box_definitions.h",
819 "formats/mp4/box_reader.cc",
820 "formats/mp4/box_reader.h",
821 "formats/mp4/cenc.cc",
822 "formats/mp4/cenc.h",
823 "formats/mp4/es_descriptor.cc",
824 "formats/mp4/es_descriptor.h",
825 "formats/mp4/mp4_stream_parser.cc",
826 "formats/mp4/mp4_stream_parser.h",
827 "formats/mp4/sample_to_group_iterator.cc",
828 "formats/mp4/sample_to_group_iterator.h",
829 "formats/mp4/track_run_iterator.cc",
830 "formats/mp4/track_run_iterator.h",
831 "formats/mpeg/adts_constants.cc",
832 "formats/mpeg/adts_constants.h",
833 "formats/mpeg/adts_stream_parser.cc",
834 "formats/mpeg/adts_stream_parser.h",
835 "formats/mpeg/mp3_stream_parser.cc",
836 "formats/mpeg/mp3_stream_parser.h",
837 "formats/mpeg/mpeg_audio_stream_parser_base.cc",
838 "formats/mpeg/mpeg_audio_stream_parser_base.h",
839 ]
840 }
841
842 if (cpu_arch == "x86" || cpu_arch == "x64") {
843 sources += [ "base/simd/convert_yuv_to_rgb_x86.cc" ]
844 deps += [
845 ":media_yasm",
846 ":media_mmx",
847 ":media_sse2",
848 ]
849 }
850
851 if (is_linux || is_win) {
852 sources += [
853 "base/keyboard_event_counter.cc",
854 "base/keyboard_event_counter.h",
855 ]
856 }
857
858 deps += [
859 ":shared_memory_support",
860 "//base",
861 "//base:i18n",
862 "//base/third_party/dynamic_annotations",
863 "//crypto",
864 "//crypto:platform", # TODO(ajwong): This used to be provided by crypto.gyp via export_dependent_settings
865 "//gpu/command_buffer/common",
866 "//skia",
867 "//third_party/opus",
868 "//ui/events:events_base",
869 "//ui/gfx",
870 "//ui/gfx/geometry",
871 "//url",
872 ]
873 }
874
875 test("media_unittests") {
876 sources = [
877 "audio/android/audio_android_unittest.cc",
878 "audio/audio_input_controller_unittest.cc",
879 "audio/audio_input_unittest.cc",
880 "audio/audio_manager_unittest.cc",
881 "audio/audio_output_controller_unittest.cc",
882 "audio/audio_output_device_unittest.cc",
883 "audio/audio_output_proxy_unittest.cc",
884 "audio/audio_parameters_unittest.cc",
885 "audio/audio_power_monitor_unittest.cc",
886 "audio/fake_audio_consumer_unittest.cc",
887 "audio/mac/audio_auhal_mac_unittest.cc",
888 "audio/mac/audio_device_listener_mac_unittest.cc",
889 "audio/mac/audio_low_latency_input_mac_unittest.cc",
890 "audio/simple_sources_unittest.cc",
891 "audio/sounds/audio_stream_handler_unittest.cc",
892 "audio/sounds/sounds_manager_unittest.cc",
893 "audio/sounds/test_data.cc",
894 "audio/sounds/test_data.h",
895 "audio/sounds/wav_audio_handler_unittest.cc",
896 "audio/virtual_audio_input_stream_unittest.cc",
897 "audio/virtual_audio_output_stream_unittest.cc",
898 "audio/win/audio_device_listener_win_unittest.cc",
899 "audio/win/audio_low_latency_input_win_unittest.cc",
900 "audio/win/audio_low_latency_output_win_unittest.cc",
901 "audio/win/audio_output_win_unittest.cc",
902 "audio/win/core_audio_util_win_unittest.cc",
903 "base/android/media_codec_bridge_unittest.cc",
904 "base/android/media_drm_bridge_unittest.cc",
905 "base/android/media_source_player_unittest.cc",
906 "base/audio_buffer_converter_unittest.cc",
907 "base/audio_buffer_unittest.cc",
908 "base/audio_buffer_queue_unittest.cc",
909 "base/audio_bus_unittest.cc",
910 "base/audio_converter_unittest.cc",
911 "base/audio_discard_helper_unittest.cc",
912 "base/audio_fifo_unittest.cc",
913 "base/audio_hardware_config_unittest.cc",
914 "base/audio_hash_unittest.cc",
915 "base/audio_pull_fifo_unittest.cc",
916 "base/audio_renderer_mixer_input_unittest.cc",
917 "base/audio_renderer_mixer_unittest.cc",
918 "base/audio_splicer_unittest.cc",
919 "base/audio_timestamp_helper_unittest.cc",
920 "base/bind_to_current_loop_unittest.cc",
921 "base/bit_reader_unittest.cc",
922 "base/callback_holder.h",
923 "base/callback_holder_unittest.cc",
924 "base/channel_mixer_unittest.cc",
925 "base/data_buffer_unittest.cc",
926 "base/decoder_buffer_queue_unittest.cc",
927 "base/decoder_buffer_unittest.cc",
928 "base/djb2_unittest.cc",
929 "base/gmock_callback_support_unittest.cc",
930 "base/multi_channel_resampler_unittest.cc",
931 "base/pipeline_unittest.cc",
932 "base/ranges_unittest.cc",
933 "base/run_all_unittests.cc",
934 "base/scoped_histogram_timer_unittest.cc",
935 "base/serial_runner_unittest.cc",
936 "base/seekable_buffer_unittest.cc",
937 "base/sinc_resampler_unittest.cc",
938 "base/stream_parser_unittest.cc",
939 "base/text_ranges_unittest.cc",
940 "base/text_renderer_unittest.cc",
941 "base/user_input_monitor_unittest.cc",
942 "base/vector_math_testing.h",
943 "base/vector_math_unittest.cc",
944 "base/video_frame_unittest.cc",
945 "base/video_frame_pool_unittest.cc",
946 "base/video_util_unittest.cc",
947 "base/yuv_convert_unittest.cc",
948 "cdm/aes_decryptor_unittest.cc",
949 "cdm/json_web_key_unittest.cc",
950 "filters/audio_clock_unittest.cc",
951 "filters/audio_decoder_selector_unittest.cc",
952 "filters/audio_renderer_algorithm_unittest.cc",
953 "filters/audio_renderer_impl_unittest.cc",
954 "filters/chunk_demuxer_unittest.cc",
955 "filters/decrypting_audio_decoder_unittest.cc",
956 "filters/decrypting_demuxer_stream_unittest.cc",
957 "filters/decrypting_video_decoder_unittest.cc",
958 "filters/fake_demuxer_stream.cc",
959 "filters/fake_demuxer_stream.h",
960 "filters/fake_demuxer_stream_unittest.cc",
961 "filters/fake_video_decoder.cc",
962 "filters/fake_video_decoder.h",
963 "filters/fake_video_decoder_unittest.cc",
964 "filters/file_data_source_unittest.cc",
965 "filters/frame_processor_unittest.cc",
966 "filters/h264_bit_reader_unittest.cc",
967 "filters/h264_parser_unittest.cc",
968 "filters/skcanvas_video_renderer_unittest.cc",
969 "filters/source_buffer_stream_unittest.cc",
970 "filters/video_decoder_selector_unittest.cc",
971 "filters/video_frame_scheduler_impl_unittest.cc",
972 "filters/video_frame_scheduler_unittest.cc",
973 "filters/video_frame_stream_unittest.cc",
974 "filters/video_renderer_impl_unittest.cc",
975 "midi/midi_manager_unittest.cc",
976 "midi/midi_manager_usb_unittest.cc",
977 "midi/midi_message_queue_unittest.cc",
978 "midi/midi_message_util_unittest.cc",
979 "midi/usb_midi_descriptor_parser_unittest.cc",
980 "midi/usb_midi_input_stream_unittest.cc",
981 "midi/usb_midi_output_stream_unittest.cc",
982 "video/capture/fake_video_capture_device_unittest.cc",
983 "video/capture/video_capture_device_unittest.cc",
984 "formats/common/offset_byte_queue_unittest.cc",
985 "formats/webm/cluster_builder.cc",
986 "formats/webm/cluster_builder.h",
987 "formats/webm/tracks_builder.cc",
988 "formats/webm/tracks_builder.h",
989 "formats/webm/webm_cluster_parser_unittest.cc",
990 "formats/webm/webm_content_encodings_client_unittest.cc",
991 "formats/webm/webm_parser_unittest.cc",
992 "formats/webm/webm_tracks_parser_unittest.cc",
993 "formats/webm/webm_webvtt_parser_unittest.cc",
994 ]
995
996 if (media_use_ffmpeg) {
997 sources += [
998 "base/audio_video_metadata_extractor_unittest.cc",
999 "base/media_file_checker_unittest.cc",
1000 ]
1001 }
1002
1003 if (!is_android) {
1004 sources += [
1005 "audio/audio_input_volume_unittest.cc",
1006 "base/container_names_unittest.cc",
1007 "ffmpeg/ffmpeg_common_unittest.cc",
1008 "filters/audio_decoder_unittest.cc",
1009 "filters/audio_file_reader_unittest.cc",
1010 "filters/blocking_url_protocol_unittest.cc",
1011 "filters/ffmpeg_demuxer_unittest.cc",
1012 "filters/ffmpeg_glue_unittest.cc",
1013 "filters/ffmpeg_video_decoder_unittest.cc",
1014 "filters/in_memory_url_protocol_unittest.cc",
1015 "filters/pipeline_integration_test.cc",
1016 "filters/pipeline_integration_test_base.cc",
1017 ]
1018 } else {
1019 # TODO(ajwong): Blocked on android.
1020 # deps += [
1021 # ":player_android",
1022 # "//testing/android:native_test_native_code"
1023 # ]
1024 }
1025
1026 if (is_linux && use_cras) {
1027 sources += [
1028 "audio/cras/cras_input_unittest.cc",
1029 "audio/cras/cras_unified_unittest.cc",
1030 ]
1031 }
1032
1033 if (cpu_arch != "arm" && is_chromeos && use_x11) {
1034 sources += [ "filters/h264_bitstream_buffer_unittest.cc" ]
1035 }
1036
1037 if (use_alsa) {
1038 sources += [
1039 "audio/alsa/alsa_output_unittest.cc",
1040 "audio/audio_low_latency_input_output_unittest.cc",
1041 ]
1042 }
1043
1044 if (cpu_arch == "x86" || cpu_arch == "x64") {
1045 sources += [ "base/simd/convert_rgb_to_yuv_unittest.cc" ]
1046 }
1047
1048 if (proprietary_codecs) {
1049 sources += [
1050 "filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc",
1051 "filters/h264_to_annex_b_bitstream_converter_unittest.cc",
1052 "formats/common/stream_parser_test_base.cc",
1053 "formats/common/stream_parser_test_base.h",
1054 "formats/mp2t/es_parser_h264_unittest.cc",
1055 "formats/mp2t/mp2t_stream_parser_unittest.cc",
1056 "formats/mp4/aac_unittest.cc",
1057 "formats/mp4/avc_unittest.cc",
1058 "formats/mp4/box_reader_unittest.cc",
1059 "formats/mp4/es_descriptor_unittest.cc",
1060 "formats/mp4/mp4_stream_parser_unittest.cc",
1061 "formats/mp4/sample_to_group_iterator_unittest.cc",
1062 "formats/mp4/track_run_iterator_unittest.cc",
1063 "formats/mpeg/adts_stream_parser_unittest.cc",
1064 "formats/mpeg/mp3_stream_parser_unittest.cc",
1065 ]
1066 }
1067
1068 if (is_win && cpu_arch == "x64") {
1069 cflags += [
1070 "/wd4267" # TODO(wolenetz): Fix size_t to int trunctaion in win64. See
1071 # http://crbug.com/171009
1072 ]
1073 }
1074
1075 if (is_mac) {
1076 sources += [
1077 "video/capture/mac/video_capture_device_factory_mac_unittest.mm"
1078 ]
1079 }
1080
1081 # include_dirs += [
1082 # # Needed by media_drm_bridge.cc.
1083 # target_gen_dir,
1084 # ],
1085
1086 configs += [ ":media_config" ]
1087
1088 # TODO(ajwong): This was in the original gyp, but it seems silly.
1089 # ['os_posix==1 and OS!="mac"', {
1090 # 'conditions': [
1091 # ['use_allocator!="none"', {
1092 # 'dependencies': [
1093 # '../base/allocator/allocator.gyp:allocator',
1094 # ],
1095 # }],
1096 # ],
1097 # }],
1098 deps = [
1099 ":media",
1100 ":media_test_support",
1101 "//base/test:test_support",
1102 "//skia", # Direct dependency required to inherit config.
1103 "//testing/gmock",
1104 "//testing/gtest",
1105 # "//third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h", TODO( GYP): Port over CDM stuff.
1106 "//ui/base",
1107 "//ui/gfx:gfx_test_support",
1108 ]
1109 if (media_use_ffmpeg) {
1110 deps += [
1111 "//third_party/ffmpeg", # Direct dependency required to inherit config.
1112 ]
1113 }
1114 }
1115
1116 test("media_perftests") {
1117 sources = [
1118 "base/audio_bus_perftest.cc",
1119 "base/audio_converter_perftest.cc",
1120 "base/run_all_perftests.cc",
1121 "base/sinc_resampler_perftest.cc",
1122 "base/vector_math_perftest.cc",
1123 "base/yuv_convert_perftest.cc",
1124 ]
1125 if (media_use_ffmpeg) {
1126 sources += [
1127 "base/demuxer_perftest.cc",
1128 "filters/pipeline_integration_perftest.cc",
1129 "filters/pipeline_integration_test_base.cc",
1130 ]
1131 }
1132 configs += [ ":media_config" ]
1133 deps = [
1134 ":media",
1135 ":media_test_support",
1136 ":shared_memory_support",
1137 "//base/test:test_support",
1138 "//testing/gmock",
1139 "//testing/gtest",
1140 "//testing/perf",
1141 # "//third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h", TODO( GYP): Port over CDM stuff.
1142 "//ui/gl",
1143 "//ui/gfx:gfx_test_support",
1144 ]
1145 if (media_use_ffmpeg) {
1146 deps += [
1147 "//third_party/ffmpeg", # Direct dependency required to inherit config.
1148 ]
1149 }
1150 }
1151
1152 if (cpu_arch == "x86" || cpu_arch == "x64") {
1153 source_set("media_mmx") {
1154 sources = [ "base/simd/filter_yuv_mmx.cc" ]
1155 configs += [ ":media_config" ]
1156 cflags = [ "-mmmx" ]
1157 }
1158
1159 source_set("media_sse2") {
1160 sources = [
1161 "base/simd/convert_rgb_to_yuv_sse2.cc",
1162 "base/simd/convert_rgb_to_yuv_ssse3.cc",
1163 "base/simd/filter_yuv_sse2.cc",
1164 ]
1165 configs += [ ":media_config" ]
1166 cflags = [ "-msse2" ]
1167 }
1168
1169 import("//third_party/yasm/yasm_assemble.gni")
1170 yasm_assemble("media_yasm") {
1171 sources = [
1172 "base/simd/convert_rgb_to_yuv_ssse3.asm",
1173 "base/simd/convert_yuv_to_rgb_mmx.asm",
1174 "base/simd/convert_yuv_to_rgb_sse.asm",
1175 "base/simd/convert_yuva_to_argb_mmx.asm",
1176 "base/simd/empty_register_state_mmx.asm",
1177 "base/simd/linear_scale_yuv_to_rgb_mmx.asm",
1178 "base/simd/linear_scale_yuv_to_rgb_sse.asm",
1179 "base/simd/scale_yuv_to_rgb_mmx.asm",
1180 "base/simd/scale_yuv_to_rgb_sse.asm",
1181 ]
1182
1183 # TODO(ajwong): Only export if shared_library build...
1184 yasm_flags = [
1185 "-DCHROMIUM",
1186 "-DEXPORT_SYMBOLS",
1187 # In addition to the same path as source asm, let yasm %include
1188 # search path be relative to src/ per Chromium policy.
1189 "-I", rebase_path("..", root_build_dir),
1190 ]
1191
1192 inputs = [
1193 "//third_party/x86inc/x86inc.asm",
1194 "base/simd/convert_rgb_to_yuv_ssse3.inc",
1195 "base/simd/convert_yuv_to_rgb_mmx.inc",
1196 "base/simd/convert_yuva_to_argb_mmx.inc",
1197 "base/simd/linear_scale_yuv_to_rgb_mmx.inc",
1198 "base/simd/media_export.asm",
1199 "base/simd/scale_yuv_to_rgb_mmx.inc",
1200 ]
1201
1202 if (cpu_arch == "x86") {
1203 yasm_flags += [ "-DARCH_X86_32" ]
1204 } else if (cpu_arch == "x64") {
1205 yasm_flags += [ "-DARCH_X86_64" ]
1206 sources += [
1207 "base/simd/linear_scale_yuv_to_rgb_mmx_x64.asm",
1208 "base/simd/scale_yuv_to_rgb_sse2_x64.asm",
1209 ]
1210 }
1211
1212 if (is_mac) {
1213 yasm_flags += [
1214 "-DPREFIX",
1215 "-DMACHO",
1216 ]
1217 } else {
1218 if (is_posix) {
1219 yasm_flags += [ "-DELF" ]
1220 if (cpu_arch == "x64") {
1221 # TODO(ajwong): Why isn't this true in mac?
1222 yasm_flags += [ "-DPIC" ]
1223 }
1224 }
1225 }
1226 }
1227 }
1228
1229
1230 source_set("media_test_support") {
1231 sources = [
1232 "audio/mock_audio_manager.cc",
1233 "audio/mock_audio_manager.h",
1234 "audio/mock_audio_source_callback.cc",
1235 "audio/mock_audio_source_callback.h",
1236 "audio/test_audio_input_controller_factory.cc",
1237 "audio/test_audio_input_controller_factory.h",
1238 "base/fake_audio_render_callback.cc",
1239 "base/fake_audio_render_callback.h",
1240 "base/fake_audio_renderer_sink.cc",
1241 "base/fake_audio_renderer_sink.h",
1242 "base/fake_text_track_stream.cc",
1243 "base/fake_text_track_stream.h",
1244 "base/gmock_callback_support.h",
1245 "base/mock_audio_renderer_sink.cc",
1246 "base/mock_audio_renderer_sink.h",
1247 "base/mock_demuxer_host.cc",
1248 "base/mock_demuxer_host.h",
1249 "base/mock_filters.cc",
1250 "base/mock_filters.h",
1251 "base/test_data_util.cc",
1252 "base/test_data_util.h",
1253 "base/test_helpers.cc",
1254 "base/test_helpers.h",
1255 "filters/clockless_video_frame_scheduler.cc",
1256 "filters/clockless_video_frame_scheduler.h",
1257 "filters/mock_gpu_video_accelerator_factories.cc",
1258 "filters/mock_gpu_video_accelerator_factories.h",
1259 "filters/test_video_frame_scheduler.cc",
1260 "filters/test_video_frame_scheduler.h",
1261 "video/mock_video_decode_accelerator.cc",
1262 "video/mock_video_decode_accelerator.h",
1263 ]
1264 deps = [
1265 ":media",
1266 ":shared_memory_support",
1267 "//base",
1268 "//skia",
1269 "//testing/gmock",
1270 "//testing/gtest",
1271 ]
1272 }
1273
1274 component("shared_memory_support") {
1275 sources = [
1276 "audio/audio_parameters.cc",
1277 "audio/audio_parameters.h",
1278 "base/audio_bus.cc",
1279 "base/audio_bus.h",
1280 "base/channel_layout.cc",
1281 "base/channel_layout.h",
1282 "base/limits.h",
1283 "base/media_export.h",
1284 "base/vector_math.cc",
1285 "base/vector_math.h",
1286 ]
1287 configs += [ ":media_config" ]
1288 deps = [ "//base" ]
1289 }
1290
1291 test("ffmpeg_unittests") {
1292 sources = [ "ffmpeg/ffmpeg_unittest.cc" ]
1293
1294 deps = [
1295 ":media",
1296 ":media_test_support",
1297 "//base",
1298 "//base:i18n",
1299 "//base/test:test_support",
1300 "//testing/gtest",
1301 "//third_party/ffmpeg",
1302 "//ui/gfx:gfx_test_support",
1303 ]
1304 }
1305
1306 test("ffmpeg_regression_tests") {
1307 sources = [
1308 "base/run_all_unittests.cc",
1309 "ffmpeg/ffmpeg_regression_tests.cc",
1310 "filters/pipeline_integration_test_base.cc",
1311 ]
1312 configs += [ ":media_config" ]
1313 deps = [
1314 ":media",
1315 ":media_test_support",
1316 "//base/test:test_support",
1317 "//testing/gmock",
1318 "//testing/gtest",
1319 "//third_party/ffmpeg",
1320 "//ui/gfx/geometry",
1321 "//ui/gfx:gfx_test_support",
1322 ]
1323 # TODO(ajwong): This was in the original gyp, but it seems silly.
1324 # ['os_posix==1 and OS!="mac"', {
1325 # 'conditions': [
1326 # ['use_allocator!="none"', {
1327 # 'dependencies': [
1328 # '../base/allocator/allocator.gyp:allocator',
1329 # ],
1330 # }],
1331 # ],
1332 # }],
1333 }
1334
1335 if (use_x11) {
1336 executable("player_x11") {
1337 sources = [
1338 "tools/player_x11/data_source_logger.cc",
1339 "tools/player_x11/data_source_logger.h",
1340 "tools/player_x11/gl_video_renderer.cc",
1341 "tools/player_x11/gl_video_renderer.h",
1342 "tools/player_x11/player_x11.cc",
1343 "tools/player_x11/x11_video_renderer.cc",
1344 "tools/player_x11/x11_video_renderer.h",
1345 ]
1346 configs += [
1347 ":media_config",
1348 "//build/config/linux:x11",
1349 "//build/config/linux:xext",
1350 # TODO(ajwong): Why does xent get a separate thing in //build/config/linux:BUILD .gn
1351 # "//build/config/linux:xrender",
1352 ]
1353 deps = [
1354 ":media",
1355 ":shared_memory_support",
1356 "//base",
1357 "//ui/gl",
1358 "//ui/gfx",
1359 "//ui/gfx/geometry",
1360 ]
1361 }
1362 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698