media.gyp revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
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. 4 5{ 6 'variables': { 7 'chromium_code': 1, 8 # Override to dynamically link the cras (ChromeOS audio) library. 9 'use_cras%': 0, 10 # Option e.g. for Linux distributions to link pulseaudio directly 11 # (DT_NEEDED) instead of using dlopen. This helps with automated 12 # detection of ABI mismatches and prevents silent errors. 13 'linux_link_pulseaudio%': 0, 14 'conditions': [ 15 ['OS=="android" or OS=="ios"', { 16 # Android and iOS don't use ffmpeg. 17 'media_use_ffmpeg%': 0, 18 # Android and iOS don't use libvpx. 19 'media_use_libvpx%': 0, 20 }, { # 'OS!="android" and OS!="ios"' 21 'media_use_ffmpeg%': 1, 22 'media_use_libvpx%': 1, 23 }], 24 # ALSA usage. 25 ['OS=="linux" or OS=="freebsd" or OS=="solaris"', { 26 'use_alsa%': 1, 27 }, { 28 'use_alsa%': 0, 29 }], 30 ['os_posix==1 and OS!="mac" and OS!="ios" and OS!="android" and chromeos!=1', { 31 'use_pulseaudio%': 1, 32 }, { 33 'use_pulseaudio%': 0, 34 }], 35 ], 36 }, 37 'targets': [ 38 { 39 'target_name': 'media', 40 'type': '<(component)', 41 'dependencies': [ 42 '../base/base.gyp:base', 43 '../crypto/crypto.gyp:crypto', 44 '../skia/skia.gyp:skia', 45 '../third_party/opus/opus.gyp:opus', 46 '../ui/ui.gyp:ui', 47 '../url/url.gyp:url_lib', 48 ], 49 'defines': [ 50 'MEDIA_IMPLEMENTATION', 51 ], 52 'include_dirs': [ 53 '..', 54 ], 55 'sources': [ 56 'audio/agc_audio_stream.h', 57 'audio/android/audio_manager_android.cc', 58 'audio/android/audio_manager_android.h', 59 'audio/android/opensles_input.cc', 60 'audio/android/opensles_input.h', 61 'audio/android/opensles_output.cc', 62 'audio/android/opensles_output.h', 63 'audio/async_socket_io_handler.h', 64 'audio/async_socket_io_handler_posix.cc', 65 'audio/async_socket_io_handler_win.cc', 66 'audio/audio_buffers_state.cc', 67 'audio/audio_buffers_state.h', 68 'audio/audio_device_name.cc', 69 'audio/audio_device_name.h', 70 'audio/audio_device_thread.cc', 71 'audio/audio_device_thread.h', 72 'audio/audio_input_controller.cc', 73 'audio/audio_input_controller.h', 74 'audio/audio_input_device.cc', 75 'audio/audio_input_device.h', 76 'audio/audio_input_ipc.cc', 77 'audio/audio_input_ipc.h', 78 'audio/audio_io.h', 79 'audio/audio_manager.cc', 80 'audio/audio_manager.h', 81 'audio/audio_manager_base.cc', 82 'audio/audio_manager_base.h', 83 'audio/audio_output_controller.cc', 84 'audio/audio_output_controller.h', 85 'audio/audio_output_device.cc', 86 'audio/audio_output_device.h', 87 'audio/audio_output_dispatcher.cc', 88 'audio/audio_output_dispatcher.h', 89 'audio/audio_output_dispatcher_impl.cc', 90 'audio/audio_output_dispatcher_impl.h', 91 'audio/audio_output_ipc.cc', 92 'audio/audio_output_ipc.h', 93 'audio/audio_output_proxy.cc', 94 'audio/audio_output_proxy.h', 95 'audio/audio_output_resampler.cc', 96 'audio/audio_output_resampler.h', 97 'audio/audio_silence_detector.cc', 98 'audio/audio_silence_detector.h', 99 'audio/audio_source_diverter.h', 100 'audio/audio_util.cc', 101 'audio/audio_util.h', 102 'audio/cras/audio_manager_cras.cc', 103 'audio/cras/audio_manager_cras.h', 104 'audio/cras/cras_input.cc', 105 'audio/cras/cras_input.h', 106 'audio/cras/cras_unified.cc', 107 'audio/cras/cras_unified.h', 108 'audio/cross_process_notification.cc', 109 'audio/cross_process_notification.h', 110 'audio/cross_process_notification_posix.cc', 111 'audio/cross_process_notification_win.cc', 112 'audio/fake_audio_consumer.cc', 113 'audio/fake_audio_consumer.h', 114 'audio/fake_audio_input_stream.cc', 115 'audio/fake_audio_input_stream.h', 116 'audio/fake_audio_output_stream.cc', 117 'audio/fake_audio_output_stream.h', 118 'audio/ios/audio_manager_ios.h', 119 'audio/ios/audio_manager_ios.mm', 120 'audio/ios/audio_session_util_ios.h', 121 'audio/ios/audio_session_util_ios.mm', 122 'audio/linux/alsa_input.cc', 123 'audio/linux/alsa_input.h', 124 'audio/linux/alsa_output.cc', 125 'audio/linux/alsa_output.h', 126 'audio/linux/alsa_util.cc', 127 'audio/linux/alsa_util.h', 128 'audio/linux/alsa_wrapper.cc', 129 'audio/linux/alsa_wrapper.h', 130 'audio/linux/audio_manager_linux.cc', 131 'audio/linux/audio_manager_linux.h', 132 'audio/mac/aggregate_device_manager.cc', 133 'audio/mac/aggregate_device_manager.h', 134 'audio/mac/audio_auhal_mac.cc', 135 'audio/mac/audio_auhal_mac.h', 136 'audio/mac/audio_device_listener_mac.cc', 137 'audio/mac/audio_device_listener_mac.h', 138 'audio/mac/audio_input_mac.cc', 139 'audio/mac/audio_input_mac.h', 140 'audio/mac/audio_low_latency_input_mac.cc', 141 'audio/mac/audio_low_latency_input_mac.h', 142 'audio/mac/audio_low_latency_output_mac.cc', 143 'audio/mac/audio_low_latency_output_mac.h', 144 'audio/mac/audio_manager_mac.cc', 145 'audio/mac/audio_manager_mac.h', 146 'audio/mac/audio_synchronized_mac.cc', 147 'audio/mac/audio_synchronized_mac.h', 148 'audio/mac/audio_unified_mac.cc', 149 'audio/mac/audio_unified_mac.h', 150 'audio/null_audio_sink.cc', 151 'audio/null_audio_sink.h', 152 'audio/openbsd/audio_manager_openbsd.cc', 153 'audio/openbsd/audio_manager_openbsd.h', 154 'audio/pulse/audio_manager_pulse.cc', 155 'audio/pulse/audio_manager_pulse.h', 156 'audio/pulse/pulse_output.cc', 157 'audio/pulse/pulse_output.h', 158 'audio/pulse/pulse_input.cc', 159 'audio/pulse/pulse_input.h', 160 'audio/pulse/pulse_unified.cc', 161 'audio/pulse/pulse_unified.h', 162 'audio/pulse/pulse_util.cc', 163 'audio/pulse/pulse_util.h', 164 'audio/sample_rates.cc', 165 'audio/sample_rates.h', 166 'audio/scoped_loop_observer.cc', 167 'audio/scoped_loop_observer.h', 168 'audio/simple_sources.cc', 169 'audio/simple_sources.h', 170 'audio/virtual_audio_input_stream.cc', 171 'audio/virtual_audio_input_stream.h', 172 'audio/virtual_audio_output_stream.cc', 173 'audio/virtual_audio_output_stream.h', 174 'audio/win/audio_device_listener_win.cc', 175 'audio/win/audio_device_listener_win.h', 176 'audio/win/audio_low_latency_input_win.cc', 177 'audio/win/audio_low_latency_input_win.h', 178 'audio/win/audio_low_latency_output_win.cc', 179 'audio/win/audio_low_latency_output_win.h', 180 'audio/win/audio_manager_win.cc', 181 'audio/win/audio_manager_win.h', 182 'audio/win/audio_unified_win.cc', 183 'audio/win/audio_unified_win.h', 184 'audio/win/avrt_wrapper_win.cc', 185 'audio/win/avrt_wrapper_win.h', 186 'audio/win/device_enumeration_win.cc', 187 'audio/win/device_enumeration_win.h', 188 'audio/win/core_audio_util_win.cc', 189 'audio/win/core_audio_util_win.h', 190 'audio/win/wavein_input_win.cc', 191 'audio/win/wavein_input_win.h', 192 'audio/win/waveout_output_win.cc', 193 'audio/win/waveout_output_win.h', 194 'base/android/demuxer_stream_player_params.cc', 195 'base/android/demuxer_stream_player_params.h', 196 'base/android/media_player_manager.h', 197 'base/android/media_resource_getter.cc', 198 'base/android/media_resource_getter.h', 199 'base/audio_buffer.cc', 200 'base/audio_buffer.h', 201 'base/audio_capturer_source.h', 202 'base/audio_converter.cc', 203 'base/audio_converter.h', 204 'base/audio_decoder.cc', 205 'base/audio_decoder.h', 206 'base/audio_decoder_config.cc', 207 'base/audio_decoder_config.h', 208 'base/audio_fifo.cc', 209 'base/audio_fifo.h', 210 'base/audio_hardware_config.cc', 211 'base/audio_hardware_config.h', 212 'base/audio_hash.cc', 213 'base/audio_hash.h', 214 'base/audio_pull_fifo.cc', 215 'base/audio_pull_fifo.h', 216 'base/audio_renderer.cc', 217 'base/audio_renderer.h', 218 'base/audio_renderer_sink.h', 219 'base/audio_renderer_mixer.cc', 220 'base/audio_renderer_mixer.h', 221 'base/audio_renderer_mixer_input.cc', 222 'base/audio_renderer_mixer_input.h', 223 'base/audio_splicer.cc', 224 'base/audio_splicer.h', 225 'base/audio_timestamp_helper.cc', 226 'base/audio_timestamp_helper.h', 227 'base/bind_to_loop.h', 228 'base/bitstream_buffer.h', 229 'base/bit_reader.cc', 230 'base/bit_reader.h', 231 'base/buffers.h', 232 'base/byte_queue.cc', 233 'base/byte_queue.h', 234 'base/callback_holder.h', 235 'base/channel_mixer.cc', 236 'base/channel_mixer.h', 237 'base/clock.cc', 238 'base/clock.h', 239 'base/container_names.cc', 240 'base/container_names.h', 241 'base/data_buffer.cc', 242 'base/data_buffer.h', 243 'base/data_source.cc', 244 'base/data_source.h', 245 'base/decoder_buffer.cc', 246 'base/decoder_buffer.h', 247 'base/decoder_buffer_queue.cc', 248 'base/decoder_buffer_queue.h', 249 'base/decryptor.cc', 250 'base/decryptor.h', 251 'base/decrypt_config.cc', 252 'base/decrypt_config.h', 253 'base/demuxer.cc', 254 'base/demuxer.h', 255 'base/demuxer_stream.cc', 256 'base/demuxer_stream.h', 257 'base/djb2.cc', 258 'base/djb2.h', 259 'base/filter_collection.cc', 260 'base/filter_collection.h', 261 'base/media.cc', 262 'base/media.h', 263 'base/media_keys.cc', 264 'base/media_keys.h', 265 'base/media_log.cc', 266 'base/media_log.h', 267 'base/media_log_event.h', 268 'base/media_posix.cc', 269 'base/media_switches.cc', 270 'base/media_switches.h', 271 'base/media_win.cc', 272 'base/multi_channel_resampler.cc', 273 'base/multi_channel_resampler.h', 274 'base/pipeline.cc', 275 'base/pipeline.h', 276 'base/pipeline_status.cc', 277 'base/pipeline_status.h', 278 'base/ranges.cc', 279 'base/ranges.h', 280 'base/sample_format.cc', 281 'base/sample_format.h', 282 'base/scoped_histogram_timer.h', 283 'base/seekable_buffer.cc', 284 'base/seekable_buffer.h', 285 'base/serial_runner.cc', 286 'base/serial_runner.h', 287 'base/simd/convert_rgb_to_yuv.h', 288 'base/simd/convert_rgb_to_yuv_c.cc', 289 'base/simd/convert_yuv_to_rgb.h', 290 'base/simd/convert_yuv_to_rgb_c.cc', 291 'base/simd/filter_yuv.h', 292 'base/simd/filter_yuv_c.cc', 293 'base/simd/yuv_to_rgb_table.cc', 294 'base/simd/yuv_to_rgb_table.h', 295 'base/sinc_resampler.cc', 296 'base/sinc_resampler.h', 297 'base/stream_parser.cc', 298 'base/stream_parser.h', 299 'base/stream_parser_buffer.cc', 300 'base/stream_parser_buffer.h', 301 'base/text_track.h', 302 'base/video_decoder.cc', 303 'base/video_decoder.h', 304 'base/video_decoder_config.cc', 305 'base/video_decoder_config.h', 306 'base/video_frame.cc', 307 'base/video_frame.h', 308 'base/video_renderer.cc', 309 'base/video_renderer.h', 310 'base/video_util.cc', 311 'base/video_util.h', 312 'base/yuv_convert.cc', 313 'base/yuv_convert.h', 314 'crypto/aes_decryptor.cc', 315 'crypto/aes_decryptor.h', 316 'ffmpeg/ffmpeg_common.cc', 317 'ffmpeg/ffmpeg_common.h', 318 'filters/audio_decoder_selector.cc', 319 'filters/audio_decoder_selector.h', 320 'filters/audio_file_reader.cc', 321 'filters/audio_file_reader.h', 322 'filters/audio_renderer_algorithm.cc', 323 'filters/audio_renderer_algorithm.h', 324 'filters/audio_renderer_impl.cc', 325 'filters/audio_renderer_impl.h', 326 'filters/blocking_url_protocol.cc', 327 'filters/blocking_url_protocol.h', 328 'filters/chunk_demuxer.cc', 329 'filters/chunk_demuxer.h', 330 'filters/decrypting_audio_decoder.cc', 331 'filters/decrypting_audio_decoder.h', 332 'filters/decrypting_demuxer_stream.cc', 333 'filters/decrypting_demuxer_stream.h', 334 'filters/decrypting_video_decoder.cc', 335 'filters/decrypting_video_decoder.h', 336 'filters/fake_demuxer_stream.cc', 337 'filters/fake_demuxer_stream.h', 338 'filters/fake_video_decoder.cc', 339 'filters/fake_video_decoder.h', 340 'filters/ffmpeg_audio_decoder.cc', 341 'filters/ffmpeg_audio_decoder.h', 342 'filters/ffmpeg_demuxer.cc', 343 'filters/ffmpeg_demuxer.h', 344 'filters/ffmpeg_glue.cc', 345 'filters/ffmpeg_glue.h', 346 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc', 347 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.h', 348 'filters/ffmpeg_video_decoder.cc', 349 'filters/ffmpeg_video_decoder.h', 350 'filters/file_data_source.cc', 351 'filters/file_data_source.h', 352 'filters/gpu_video_decoder.cc', 353 'filters/gpu_video_decoder.h', 354 'filters/h264_to_annex_b_bitstream_converter.cc', 355 'filters/h264_to_annex_b_bitstream_converter.h', 356 'filters/in_memory_url_protocol.cc', 357 'filters/in_memory_url_protocol.h', 358 'filters/opus_audio_decoder.cc', 359 'filters/opus_audio_decoder.h', 360 'filters/skcanvas_video_renderer.cc', 361 'filters/skcanvas_video_renderer.h', 362 'filters/source_buffer_stream.cc', 363 'filters/source_buffer_stream.h', 364 'filters/stream_parser_factory.cc', 365 'filters/stream_parser_factory.h', 366 'filters/video_decoder_selector.cc', 367 'filters/video_decoder_selector.h', 368 'filters/video_frame_stream.cc', 369 'filters/video_frame_stream.h', 370 'filters/video_renderer_base.cc', 371 'filters/video_renderer_base.h', 372 'filters/vpx_video_decoder.cc', 373 'filters/vpx_video_decoder.h', 374 'video/capture/android/video_capture_device_android.cc', 375 'video/capture/android/video_capture_device_android.h', 376 'video/capture/fake_video_capture_device.cc', 377 'video/capture/fake_video_capture_device.h', 378 'video/capture/linux/video_capture_device_linux.cc', 379 'video/capture/linux/video_capture_device_linux.h', 380 'video/capture/mac/video_capture_device_mac.h', 381 'video/capture/mac/video_capture_device_mac.mm', 382 'video/capture/mac/video_capture_device_qtkit_mac.h', 383 'video/capture/mac/video_capture_device_qtkit_mac.mm', 384 385 'video/capture/video_capture.h', 386 'video/capture/video_capture_device.h', 387 'video/capture/video_capture_device_dummy.cc', 388 'video/capture/video_capture_device_dummy.h', 389 'video/capture/video_capture_proxy.cc', 390 'video/capture/video_capture_proxy.h', 391 'video/capture/video_capture_types.h', 392 'video/capture/win/capability_list_win.cc', 393 'video/capture/win/capability_list_win.h', 394 'video/capture/win/filter_base_win.cc', 395 'video/capture/win/filter_base_win.h', 396 'video/capture/win/pin_base_win.cc', 397 'video/capture/win/pin_base_win.h', 398 'video/capture/win/sink_filter_observer_win.h', 399 'video/capture/win/sink_filter_win.cc', 400 'video/capture/win/sink_filter_win.h', 401 'video/capture/win/sink_input_pin_win.cc', 402 'video/capture/win/sink_input_pin_win.h', 403 'video/capture/win/video_capture_device_mf_win.cc', 404 'video/capture/win/video_capture_device_mf_win.h', 405 'video/capture/win/video_capture_device_win.cc', 406 'video/capture/win/video_capture_device_win.h', 407 'video/picture.cc', 408 'video/picture.h', 409 'video/video_decode_accelerator.cc', 410 'video/video_decode_accelerator.h', 411 'webm/webm_audio_client.cc', 412 'webm/webm_audio_client.h', 413 'webm/webm_cluster_parser.cc', 414 'webm/webm_cluster_parser.h', 415 'webm/webm_constants.cc', 416 'webm/webm_constants.h', 417 'webm/webm_content_encodings.cc', 418 'webm/webm_content_encodings.h', 419 'webm/webm_content_encodings_client.cc', 420 'webm/webm_content_encodings_client.h', 421 'webm/webm_crypto_helpers.cc', 422 'webm/webm_crypto_helpers.h', 423 'webm/webm_info_parser.cc', 424 'webm/webm_info_parser.h', 425 'webm/webm_parser.cc', 426 'webm/webm_parser.h', 427 'webm/webm_stream_parser.cc', 428 'webm/webm_stream_parser.h', 429 'webm/webm_tracks_parser.cc', 430 'webm/webm_tracks_parser.h', 431 'webm/webm_video_client.cc', 432 'webm/webm_video_client.h', 433 'webm/webm_webvtt_parser.cc', 434 'webm/webm_webvtt_parser.h' 435 ], 436 'direct_dependent_settings': { 437 'include_dirs': [ 438 '..', 439 ], 440 }, 441 'conditions': [ 442 ['arm_neon==1', { 443 'defines': [ 444 'USE_NEON' 445 ], 446 }], 447 ['OS!="ios"', { 448 'dependencies': [ 449 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 450 'shared_memory_support', 451 ], 452 }], 453 ['media_use_ffmpeg==1', { 454 'dependencies': [ 455 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 456 ], 457 }, { # media_use_ffmpeg==0 458 # Exclude the sources that depend on ffmpeg. 459 'sources!': [ 460 'base/container_names.cc', 461 'base/container_names.h', 462 'base/media_posix.cc', 463 'ffmpeg/ffmpeg_common.cc', 464 'ffmpeg/ffmpeg_common.h', 465 'filters/audio_file_reader.cc', 466 'filters/audio_file_reader.h', 467 'filters/blocking_url_protocol.cc', 468 'filters/blocking_url_protocol.h', 469 'filters/ffmpeg_audio_decoder.cc', 470 'filters/ffmpeg_audio_decoder.h', 471 'filters/ffmpeg_demuxer.cc', 472 'filters/ffmpeg_demuxer.h', 473 'filters/ffmpeg_glue.cc', 474 'filters/ffmpeg_glue.h', 475 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc', 476 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.h', 477 'filters/ffmpeg_video_decoder.cc', 478 'filters/ffmpeg_video_decoder.h', 479 ], 480 }], 481 ['media_use_libvpx==1', { 482 'dependencies': [ 483 '<(DEPTH)/third_party/libvpx/libvpx.gyp:libvpx', 484 ], 485 }, { # media_use_libvpx==0 486 'direct_dependent_settings': { 487 'defines': [ 488 'MEDIA_DISABLE_LIBVPX', 489 ], 490 }, 491 # Exclude the sources that depend on libvpx. 492 'sources!': [ 493 'filters/vpx_video_decoder.cc', 494 'filters/vpx_video_decoder.h', 495 ], 496 }], 497 ['OS=="ios"', { 498 'includes': [ 499 # For shared_memory_support_sources variable. 500 'shared_memory_support.gypi', 501 ], 502 'sources': [ 503 'base/media_stub.cc', 504 # These sources are normally built via a dependency on the 505 # shared_memory_support target, but that target is not built on iOS. 506 # Instead, directly build only the files that are needed for iOS. 507 '<@(shared_memory_support_sources)', 508 ], 509 'sources/': [ 510 # Exclude everything but iOS-specific files. 511 ['exclude', '\\.(cc|mm)$'], 512 ['include', '_ios\\.(cc|mm)$'], 513 ['include', '(^|/)ios/'], 514 # Re-include specific pieces. 515 # iOS support is limited to audio input only. 516 ['include', '^audio/audio_buffers_state\\.'], 517 ['include', '^audio/audio_input_controller\\.'], 518 ['include', '^audio/audio_manager\\.'], 519 ['include', '^audio/audio_manager_base\\.'], 520 ['include', '^audio/audio_parameters\\.'], 521 ['include', '^audio/fake_audio_consumer\\.'], 522 ['include', '^audio/fake_audio_input_stream\\.'], 523 ['include', '^audio/fake_audio_output_stream\\.'], 524 ['include', '^base/audio_bus\\.'], 525 ['include', '^base/channel_layout\\.'], 526 ['include', '^base/media\\.cc$'], 527 ['include', '^base/media_stub\\.cc$'], 528 ['include', '^base/media_switches\\.'], 529 ['include', '^base/vector_math\\.'], 530 ], 531 'link_settings': { 532 'libraries': [ 533 '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework', 534 '$(SDKROOT)/System/Library/Frameworks/AVFoundation.framework', 535 '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework', 536 ], 537 }, 538 }], 539 ['OS=="android"', { 540 'link_settings': { 541 'libraries': [ 542 '-lOpenSLES', 543 ], 544 }, 545 'include_dirs': [ 546 '<(SHARED_INTERMEDIATE_DIR)/media', 547 ], 548 'dependencies': [ 549 'media_android_jni_headers', 550 'player_android', 551 'video_capture_android_jni_headers', 552 ], 553 'sources': [ 554 'base/media.cc', 555 'base/media.h', 556 'base/media_stub.cc', 557 ], 558 'conditions': [ 559 ['android_webview_build==0', { 560 'dependencies': [ 561 'media_java', 562 ], 563 }], 564 ], 565 }], 566 # A simple WebM encoder for animated avatars on ChromeOS. 567 ['chromeos==1', { 568 'dependencies': [ 569 '../third_party/libvpx/libvpx.gyp:libvpx', 570 '../third_party/libyuv/libyuv.gyp:libyuv', 571 ], 572 'sources': [ 573 'webm/chromeos/ebml_writer.cc', 574 'webm/chromeos/ebml_writer.h', 575 'webm/chromeos/webm_encoder.cc', 576 'webm/chromeos/webm_encoder.h', 577 ], 578 }], 579 ['use_alsa==1', { 580 'link_settings': { 581 'libraries': [ 582 '-lasound', 583 ], 584 }, 585 }, { # use_alsa==0 586 'sources/': [ ['exclude', '/alsa_'], 587 ['exclude', '/audio_manager_linux'] ], 588 }], 589 ['OS!="openbsd"', { 590 'sources!': [ 591 'audio/openbsd/audio_manager_openbsd.cc', 592 'audio/openbsd/audio_manager_openbsd.h', 593 ], 594 }], 595 ['OS=="linux"', { 596 'variables': { 597 'conditions': [ 598 ['sysroot!=""', { 599 'pkg-config': '../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"', 600 }, { 601 'pkg-config': 'pkg-config' 602 }], 603 ], 604 }, 605 'conditions': [ 606 ['use_x11==1', { 607 'link_settings': { 608 'libraries': [ 609 '-lX11', 610 '-lXdamage', 611 '-lXext', 612 '-lXfixes', 613 ], 614 }, 615 }], 616 ['use_cras==1', { 617 'cflags': [ 618 '<!@(<(pkg-config) --cflags libcras)', 619 ], 620 'link_settings': { 621 'libraries': [ 622 '<!@(<(pkg-config) --libs libcras)', 623 ], 624 }, 625 'defines': [ 626 'USE_CRAS', 627 ], 628 }, { # else: use_cras==0 629 'sources!': [ 630 'audio/cras/audio_manager_cras.cc', 631 'audio/cras/audio_manager_cras.h', 632 'audio/cras/cras_input.cc', 633 'audio/cras/cras_input.h', 634 'audio/cras/cras_unified.cc', 635 'audio/cras/cras_unified.h', 636 ], 637 }], 638 ], 639 }], 640 ['OS!="linux"', { 641 'sources!': [ 642 'audio/cras/audio_manager_cras.cc', 643 'audio/cras/audio_manager_cras.h', 644 'audio/cras/cras_input.cc', 645 'audio/cras/cras_input.h', 646 'audio/cras/cras_unified.cc', 647 'audio/cras/cras_unified.h', 648 ], 649 }], 650 ['use_pulseaudio==1', { 651 'cflags': [ 652 '<!@(pkg-config --cflags libpulse)', 653 ], 654 'defines': [ 655 'USE_PULSEAUDIO', 656 ], 657 'conditions': [ 658 ['linux_link_pulseaudio==0', { 659 'defines': [ 660 'DLOPEN_PULSEAUDIO', 661 ], 662 'variables': { 663 'generate_stubs_script': '../tools/generate_stubs/generate_stubs.py', 664 'extra_header': 'audio/pulse/pulse_stub_header.fragment', 665 'sig_files': ['audio/pulse/pulse.sigs'], 666 'outfile_type': 'posix_stubs', 667 'stubs_filename_root': 'pulse_stubs', 668 'project_path': 'media/audio/pulse', 669 'intermediate_dir': '<(INTERMEDIATE_DIR)', 670 'output_root': '<(SHARED_INTERMEDIATE_DIR)/pulse', 671 }, 672 'include_dirs': [ 673 '<(output_root)', 674 ], 675 'actions': [ 676 { 677 'action_name': 'generate_stubs', 678 'inputs': [ 679 '<(generate_stubs_script)', 680 '<(extra_header)', 681 '<@(sig_files)', 682 ], 683 'outputs': [ 684 '<(intermediate_dir)/<(stubs_filename_root).cc', 685 '<(output_root)/<(project_path)/<(stubs_filename_root).h', 686 ], 687 'action': ['python', 688 '<(generate_stubs_script)', 689 '-i', '<(intermediate_dir)', 690 '-o', '<(output_root)/<(project_path)', 691 '-t', '<(outfile_type)', 692 '-e', '<(extra_header)', 693 '-s', '<(stubs_filename_root)', 694 '-p', '<(project_path)', 695 '<@(_inputs)', 696 ], 697 'process_outputs_as_sources': 1, 698 'message': 'Generating Pulse stubs for dynamic loading.', 699 }, 700 ], 701 'conditions': [ 702 # Linux/Solaris need libdl for dlopen() and friends. 703 ['OS=="linux" or OS=="solaris"', { 704 'link_settings': { 705 'libraries': [ 706 '-ldl', 707 ], 708 }, 709 }], 710 ], 711 }, { # else: linux_link_pulseaudio==0 712 'link_settings': { 713 'ldflags': [ 714 '<!@(pkg-config --libs-only-L --libs-only-other libpulse)', 715 ], 716 'libraries': [ 717 '<!@(pkg-config --libs-only-l libpulse)', 718 ], 719 }, 720 }], 721 ], 722 }, { # else: use_pulseaudio==0 723 'sources!': [ 724 'audio/pulse/audio_manager_pulse.cc', 725 'audio/pulse/audio_manager_pulse.h', 726 'audio/pulse/pulse_input.cc', 727 'audio/pulse/pulse_input.h', 728 'audio/pulse/pulse_output.cc', 729 'audio/pulse/pulse_output.h', 730 'audio/pulse/pulse_unified.cc', 731 'audio/pulse/pulse_unified.h', 732 'audio/pulse/pulse_util.cc', 733 'audio/pulse/pulse_util.h', 734 ], 735 }], 736 ['os_posix==1', { 737 'sources!': [ 738 'video/capture/video_capture_device_dummy.cc', 739 'video/capture/video_capture_device_dummy.h', 740 ], 741 }], 742 ['OS=="mac"', { 743 'link_settings': { 744 'libraries': [ 745 '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework', 746 '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework', 747 '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework', 748 '$(SDKROOT)/System/Library/Frameworks/CoreVideo.framework', 749 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', 750 '$(SDKROOT)/System/Library/Frameworks/QTKit.framework', 751 ], 752 }, 753 }], 754 ['OS=="win"', { 755 'sources!': [ 756 'video/capture/video_capture_device_dummy.cc', 757 'video/capture/video_capture_device_dummy.h', 758 ], 759 'link_settings': { 760 'libraries': [ 761 '-lmf.lib', 762 '-lmfplat.lib', 763 '-lmfreadwrite.lib', 764 '-lmfuuid.lib', 765 ], 766 }, 767 # Specify delayload for media.dll. 768 'msvs_settings': { 769 'VCLinkerTool': { 770 'DelayLoadDLLs': [ 771 'mf.dll', 772 'mfplat.dll', 773 'mfreadwrite.dll', 774 ], 775 }, 776 }, 777 # Specify delayload for components that link with media.lib. 778 'all_dependent_settings': { 779 'msvs_settings': { 780 'VCLinkerTool': { 781 'DelayLoadDLLs': [ 782 'mf.dll', 783 'mfplat.dll', 784 'mfreadwrite.dll', 785 ], 786 }, 787 }, 788 }, 789 # TODO(wolenetz): Fix size_t to int truncations in win64. See 790 # http://crbug.com/171009 791 'conditions': [ 792 ['target_arch=="x64"', { 793 'msvs_disabled_warnings': [ 4267, ], 794 }], 795 ], 796 }], 797 ['proprietary_codecs==1 or branding=="Chrome"', { 798 'sources': [ 799 'mp4/aac.cc', 800 'mp4/aac.h', 801 'mp4/avc.cc', 802 'mp4/avc.h', 803 'mp4/box_definitions.cc', 804 'mp4/box_definitions.h', 805 'mp4/box_reader.cc', 806 'mp4/box_reader.h', 807 'mp4/cenc.cc', 808 'mp4/cenc.h', 809 'mp4/es_descriptor.cc', 810 'mp4/es_descriptor.h', 811 'mp4/mp4_stream_parser.cc', 812 'mp4/mp4_stream_parser.h', 813 'mp4/offset_byte_queue.cc', 814 'mp4/offset_byte_queue.h', 815 'mp4/track_run_iterator.cc', 816 'mp4/track_run_iterator.h', 817 ], 818 }], 819 ['toolkit_uses_gtk==1', { 820 'dependencies': [ 821 '../build/linux/system.gyp:gtk', 822 ], 823 }], 824 # ios check is necessary due to http://crbug.com/172682. 825 ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', { 826 'dependencies': [ 827 'media_asm', 828 'media_mmx', 829 'media_sse', 830 'media_sse2', 831 ], 832 'sources': [ 833 'base/simd/convert_yuv_to_rgb_x86.cc', 834 ], 835 }], 836 ['google_tv==1', { 837 'defines': [ 838 'ENABLE_EAC3_PLAYBACK', 839 ], 840 }], 841 ], 842 'target_conditions': [ 843 ['OS=="ios"', { 844 'sources/': [ 845 # Pull in specific Mac files for iOS (which have been filtered out 846 # by file name rules). 847 ['include', '^audio/mac/audio_input_mac\\.'], 848 ], 849 }], 850 ], 851 }, 852 { 853 'target_name': 'media_unittests', 854 'type': '<(gtest_target_type)', 855 'dependencies': [ 856 'media', 857 'media_test_support', 858 '../base/base.gyp:base', 859 '../base/base.gyp:base_i18n', 860 '../base/base.gyp:test_support_base', 861 '../skia/skia.gyp:skia', 862 '../testing/gmock.gyp:gmock', 863 '../testing/gtest.gyp:gtest', 864 '../ui/ui.gyp:ui', 865 ], 866 'sources': [ 867 'audio/async_socket_io_handler_unittest.cc', 868 'audio/audio_input_controller_unittest.cc', 869 'audio/audio_input_device_unittest.cc', 870 'audio/audio_input_unittest.cc', 871 'audio/audio_input_volume_unittest.cc', 872 'audio/audio_low_latency_input_output_unittest.cc', 873 'audio/audio_output_controller_unittest.cc', 874 'audio/audio_output_device_unittest.cc', 875 'audio/audio_output_proxy_unittest.cc', 876 'audio/audio_parameters_unittest.cc', 877 'audio/audio_silence_detector_unittest.cc', 878 'audio/cross_process_notification_unittest.cc', 879 'audio/fake_audio_consumer_unittest.cc', 880 'audio/ios/audio_manager_ios_unittest.cc', 881 'audio/linux/alsa_output_unittest.cc', 882 'audio/mac/audio_auhal_mac_unittest.cc', 883 'audio/mac/audio_device_listener_mac_unittest.cc', 884 'audio/mac/audio_low_latency_input_mac_unittest.cc', 885 'audio/simple_sources_unittest.cc', 886 'audio/virtual_audio_input_stream_unittest.cc', 887 'audio/virtual_audio_output_stream_unittest.cc', 888 'audio/win/audio_device_listener_win_unittest.cc', 889 'audio/win/audio_low_latency_input_win_unittest.cc', 890 'audio/win/audio_low_latency_output_win_unittest.cc', 891 'audio/win/audio_output_win_unittest.cc', 892 'audio/win/audio_unified_win_unittest.cc', 893 'audio/win/core_audio_util_win_unittest.cc', 894 'base/android/media_codec_bridge_unittest.cc', 895 'base/android/media_source_player_unittest.cc', 896 'base/audio_buffer_unittest.cc', 897 'base/audio_bus_unittest.cc', 898 'base/audio_converter_unittest.cc', 899 'base/audio_fifo_unittest.cc', 900 'base/audio_hardware_config_unittest.cc', 901 'base/audio_hash_unittest.cc', 902 'base/audio_pull_fifo_unittest.cc', 903 'base/audio_renderer_mixer_input_unittest.cc', 904 'base/audio_renderer_mixer_unittest.cc', 905 'base/audio_splicer_unittest.cc', 906 'base/audio_timestamp_helper_unittest.cc', 907 'base/bind_to_loop_unittest.cc', 908 'base/bit_reader_unittest.cc', 909 'base/callback_holder_unittest.cc', 910 'base/channel_mixer_unittest.cc', 911 'base/clock_unittest.cc', 912 'base/container_names_unittest.cc', 913 'base/data_buffer_unittest.cc', 914 'base/decoder_buffer_queue_unittest.cc', 915 'base/decoder_buffer_unittest.cc', 916 'base/djb2_unittest.cc', 917 'base/gmock_callback_support_unittest.cc', 918 'base/multi_channel_resampler_unittest.cc', 919 'base/pipeline_unittest.cc', 920 'base/ranges_unittest.cc', 921 'base/run_all_unittests.cc', 922 'base/scoped_histogram_timer_unittest.cc', 923 'base/seekable_buffer_unittest.cc', 924 'base/sinc_resampler_unittest.cc', 925 'base/test_data_util.cc', 926 'base/test_data_util.h', 927 'base/vector_math_testing.h', 928 'base/vector_math_unittest.cc', 929 'base/video_frame_unittest.cc', 930 'base/video_util_unittest.cc', 931 'base/yuv_convert_unittest.cc', 932 'crypto/aes_decryptor_unittest.cc', 933 'ffmpeg/ffmpeg_common_unittest.cc', 934 'filters/audio_decoder_selector_unittest.cc', 935 'filters/audio_file_reader_unittest.cc', 936 'filters/audio_renderer_algorithm_unittest.cc', 937 'filters/audio_renderer_impl_unittest.cc', 938 'filters/blocking_url_protocol_unittest.cc', 939 'filters/chunk_demuxer_unittest.cc', 940 'filters/decrypting_audio_decoder_unittest.cc', 941 'filters/decrypting_demuxer_stream_unittest.cc', 942 'filters/decrypting_video_decoder_unittest.cc', 943 'filters/fake_demuxer_stream_unittest.cc', 944 'filters/fake_video_decoder_unittest.cc', 945 'filters/ffmpeg_audio_decoder_unittest.cc', 946 'filters/ffmpeg_demuxer_unittest.cc', 947 'filters/ffmpeg_glue_unittest.cc', 948 'filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc', 949 'filters/ffmpeg_video_decoder_unittest.cc', 950 'filters/file_data_source_unittest.cc', 951 'filters/h264_to_annex_b_bitstream_converter_unittest.cc', 952 'filters/pipeline_integration_test.cc', 953 'filters/pipeline_integration_test_base.cc', 954 'filters/skcanvas_video_renderer_unittest.cc', 955 'filters/source_buffer_stream_unittest.cc', 956 'filters/video_decoder_selector_unittest.cc', 957 'filters/video_frame_stream_unittest.cc', 958 'filters/video_renderer_base_unittest.cc', 959 'video/capture/video_capture_device_unittest.cc', 960 'webm/cluster_builder.cc', 961 'webm/cluster_builder.h', 962 'webm/tracks_builder.cc', 963 'webm/tracks_builder.h', 964 'webm/webm_cluster_parser_unittest.cc', 965 'webm/webm_content_encodings_client_unittest.cc', 966 'webm/webm_parser_unittest.cc', 967 'webm/webm_tracks_parser_unittest.cc', 968 'webm/webm_webvtt_parser_unittest.cc', 969 ], 970 'conditions': [ 971 ['arm_neon==1', { 972 'defines': [ 973 'USE_NEON' 974 ], 975 }], 976 ['OS!="ios"', { 977 'dependencies': [ 978 'shared_memory_support', 979 ], 980 }], 981 ['media_use_ffmpeg==1', { 982 'dependencies': [ 983 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 984 ], 985 }], 986 ['os_posix==1 and OS!="mac" and OS!="ios"', { 987 'conditions': [ 988 ['linux_use_tcmalloc==1', { 989 'dependencies': [ 990 '../base/allocator/allocator.gyp:allocator', 991 ], 992 }], 993 ], 994 }], 995 ['OS=="ios"', { 996 'sources/': [ 997 ['exclude', '.*'], 998 ['include', '^audio/audio_input_controller_unittest\\.cc$'], 999 ['include', '^audio/audio_input_unittest\\.cc$'], 1000 ['include', '^audio/audio_parameters_unittest\\.cc$'], 1001 ['include', '^audio/ios/audio_manager_ios_unittest\\.cc$'], 1002 ['include', '^base/mock_reader\\.h$'], 1003 ['include', '^base/run_all_unittests\\.cc$'], 1004 ], 1005 }], 1006 ['OS=="android"', { 1007 'sources!': [ 1008 'audio/audio_input_volume_unittest.cc', 1009 'base/container_names_unittest.cc', 1010 'ffmpeg/ffmpeg_common_unittest.cc', 1011 'filters/audio_file_reader_unittest.cc', 1012 'filters/blocking_url_protocol_unittest.cc', 1013 'filters/chunk_demuxer_unittest.cc', 1014 'filters/ffmpeg_audio_decoder_unittest.cc', 1015 'filters/ffmpeg_demuxer_unittest.cc', 1016 'filters/ffmpeg_glue_unittest.cc', 1017 'filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc', 1018 'filters/ffmpeg_video_decoder_unittest.cc', 1019 'filters/pipeline_integration_test.cc', 1020 'filters/pipeline_integration_test_base.cc', 1021 'mp4/mp4_stream_parser_unittest.cc', 1022 'webm/webm_cluster_parser_unittest.cc', 1023 ], 1024 'conditions': [ 1025 ['gtest_target_type=="shared_library"', { 1026 'dependencies': [ 1027 '../testing/android/native_test.gyp:native_test_native_code', 1028 'player_android', 1029 ], 1030 }], 1031 ], 1032 }], 1033 ['OS=="linux"', { 1034 'conditions': [ 1035 ['use_cras==1', { 1036 'sources': [ 1037 'audio/cras/cras_input_unittest.cc', 1038 'audio/cras/cras_unified_unittest.cc', 1039 ], 1040 'defines': [ 1041 'USE_CRAS', 1042 ], 1043 }], 1044 ], 1045 }], 1046 ['use_alsa==0', { 1047 'sources!': [ 1048 'audio/linux/alsa_output_unittest.cc', 1049 'audio/audio_low_latency_input_output_unittest.cc', 1050 ], 1051 }], 1052 ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', { 1053 'sources': [ 1054 'base/simd/convert_rgb_to_yuv_unittest.cc', 1055 ], 1056 }], 1057 ['proprietary_codecs==1 or branding=="Chrome"', { 1058 'sources': [ 1059 'mp4/aac_unittest.cc', 1060 'mp4/avc_unittest.cc', 1061 'mp4/box_reader_unittest.cc', 1062 'mp4/es_descriptor_unittest.cc', 1063 'mp4/mp4_stream_parser_unittest.cc', 1064 'mp4/offset_byte_queue_unittest.cc', 1065 'mp4/track_run_iterator_unittest.cc', 1066 ], 1067 }], 1068 # TODO(wolenetz): Fix size_t to int truncations in win64. See 1069 # http://crbug.com/171009 1070 ['OS=="win" and target_arch=="x64"', { 1071 'msvs_disabled_warnings': [ 4267, ], 1072 }], 1073 ], 1074 }, 1075 { 1076 'target_name': 'media_test_support', 1077 'type': 'static_library', 1078 'dependencies': [ 1079 'media', 1080 '../base/base.gyp:base', 1081 '../skia/skia.gyp:skia', 1082 '../testing/gmock.gyp:gmock', 1083 '../testing/gtest.gyp:gtest', 1084 ], 1085 'sources': [ 1086 'audio/mock_audio_manager.cc', 1087 'audio/mock_audio_manager.h', 1088 'audio/test_audio_input_controller_factory.cc', 1089 'audio/test_audio_input_controller_factory.h', 1090 'base/fake_audio_render_callback.cc', 1091 'base/fake_audio_render_callback.h', 1092 'base/gmock_callback_support.h', 1093 'base/mock_audio_renderer_sink.cc', 1094 'base/mock_audio_renderer_sink.h', 1095 'base/mock_data_source_host.cc', 1096 'base/mock_data_source_host.h', 1097 'base/mock_demuxer_host.cc', 1098 'base/mock_demuxer_host.h', 1099 'base/mock_filters.cc', 1100 'base/mock_filters.h', 1101 'base/test_helpers.cc', 1102 'base/test_helpers.h', 1103 ], 1104 }, 1105 ], 1106 'conditions': [ 1107 ['OS!="ios" and target_arch!="arm"', { 1108 'targets': [ 1109 { 1110 'target_name': 'media_asm', 1111 'type': 'static_library', 1112 'sources': [ 1113 'base/simd/convert_rgb_to_yuv_ssse3.asm', 1114 'base/simd/convert_yuv_to_rgb_mmx.asm', 1115 'base/simd/convert_yuv_to_rgb_sse.asm', 1116 'base/simd/convert_yuva_to_argb_mmx.asm', 1117 'base/simd/empty_register_state_mmx.asm', 1118 'base/simd/linear_scale_yuv_to_rgb_mmx.asm', 1119 'base/simd/linear_scale_yuv_to_rgb_sse.asm', 1120 'base/simd/scale_yuv_to_rgb_mmx.asm', 1121 'base/simd/scale_yuv_to_rgb_sse.asm', 1122 ], 1123 'conditions': [ 1124 ['component=="shared_library"', { 1125 'variables': { 1126 'yasm_flags': ['-DEXPORT_SYMBOLS'], 1127 }, 1128 }], 1129 ['target_arch=="x64"', { 1130 # Source files optimized for X64 systems. 1131 'sources': [ 1132 'base/simd/linear_scale_yuv_to_rgb_mmx_x64.asm', 1133 'base/simd/scale_yuv_to_rgb_sse2_x64.asm', 1134 ], 1135 'variables': { 1136 'yasm_flags': ['-DARCH_X86_64'], 1137 }, 1138 }], 1139 ['OS=="mac"', { 1140 'variables': { 1141 'yasm_flags': [ 1142 '-DPREFIX', 1143 '-DMACHO', 1144 ], 1145 }, 1146 'sources': [ 1147 # XCode doesn't want to link a pure assembly target and will 1148 # fail to link when it creates an empty file list. So add a 1149 # dummy file keep the linker happy. See http://crbug.com/157073 1150 'base/simd/xcode_hack.c', 1151 ], 1152 }], 1153 ['os_posix==1 and OS!="mac"', { 1154 'variables': { 1155 'conditions': [ 1156 ['target_arch=="ia32"', { 1157 'yasm_flags': [ 1158 '-DX86_32', 1159 '-DELF', 1160 ], 1161 }, { 1162 'yasm_flags': [ 1163 '-DELF', 1164 '-DPIC', 1165 ], 1166 }], 1167 ], 1168 }, 1169 }], 1170 ], 1171 'variables': { 1172 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/media', 1173 'yasm_flags': [ 1174 '-DCHROMIUM', 1175 # In addition to the same path as source asm, let yasm %include 1176 # search path be relative to src/ per Chromium policy. 1177 '-I..', 1178 ], 1179 'yasm_includes': [ 1180 '../third_party/x86inc/x86inc.asm', 1181 'base/simd/convert_rgb_to_yuv_ssse3.inc', 1182 'base/simd/convert_yuv_to_rgb_mmx.inc', 1183 'base/simd/convert_yuva_to_argb_mmx.inc', 1184 'base/simd/linear_scale_yuv_to_rgb_mmx.inc', 1185 'base/simd/media_export.asm', 1186 'base/simd/scale_yuv_to_rgb_mmx.inc', 1187 ], 1188 }, 1189 'msvs_2010_disable_uldi_when_referenced': 1, 1190 'includes': [ 1191 '../third_party/yasm/yasm_compile.gypi', 1192 ], 1193 }, 1194 { 1195 'target_name': 'media_mmx', 1196 'type': 'static_library', 1197 'cflags': [ 1198 '-mmmx', 1199 ], 1200 'include_dirs': [ 1201 '..', 1202 ], 1203 'defines': [ 1204 'MEDIA_IMPLEMENTATION', 1205 ], 1206 'conditions': [ 1207 # TODO(jschuh): Get MMX enabled on Win64. crbug.com/179657 1208 ['OS!="win" or target_arch=="ia32"', { 1209 'sources': [ 1210 'base/simd/filter_yuv_mmx.cc', 1211 ], 1212 }], 1213 ], 1214 }, 1215 { 1216 'target_name': 'media_sse', 1217 'type': 'static_library', 1218 'cflags': [ 1219 '-msse', 1220 ], 1221 'include_dirs': [ 1222 '..', 1223 ], 1224 'defines': [ 1225 'MEDIA_IMPLEMENTATION', 1226 ], 1227 'sources': [ 1228 'base/simd/sinc_resampler_sse.cc', 1229 ], 1230 }, 1231 { 1232 'target_name': 'media_sse2', 1233 'type': 'static_library', 1234 'cflags': [ 1235 '-msse2', 1236 ], 1237 'include_dirs': [ 1238 '..', 1239 ], 1240 'defines': [ 1241 'MEDIA_IMPLEMENTATION', 1242 ], 1243 'sources': [ 1244 'base/simd/convert_rgb_to_yuv_sse2.cc', 1245 'base/simd/convert_rgb_to_yuv_ssse3.cc', 1246 'base/simd/filter_yuv_sse2.cc', 1247 ], 1248 }, 1249 { 1250 'target_name': 'shared_memory_support_sse', 1251 'type': 'static_library', 1252 'cflags': [ 1253 '-msse', 1254 ], 1255 'include_dirs': [ 1256 '..', 1257 ], 1258 'defines': [ 1259 'MEDIA_IMPLEMENTATION', 1260 ], 1261 'sources': [ 1262 'base/simd/vector_math_sse.cc', 1263 ], 1264 }, 1265 ], # targets 1266 }], 1267 ['OS!="ios"', { 1268 'targets': [ 1269 { 1270 # Minimal target for NaCl and other renderer side media clients which 1271 # only need to send audio data across the shared memory to the browser 1272 # process. 1273 'target_name': 'shared_memory_support', 1274 'type': '<(component)', 1275 'dependencies': [ 1276 '../base/base.gyp:base', 1277 ], 1278 'defines': [ 1279 'MEDIA_IMPLEMENTATION', 1280 ], 1281 'include_dirs': [ 1282 '..', 1283 ], 1284 'includes': [ 1285 'shared_memory_support.gypi', 1286 ], 1287 'sources': [ 1288 '<@(shared_memory_support_sources)', 1289 ], 1290 'conditions': [ 1291 ['arm_neon==1', { 1292 'defines': [ 1293 'USE_NEON' 1294 ], 1295 }], 1296 ['target_arch=="ia32" or target_arch=="x64"', { 1297 'dependencies': [ 1298 'shared_memory_support_sse' 1299 ], 1300 }], 1301 ], 1302 }, 1303 { 1304 'target_name': 'seek_tester', 1305 'type': 'executable', 1306 'dependencies': [ 1307 'media', 1308 '../base/base.gyp:base', 1309 ], 1310 'sources': [ 1311 'tools/seek_tester/seek_tester.cc', 1312 ], 1313 }, 1314 { 1315 'target_name': 'demuxer_bench', 1316 'type': 'executable', 1317 'dependencies': [ 1318 'media', 1319 '../base/base.gyp:base', 1320 ], 1321 'sources': [ 1322 'tools/demuxer_bench/demuxer_bench.cc', 1323 ], 1324 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 1325 'msvs_disabled_warnings': [ 4267, ], 1326 }, 1327 ], 1328 }], 1329 ['(OS=="win" or toolkit_uses_gtk==1) and use_aura!=1', { 1330 'targets': [ 1331 { 1332 'target_name': 'shader_bench', 1333 'type': 'executable', 1334 'dependencies': [ 1335 'media', 1336 '../base/base.gyp:base', 1337 '../ui/gl/gl.gyp:gl', 1338 '../ui/ui.gyp:ui', 1339 ], 1340 'sources': [ 1341 'tools/shader_bench/cpu_color_painter.cc', 1342 'tools/shader_bench/cpu_color_painter.h', 1343 'tools/shader_bench/gpu_color_painter.cc', 1344 'tools/shader_bench/gpu_color_painter.h', 1345 'tools/shader_bench/gpu_painter.cc', 1346 'tools/shader_bench/gpu_painter.h', 1347 'tools/shader_bench/painter.cc', 1348 'tools/shader_bench/painter.h', 1349 'tools/shader_bench/shader_bench.cc', 1350 'tools/shader_bench/window.cc', 1351 'tools/shader_bench/window.h', 1352 ], 1353 'conditions': [ 1354 ['toolkit_uses_gtk==1', { 1355 'dependencies': [ 1356 '../build/linux/system.gyp:gtk', 1357 ], 1358 'sources': [ 1359 'tools/shader_bench/window_linux.cc', 1360 ], 1361 }], 1362 ['OS=="win"', { 1363 'dependencies': [ 1364 '<(angle_path)/src/build_angle.gyp:libEGL', 1365 '<(angle_path)/src/build_angle.gyp:libGLESv2', 1366 ], 1367 'sources': [ 1368 'tools/shader_bench/window_win.cc', 1369 ], 1370 }], 1371 # See http://crbug.com/162998#c4 for why this is needed. 1372 ['OS=="linux" and linux_use_tcmalloc==1', { 1373 'dependencies': [ 1374 '../base/allocator/allocator.gyp:allocator', 1375 ], 1376 }], 1377 ], 1378 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 1379 'msvs_disabled_warnings': [ 4267, ], 1380 }, 1381 ], 1382 }], 1383 ['use_x11==1', { 1384 'targets': [ 1385 { 1386 'target_name': 'player_x11', 1387 'type': 'executable', 1388 'dependencies': [ 1389 'media', 1390 '../base/base.gyp:base', 1391 '../ui/gl/gl.gyp:gl', 1392 '../ui/ui.gyp:ui', 1393 ], 1394 'link_settings': { 1395 'libraries': [ 1396 '-ldl', 1397 '-lX11', 1398 '-lXrender', 1399 '-lXext', 1400 ], 1401 }, 1402 'sources': [ 1403 'tools/player_x11/data_source_logger.cc', 1404 'tools/player_x11/data_source_logger.h', 1405 'tools/player_x11/gl_video_renderer.cc', 1406 'tools/player_x11/gl_video_renderer.h', 1407 'tools/player_x11/player_x11.cc', 1408 'tools/player_x11/x11_video_renderer.cc', 1409 'tools/player_x11/x11_video_renderer.h', 1410 ], 1411 }, 1412 ], 1413 }], 1414 # Special target to wrap a gtest_target_type==shared_library 1415 # media_unittests into an android apk for execution. 1416 ['OS=="android" and gtest_target_type=="shared_library"', { 1417 'targets': [ 1418 { 1419 'target_name': 'media_unittests_apk', 1420 'type': 'none', 1421 'dependencies': [ 1422 'media_java', 1423 'media_unittests', 1424 ], 1425 'variables': { 1426 'test_suite_name': 'media_unittests', 1427 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)media_unittests<(SHARED_LIB_SUFFIX)', 1428 }, 1429 'includes': ['../build/apk_test.gypi'], 1430 }, 1431 ], 1432 }], 1433 ['OS=="android"', { 1434 'targets': [ 1435 { 1436 'target_name': 'media_player_jni_headers', 1437 'type': 'none', 1438 'variables': { 1439 'jni_gen_package': 'media', 1440 'input_java_class': 'android/media/MediaPlayer.class', 1441 }, 1442 'includes': ['../build/jar_file_jni_generator.gypi'], 1443 }, 1444 { 1445 'target_name': 'media_android_jni_headers', 1446 'type': 'none', 1447 'dependencies': [ 1448 'media_player_jni_headers', 1449 ], 1450 'sources': [ 1451 'base/android/java/src/org/chromium/media/AudioManagerAndroid.java', 1452 'base/android/java/src/org/chromium/media/MediaCodecBridge.java', 1453 'base/android/java/src/org/chromium/media/MediaPlayerBridge.java', 1454 'base/android/java/src/org/chromium/media/MediaPlayerListener.java', 1455 'base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java', 1456 ], 1457 'variables': { 1458 'jni_gen_package': 'media', 1459 }, 1460 'includes': ['../build/jni_generator.gypi'], 1461 }, 1462 { 1463 'target_name': 'video_capture_android_jni_headers', 1464 'type': 'none', 1465 'sources': [ 1466 'base/android/java/src/org/chromium/media/VideoCapture.java', 1467 ], 1468 'variables': { 1469 'jni_gen_package': 'media', 1470 }, 1471 'includes': ['../build/jni_generator.gypi'], 1472 }, 1473 { 1474 'target_name': 'player_android', 1475 'type': 'static_library', 1476 'sources': [ 1477 'base/android/media_codec_bridge.cc', 1478 'base/android/media_codec_bridge.h', 1479 'base/android/media_drm_bridge.cc', 1480 'base/android/media_drm_bridge.h', 1481 'base/android/media_jni_registrar.cc', 1482 'base/android/media_jni_registrar.h', 1483 'base/android/media_player_android.cc', 1484 'base/android/media_player_android.h', 1485 'base/android/media_player_bridge.cc', 1486 'base/android/media_player_bridge.h', 1487 'base/android/media_player_listener.cc', 1488 'base/android/media_player_listener.h', 1489 'base/android/media_source_player.cc', 1490 'base/android/media_source_player.h', 1491 'base/android/webaudio_media_codec_bridge.cc', 1492 'base/android/webaudio_media_codec_bridge.h', 1493 'base/android/webaudio_media_codec_info.h', 1494 ], 1495 'dependencies': [ 1496 '../base/base.gyp:base', 1497 '../ui/gl/gl.gyp:gl', 1498 '../url/url.gyp:url_lib', 1499 'media_android_jni_headers', 1500 ], 1501 'include_dirs': [ 1502 '<(SHARED_INTERMEDIATE_DIR)/media', 1503 ], 1504 }, 1505 { 1506 'target_name': 'media_java', 1507 'type': 'none', 1508 'dependencies': [ 1509 '../base/base.gyp:base', 1510 ], 1511 'export_dependent_settings': [ 1512 '../base/base.gyp:base', 1513 ], 1514 'variables': { 1515 'java_in_dir': 'base/android/java', 1516 }, 1517 'includes': ['../build/java.gypi'], 1518 }, 1519 1520 ], 1521 }], 1522 ['media_use_ffmpeg==1', { 1523 'targets': [ 1524 { 1525 'target_name': 'ffmpeg_unittests', 1526 'type': 'executable', 1527 'dependencies': [ 1528 '../base/base.gyp:base', 1529 '../base/base.gyp:base_i18n', 1530 '../base/base.gyp:test_support_base', 1531 '../base/base.gyp:test_support_perf', 1532 '../testing/gtest.gyp:gtest', 1533 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 1534 'media', 1535 'media_test_support', 1536 ], 1537 'sources': [ 1538 'ffmpeg/ffmpeg_unittest.cc', 1539 ], 1540 'conditions': [ 1541 ['toolkit_uses_gtk==1', { 1542 'dependencies': [ 1543 # Needed for the following #include chain: 1544 # base/run_all_unittests.cc 1545 # ../base/test_suite.h 1546 # gtk/gtk.h 1547 '../build/linux/system.gyp:gtk', 1548 ], 1549 'conditions': [ 1550 ['linux_use_tcmalloc==1', { 1551 'dependencies': [ 1552 '../base/allocator/allocator.gyp:allocator', 1553 ], 1554 }], 1555 ], 1556 }], 1557 ], 1558 }, 1559 { 1560 'target_name': 'ffmpeg_regression_tests', 1561 'type': 'executable', 1562 'dependencies': [ 1563 '../base/base.gyp:test_support_base', 1564 '../testing/gmock.gyp:gmock', 1565 '../testing/gtest.gyp:gtest', 1566 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 1567 'media', 1568 'media_test_support', 1569 ], 1570 'sources': [ 1571 'base/run_all_unittests.cc', 1572 'base/test_data_util.cc', 1573 'ffmpeg/ffmpeg_regression_tests.cc', 1574 'filters/pipeline_integration_test_base.cc', 1575 ], 1576 'conditions': [ 1577 ['os_posix==1 and OS!="mac"', { 1578 'conditions': [ 1579 ['linux_use_tcmalloc==1', { 1580 'dependencies': [ 1581 '../base/allocator/allocator.gyp:allocator', 1582 ], 1583 }], 1584 ], 1585 }], 1586 ], 1587 }, 1588 { 1589 'target_name': 'ffmpeg_tests', 1590 'type': 'executable', 1591 'dependencies': [ 1592 '../base/base.gyp:base', 1593 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 1594 'media', 1595 ], 1596 'sources': [ 1597 'test/ffmpeg_tests/ffmpeg_tests.cc', 1598 ], 1599 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 1600 'msvs_disabled_warnings': [ 4267, ], 1601 }, 1602 { 1603 'target_name': 'media_bench', 1604 'type': 'executable', 1605 'dependencies': [ 1606 '../base/base.gyp:base', 1607 '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 1608 'media', 1609 ], 1610 'sources': [ 1611 'tools/media_bench/media_bench.cc', 1612 ], 1613 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 1614 'msvs_disabled_warnings': [ 4267, ], 1615 }, 1616 ], 1617 }], 1618 ], 1619} 1620