# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. { 'variables': { 'chromium_code': 1, # Override to dynamically link the cras (ChromeOS audio) library. 'use_cras%': 0, # Option e.g. for Linux distributions to link pulseaudio directly # (DT_NEEDED) instead of using dlopen. This helps with automated # detection of ABI mismatches and prevents silent errors. 'linux_link_pulseaudio%': 0, 'conditions': [ # Enable ALSA and Pulse for runtime selection. ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and (embedded==0 or chromecast==1)', { # ALSA is always needed for Web MIDI even if the cras is enabled. 'use_alsa%': 1, 'conditions': [ ['use_cras==1 or chromecast==1', { 'use_pulseaudio%': 0, }, { 'use_pulseaudio%': 1, }], ], }, { 'use_alsa%': 0, 'use_pulseaudio%': 0, }], # low memory buffer is used in non-Android based chromecast build due to hardware limitation. ['chromecast==1 and OS!="android"', { 'use_low_memory_buffer%': 1, }, { 'use_low_memory_buffer%': 0, }], ['proprietary_codecs==1 and chromecast==1', { # Enable AC3/EAC3 audio demuxing. Actual decoding must be provided by # the platform (or HDMI sink in Chromecast for audio pass-through case). 'enable_ac3_eac3_audio_demuxing%': 1, # Enable HEVC/H265 demuxing. Actual decoding must be provided by the # platform. 'enable_hevc_demuxing%': 1, 'enable_mse_mpeg2ts_stream_parser%': 1, }, { 'enable_ac3_eac3_audio_demuxing%': 0, 'enable_hevc_demuxing%': 0, 'enable_mse_mpeg2ts_stream_parser%': 0, }], ], }, 'includes': [ 'capture.gypi', 'media_cdm.gypi', 'media_variables.gypi', ], 'targets': [ { # GN version: //media:media_features 'target_name': 'media_features', 'includes': [ '../build/buildflag_header.gypi' ], 'variables': { 'buildflag_header_path': 'media/media_features.h', 'buildflag_flags': [ "ENABLE_AC3_EAC3_AUDIO_DEMUXING=<(enable_ac3_eac3_audio_demuxing)", "ENABLE_HEVC_DEMUXING=<(enable_hevc_demuxing)", "ENABLE_MSE_MPEG2TS_STREAM_PARSER=<(enable_mse_mpeg2ts_stream_parser)", ], }, }, { # GN version: //media 'target_name': 'media', 'type': '<(component)', 'dependencies': [ 'media_features', '../base/base.gyp:base', '../base/base.gyp:base_i18n', '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', '../crypto/crypto.gyp:crypto', '../gpu/gpu.gyp:command_buffer_common', '../skia/skia.gyp:skia', '../third_party/libwebm/libwebm.gyp:libwebm', '../third_party/libyuv/libyuv.gyp:libyuv', '../third_party/opus/opus.gyp:opus', '../ui/events/events.gyp:events_base', '../ui/gfx/gfx.gyp:gfx', '../ui/gfx/gfx.gyp:gfx_geometry', '../url/url.gyp:url_lib', 'shared_memory_support', ], 'export_dependent_settings': [ '../third_party/opus/opus.gyp:opus', ], 'defines': [ 'MEDIA_IMPLEMENTATION', ], 'include_dirs': [ '..', ], 'includes': [ 'capture.gypi', ], 'sources': [ '<@(capture_sources)', 'audio/agc_audio_stream.h', 'audio/alsa/alsa_input.cc', 'audio/alsa/alsa_input.h', 'audio/alsa/alsa_output.cc', 'audio/alsa/alsa_output.h', 'audio/alsa/alsa_util.cc', 'audio/alsa/alsa_util.h', 'audio/alsa/alsa_wrapper.cc', 'audio/alsa/alsa_wrapper.h', 'audio/alsa/audio_manager_alsa.cc', 'audio/alsa/audio_manager_alsa.h', 'audio/android/audio_manager_android.cc', 'audio/android/audio_manager_android.h', 'audio/android/audio_record_input.cc', 'audio/android/audio_record_input.h', 'audio/android/opensles_input.cc', 'audio/android/opensles_input.h', 'audio/android/opensles_output.cc', 'audio/android/opensles_output.h', 'audio/android/opensles_wrapper.cc', 'audio/audio_device_name.cc', 'audio/audio_device_name.h', 'audio/audio_device_thread.cc', 'audio/audio_device_thread.h', 'audio/audio_input_controller.cc', 'audio/audio_input_controller.h', 'audio/audio_input_device.cc', 'audio/audio_input_device.h', 'audio/audio_input_ipc.cc', 'audio/audio_input_ipc.h', 'audio/audio_io.h', 'audio/audio_manager.cc', 'audio/audio_manager.h', 'audio/audio_manager_base.cc', 'audio/audio_manager_base.h', 'audio/audio_output_controller.cc', 'audio/audio_output_controller.h', 'audio/audio_output_device.cc', 'audio/audio_output_device.h', 'audio/audio_output_dispatcher.cc', 'audio/audio_output_dispatcher.h', 'audio/audio_output_dispatcher_impl.cc', 'audio/audio_output_dispatcher_impl.h', 'audio/audio_output_ipc.cc', 'audio/audio_output_ipc.h', 'audio/audio_output_proxy.cc', 'audio/audio_output_proxy.h', 'audio/audio_output_resampler.cc', 'audio/audio_output_resampler.h', 'audio/audio_output_stream_sink.cc', 'audio/audio_output_stream_sink.h', 'audio/audio_power_monitor.cc', 'audio/audio_power_monitor.h', 'audio/audio_source_diverter.h', 'audio/audio_streams_tracker.cc', 'audio/audio_streams_tracker.h', 'audio/clockless_audio_sink.cc', 'audio/clockless_audio_sink.h', 'audio/cras/audio_manager_cras.cc', 'audio/cras/audio_manager_cras.h', 'audio/cras/cras_input.cc', 'audio/cras/cras_input.h', 'audio/cras/cras_unified.cc', 'audio/cras/cras_unified.h', 'audio/fake_audio_input_stream.cc', 'audio/fake_audio_input_stream.h', 'audio/fake_audio_log_factory.cc', 'audio/fake_audio_log_factory.h', 'audio/fake_audio_manager.cc', 'audio/fake_audio_manager.h', 'audio/fake_audio_output_stream.cc', 'audio/fake_audio_output_stream.h', 'audio/fake_audio_worker.cc', 'audio/fake_audio_worker.h', 'audio/linux/audio_manager_linux.cc', 'audio/mac/audio_auhal_mac.cc', 'audio/mac/audio_auhal_mac.h', 'audio/mac/audio_device_listener_mac.cc', 'audio/mac/audio_device_listener_mac.h', 'audio/mac/audio_input_mac.cc', 'audio/mac/audio_input_mac.h', 'audio/mac/audio_low_latency_input_mac.cc', 'audio/mac/audio_low_latency_input_mac.h', 'audio/mac/audio_manager_mac.cc', 'audio/mac/audio_manager_mac.h', 'audio/null_audio_sink.cc', 'audio/null_audio_sink.h', 'audio/pulse/audio_manager_pulse.cc', 'audio/pulse/audio_manager_pulse.h', 'audio/pulse/pulse_input.cc', 'audio/pulse/pulse_input.h', 'audio/pulse/pulse_output.cc', 'audio/pulse/pulse_output.h', 'audio/pulse/pulse_util.cc', 'audio/pulse/pulse_util.h', 'audio/sample_rates.cc', 'audio/sample_rates.h', 'audio/scoped_task_runner_observer.cc', 'audio/scoped_task_runner_observer.h', 'audio/simple_sources.cc', 'audio/simple_sources.h', 'audio/sounds/audio_stream_handler.cc', 'audio/sounds/audio_stream_handler.h', 'audio/sounds/sounds_manager.cc', 'audio/sounds/sounds_manager.h', 'audio/sounds/wav_audio_handler.cc', 'audio/sounds/wav_audio_handler.h', 'audio/virtual_audio_input_stream.cc', 'audio/virtual_audio_input_stream.h', 'audio/virtual_audio_output_stream.cc', 'audio/virtual_audio_output_stream.h', 'audio/win/audio_device_listener_win.cc', 'audio/win/audio_device_listener_win.h', 'audio/win/audio_low_latency_input_win.cc', 'audio/win/audio_low_latency_input_win.h', 'audio/win/audio_low_latency_output_win.cc', 'audio/win/audio_low_latency_output_win.h', 'audio/win/audio_manager_win.cc', 'audio/win/audio_manager_win.h', 'audio/win/avrt_wrapper_win.cc', 'audio/win/avrt_wrapper_win.h', 'audio/win/core_audio_util_win.cc', 'audio/win/core_audio_util_win.h', 'audio/win/device_enumeration_win.cc', 'audio/win/device_enumeration_win.h', 'audio/win/wavein_input_win.cc', 'audio/win/wavein_input_win.h', 'audio/win/waveout_output_win.cc', 'audio/win/waveout_output_win.h', 'base/audio_block_fifo.cc', 'base/audio_block_fifo.h', 'base/audio_buffer.cc', 'base/audio_buffer.h', 'base/audio_buffer_converter.cc', 'base/audio_buffer_converter.h', 'base/audio_buffer_queue.cc', 'base/audio_buffer_queue.h', 'base/audio_capturer_source.h', 'base/audio_codecs.cc', 'base/audio_codecs.h', 'base/audio_converter.cc', 'base/audio_converter.h', 'base/audio_decoder.cc', 'base/audio_decoder.h', 'base/audio_decoder_config.cc', 'base/audio_decoder_config.h', 'base/audio_discard_helper.cc', 'base/audio_discard_helper.h', 'base/audio_fifo.cc', 'base/audio_fifo.h', 'base/audio_hardware_config.cc', 'base/audio_hardware_config.h', 'base/audio_hash.cc', 'base/audio_hash.h', 'base/audio_pull_fifo.cc', 'base/audio_pull_fifo.h', 'base/audio_push_fifo.cc', 'base/audio_push_fifo.h', 'base/audio_renderer.cc', 'base/audio_renderer.h', 'base/audio_renderer_mixer.cc', 'base/audio_renderer_mixer.h', 'base/audio_renderer_mixer_input.cc', 'base/audio_renderer_mixer_input.h', 'base/audio_renderer_sink.h', 'base/audio_shifter.cc', 'base/audio_shifter.h', 'base/audio_splicer.cc', 'base/audio_splicer.h', 'base/audio_timestamp_helper.cc', 'base/audio_timestamp_helper.h', 'base/audio_video_metadata_extractor.cc', 'base/audio_video_metadata_extractor.h', 'base/bind_to_current_loop.h', 'base/bit_reader.cc', 'base/bit_reader.h', 'base/bit_reader_core.cc', 'base/bit_reader_core.h', 'base/bitstream_buffer.cc', 'base/bitstream_buffer.h', 'base/buffering_state.h', 'base/byte_queue.cc', 'base/byte_queue.h', 'base/cdm_callback_promise.cc', 'base/cdm_callback_promise.h', 'base/cdm_config.h', 'base/cdm_context.cc', 'base/cdm_context.h', 'base/cdm_factory.cc', 'base/cdm_factory.h', 'base/cdm_initialized_promise.cc', 'base/cdm_initialized_promise.h', 'base/cdm_key_information.cc', 'base/cdm_key_information.h', 'base/cdm_promise.cc', 'base/cdm_promise.h', 'base/cdm_promise_adapter.cc', 'base/cdm_promise_adapter.h', 'base/channel_mixer.cc', 'base/channel_mixer.h', 'base/channel_mixing_matrix.cc', 'base/channel_mixing_matrix.h', 'base/container_names.cc', 'base/container_names.h', 'base/data_buffer.cc', 'base/data_buffer.h', 'base/data_source.cc', 'base/data_source.h', 'base/decoder_buffer.cc', 'base/decoder_buffer.h', 'base/decoder_buffer_queue.cc', 'base/decoder_buffer_queue.h', 'base/decoder_factory.cc', 'base/decoder_factory.h', 'base/decrypt_config.cc', 'base/decrypt_config.h', 'base/decryptor.cc', 'base/decryptor.h', 'base/demuxer.cc', 'base/demuxer.h', 'base/demuxer_stream.cc', 'base/demuxer_stream.h', 'base/demuxer_stream_provider.cc', 'base/demuxer_stream_provider.h', 'base/djb2.cc', 'base/djb2.h', 'base/eme_constants.h', 'base/encryption_scheme.cc', 'base/encryption_scheme.h', 'base/key_system_info.cc', 'base/key_system_info.h', 'base/key_systems.cc', 'base/key_systems.h', 'base/keyboard_event_counter.cc', 'base/keyboard_event_counter.h', 'base/loopback_audio_converter.cc', 'base/loopback_audio_converter.h', 'base/mac/avfoundation_glue.h', 'base/mac/avfoundation_glue.mm', 'base/mac/coremedia_glue.h', 'base/mac/coremedia_glue.mm', 'base/mac/corevideo_glue.h', 'base/mac/video_frame_mac.cc', 'base/mac/video_frame_mac.h', 'base/mac/videotoolbox_glue.h', 'base/mac/videotoolbox_glue.mm', 'base/mac/videotoolbox_helpers.cc', 'base/mac/videotoolbox_helpers.h', 'base/media.cc', 'base/media.h', 'base/media_client.cc', 'base/media_client.h', 'base/media_file_checker.cc', 'base/media_file_checker.h', 'base/media_keys.cc', 'base/media_keys.h', 'base/media_log.cc', 'base/media_log.h', 'base/media_log_event.h', 'base/media_permission.cc', 'base/media_permission.h', 'base/media_resources.cc', 'base/media_resources.h', 'base/media_switches.cc', 'base/media_switches.h', 'base/media_track.cc', 'base/media_track.h', 'base/media_tracks.cc', 'base/media_tracks.h', 'base/media_util.cc', 'base/media_util.h', 'base/mime_util.cc', 'base/mime_util.h', 'base/mime_util_internal.cc', 'base/mime_util_internal.h', 'base/moving_average.cc', 'base/moving_average.h', 'base/multi_channel_resampler.cc', 'base/multi_channel_resampler.h', 'base/null_video_sink.cc', 'base/null_video_sink.h', 'base/output_device.h', 'base/pipeline.h', 'base/pipeline_impl.cc', 'base/pipeline_impl.h', 'base/pipeline_status.h', 'base/player_tracker.cc', 'base/player_tracker.h', 'base/ranges.cc', 'base/ranges.h', 'base/renderer.cc', 'base/renderer.h', 'base/renderer_factory.cc', 'base/renderer_factory.h', 'base/sample_format.cc', 'base/sample_format.h', 'base/seekable_buffer.cc', 'base/seekable_buffer.h', 'base/serial_runner.cc', 'base/serial_runner.h', 'base/simd/convert_rgb_to_yuv.h', 'base/simd/convert_rgb_to_yuv_c.cc', 'base/simd/convert_yuv_to_rgb.h', 'base/simd/convert_yuv_to_rgb_c.cc', 'base/simd/filter_yuv.h', 'base/simd/filter_yuv_c.cc', 'base/sinc_resampler.cc', 'base/sinc_resampler.h', 'base/stream_parser.cc', 'base/stream_parser.h', 'base/stream_parser_buffer.cc', 'base/stream_parser_buffer.h', 'base/text_cue.cc', 'base/text_cue.h', 'base/text_ranges.cc', 'base/text_ranges.h', 'base/text_renderer.cc', 'base/text_renderer.h', 'base/text_track.h', 'base/text_track_config.cc', 'base/text_track_config.h', 'base/time_delta_interpolator.cc', 'base/time_delta_interpolator.h', 'base/time_source.h', 'base/timestamp_constants.h', 'base/user_input_monitor.cc', 'base/user_input_monitor.h', 'base/user_input_monitor_linux.cc', 'base/user_input_monitor_mac.cc', 'base/user_input_monitor_win.cc', 'base/video_capture_types.cc', 'base/video_capture_types.h', 'base/video_capturer_source.cc', 'base/video_capturer_source.h', 'base/video_codecs.cc', 'base/video_codecs.h', 'base/video_decoder.cc', 'base/video_decoder.h', 'base/video_decoder_config.cc', 'base/video_decoder_config.h', 'base/video_frame.cc', 'base/video_frame.h', 'base/video_frame_metadata.cc', 'base/video_frame_metadata.h', 'base/video_frame_pool.cc', 'base/video_frame_pool.h', 'base/video_renderer.cc', 'base/video_renderer.h', 'base/video_rotation.h', 'base/video_types.cc', 'base/video_types.h', 'base/video_util.cc', 'base/video_util.h', 'base/wall_clock_time_source.cc', 'base/wall_clock_time_source.h', 'base/win/mf_initializer.cc', 'base/win/mf_initializer.h', 'base/yuv_convert.cc', 'base/yuv_convert.h', 'cdm/aes_decryptor.cc', 'cdm/aes_decryptor.h', 'cdm/cdm_adapter.cc', 'cdm/cdm_adapter.h', 'cdm/cdm_allocator.cc', 'cdm/cdm_allocator.h', 'cdm/cdm_helpers.cc', 'cdm/cdm_helpers.h', 'cdm/default_cdm_factory.cc', 'cdm/default_cdm_factory.h', 'cdm/json_web_key.cc', 'cdm/json_web_key.h', 'cdm/key_system_names.cc', 'cdm/key_system_names.h', 'cdm/player_tracker_impl.cc', 'cdm/player_tracker_impl.h', 'cdm/supported_cdm_versions.cc', 'cdm/supported_cdm_versions.h', 'ffmpeg/ffmpeg_common.cc', 'ffmpeg/ffmpeg_common.h', 'ffmpeg/ffmpeg_deleters.h', 'filters/audio_clock.cc', 'filters/audio_clock.h', 'filters/audio_file_reader.cc', 'filters/audio_file_reader.h', 'filters/audio_renderer_algorithm.cc', 'filters/audio_renderer_algorithm.h', 'filters/blocking_url_protocol.cc', 'filters/blocking_url_protocol.h', 'filters/chunk_demuxer.cc', 'filters/chunk_demuxer.h', 'filters/context_3d.h', 'filters/decoder_selector.cc', 'filters/decoder_selector.h', 'filters/decoder_stream.cc', 'filters/decoder_stream.h', 'filters/decoder_stream_traits.cc', 'filters/decoder_stream_traits.h', 'filters/decrypting_audio_decoder.cc', 'filters/decrypting_audio_decoder.h', 'filters/decrypting_demuxer_stream.cc', 'filters/decrypting_demuxer_stream.h', 'filters/decrypting_video_decoder.cc', 'filters/decrypting_video_decoder.h', 'filters/default_media_permission.cc', 'filters/default_media_permission.h', 'filters/ffmpeg_audio_decoder.cc', 'filters/ffmpeg_audio_decoder.h', 'filters/ffmpeg_bitstream_converter.h', 'filters/ffmpeg_demuxer.cc', 'filters/ffmpeg_demuxer.h', 'filters/ffmpeg_glue.cc', 'filters/ffmpeg_glue.h', 'filters/ffmpeg_video_decoder.cc', 'filters/ffmpeg_video_decoder.h', 'filters/file_data_source.cc', 'filters/file_data_source.h', 'filters/frame_processor.cc', 'filters/frame_processor.h', 'filters/gpu_video_decoder.cc', 'filters/gpu_video_decoder.h', 'filters/h264_bit_reader.cc', 'filters/h264_bit_reader.h', 'filters/h264_parser.cc', 'filters/h264_parser.h', 'filters/in_memory_url_protocol.cc', 'filters/in_memory_url_protocol.h', 'filters/ivf_parser.cc', 'filters/ivf_parser.h', 'filters/jpeg_parser.cc', 'filters/jpeg_parser.h', 'filters/media_source_state.cc', 'filters/media_source_state.h', 'filters/memory_data_source.cc', 'filters/memory_data_source.h', 'filters/opus_audio_decoder.cc', 'filters/opus_audio_decoder.h', 'filters/opus_constants.cc', 'filters/opus_constants.h', 'filters/pipeline_controller.cc', 'filters/pipeline_controller.h', 'filters/source_buffer_range.cc', 'filters/source_buffer_range.h', 'filters/source_buffer_stream.cc', 'filters/source_buffer_stream.h', 'filters/stream_parser_factory.cc', 'filters/stream_parser_factory.h', 'filters/video_cadence_estimator.cc', 'filters/video_cadence_estimator.h', 'filters/video_renderer_algorithm.cc', 'filters/video_renderer_algorithm.h', 'filters/vp8_bool_decoder.cc', 'filters/vp8_bool_decoder.h', 'filters/vp8_parser.cc', 'filters/vp8_parser.h', 'filters/vp9_parser.cc', 'filters/vp9_parser.h', 'filters/vp9_raw_bits_reader.cc', 'filters/vp9_raw_bits_reader.h', 'filters/vpx_video_decoder.cc', 'filters/vpx_video_decoder.h', 'filters/webvtt_util.h', 'filters/wsola_internals.cc', 'filters/wsola_internals.h', 'formats/common/offset_byte_queue.cc', 'formats/common/offset_byte_queue.h', 'formats/webm/webm_audio_client.cc', 'formats/webm/webm_audio_client.h', 'formats/webm/webm_cluster_parser.cc', 'formats/webm/webm_cluster_parser.h', 'formats/webm/webm_constants.cc', 'formats/webm/webm_constants.h', 'formats/webm/webm_content_encodings.cc', 'formats/webm/webm_content_encodings.h', 'formats/webm/webm_content_encodings_client.cc', 'formats/webm/webm_content_encodings_client.h', 'formats/webm/webm_crypto_helpers.cc', 'formats/webm/webm_crypto_helpers.h', 'formats/webm/webm_info_parser.cc', 'formats/webm/webm_info_parser.h', 'formats/webm/webm_parser.cc', 'formats/webm/webm_parser.h', 'formats/webm/webm_stream_parser.cc', 'formats/webm/webm_stream_parser.h', 'formats/webm/webm_tracks_parser.cc', 'formats/webm/webm_tracks_parser.h', 'formats/webm/webm_video_client.cc', 'formats/webm/webm_video_client.h', 'formats/webm/webm_webvtt_parser.cc', 'muxers/webm_muxer.cc', 'muxers/webm_muxer.h', 'renderers/audio_renderer_impl.cc', 'renderers/audio_renderer_impl.h', 'renderers/default_renderer_factory.cc', 'renderers/default_renderer_factory.h', 'renderers/gpu_video_accelerator_factories.h', 'renderers/renderer_impl.cc', 'renderers/renderer_impl.h', 'renderers/skcanvas_video_renderer.cc', 'renderers/skcanvas_video_renderer.h', 'renderers/video_renderer_impl.cc', 'renderers/video_renderer_impl.h', 'video/fake_video_encode_accelerator.cc', 'video/fake_video_encode_accelerator.h', 'video/gpu_memory_buffer_video_frame_pool.cc', 'video/gpu_memory_buffer_video_frame_pool.h', 'video/h264_poc.cc', 'video/h264_poc.h', 'video/jpeg_decode_accelerator.cc', 'video/jpeg_decode_accelerator.h', 'video/picture.cc', 'video/picture.h', 'video/video_decode_accelerator.cc', 'video/video_decode_accelerator.h', 'video/video_encode_accelerator.cc', 'video/video_encode_accelerator.h', 'formats/webm/webm_webvtt_parser.h' ], 'direct_dependent_settings': { 'include_dirs': [ '..', ], }, 'conditions': [ ['arm_neon==1', { 'defines': [ 'USE_NEON' ], }], ['media_use_ffmpeg==1', { 'dependencies': [ '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', ], }, { # media_use_ffmpeg==0 # Exclude the sources that depend on ffmpeg. 'sources!': [ 'base/audio_video_metadata_extractor.cc', 'base/audio_video_metadata_extractor.h', 'base/media_file_checker.cc', 'base/media_file_checker.h', 'ffmpeg/ffmpeg_common.cc', 'ffmpeg/ffmpeg_common.h', 'filters/audio_file_reader.cc', 'filters/audio_file_reader.h', 'filters/blocking_url_protocol.cc', 'filters/blocking_url_protocol.h', 'filters/ffmpeg_aac_bitstream_converter.cc', 'filters/ffmpeg_aac_bitstream_converter.h', 'filters/ffmpeg_audio_decoder.cc', 'filters/ffmpeg_audio_decoder.h', 'filters/ffmpeg_bitstream_converter.h', 'filters/ffmpeg_demuxer.cc', 'filters/ffmpeg_demuxer.h', 'filters/ffmpeg_glue.cc', 'filters/ffmpeg_glue.h', 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.cc', 'filters/ffmpeg_h264_to_annex_b_bitstream_converter.h', 'filters/ffmpeg_video_decoder.cc', 'filters/ffmpeg_video_decoder.h', 'filters/in_memory_url_protocol.cc', 'filters/in_memory_url_protocol.h', ], 'defines': [ 'MEDIA_DISABLE_FFMPEG', ], 'direct_dependent_settings': { 'defines': [ 'MEDIA_DISABLE_FFMPEG', ], }, }], ['media_use_libvpx==1', { 'dependencies': [ '<(DEPTH)/third_party/libvpx/libvpx.gyp:libvpx', ], }, { # media_use_libvpx==0 'defines': [ 'MEDIA_DISABLE_LIBVPX', ], 'direct_dependent_settings': { 'defines': [ 'MEDIA_DISABLE_LIBVPX', ], }, # Exclude the sources that depend on libvpx. 'sources!': [ 'filters/vpx_video_decoder.cc', 'filters/vpx_video_decoder.h', ], }], ['OS=="android"', { 'dependencies': [ 'capture_java', 'media_android_jni_headers', 'media_java', 'player_android', 'video_capture_android_jni_headers', ], 'sources!': [ 'base/audio_video_metadata_extractor.cc', 'base/audio_video_metadata_extractor.h', 'base/media_file_checker.cc', 'base/media_file_checker.h', 'filters/decrypting_audio_decoder.cc', 'filters/decrypting_audio_decoder.h', 'filters/decrypting_video_decoder.cc', 'filters/decrypting_video_decoder.h', 'filters/ffmpeg_video_decoder.cc', 'filters/ffmpeg_video_decoder.h', ], 'sources': [ 'filters/android/media_codec_audio_decoder.cc', 'filters/android/media_codec_audio_decoder.h', ], 'defines': [ 'DISABLE_USER_INPUT_MONITOR', ], 'conditions': [ ['media_use_ffmpeg == 1', { 'defines': [ # On Android, FFmpeg is built without video decoders. We only # support hardware video decoding. 'DISABLE_FFMPEG_VIDEO_DECODERS', ], 'direct_dependent_settings': { 'defines': [ 'DISABLE_FFMPEG_VIDEO_DECODERS', ], }, }], ], }], # For VaapiVideoEncodeAccelerator. ['target_arch != "arm" and chromeos == 1', { 'sources': [ 'filters/h264_bitstream_buffer.cc', 'filters/h264_bitstream_buffer.h', ], }], ['use_alsa==1', { 'link_settings': { 'libraries': [ '-lasound', ], }, 'defines': [ 'USE_ALSA', ], }, { # use_alsa==0 'sources/': [ ['exclude', '(^|/)alsa/'], ['exclude', '_alsa\\.(h|cc)$'], ], }], ['OS=="linux"', { 'conditions': [ ['use_x11==1', { 'dependencies': [ '../build/linux/system.gyp:x11', '../build/linux/system.gyp:xdamage', '../build/linux/system.gyp:xext', '../build/linux/system.gyp:xfixes', '../build/linux/system.gyp:xtst', '../ui/gfx/x/gfx_x11.gyp:gfx_x11', ], }, { # else: use_x11==0 'sources!': [ 'base/user_input_monitor_linux.cc', ], 'defines': [ 'DISABLE_USER_INPUT_MONITOR', ], }], ['use_cras==1', { 'dependencies': [ '../chromeos/chromeos.gyp:chromeos', ], 'cflags': [ '