| # Copyright 2017 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. |
| |
| import("//build/config/jumbo.gni") |
| import("//media/media_options.gni") |
| import("//third_party/libaom/options.gni") |
| |
| jumbo_source_set("filters") { |
| # Do not expand the visibility here without double-checking with OWNERS, this |
| # is a roll-up target which is part of the //media component. Most other DEPs |
| # should be using //media and not directly DEP this roll-up target. |
| visibility = [ |
| "//media", |
| "//media/renderers", |
| ] |
| |
| sources = [ |
| "audio_clock.cc", |
| "audio_clock.h", |
| "audio_renderer_algorithm.cc", |
| "audio_renderer_algorithm.h", |
| "audio_timestamp_validator.cc", |
| "audio_timestamp_validator.h", |
| "chunk_demuxer.cc", |
| "chunk_demuxer.h", |
| "context_3d.h", |
| "decoder_selector.cc", |
| "decoder_selector.h", |
| "decoder_stream.cc", |
| "decoder_stream.h", |
| "decoder_stream_traits.cc", |
| "decoder_stream_traits.h", |
| "decrypting_audio_decoder.cc", |
| "decrypting_audio_decoder.h", |
| "decrypting_demuxer_stream.cc", |
| "decrypting_demuxer_stream.h", |
| "decrypting_video_decoder.cc", |
| "decrypting_video_decoder.h", |
| "file_data_source.cc", |
| "file_data_source.h", |
| "frame_buffer_pool.cc", |
| "frame_buffer_pool.h", |
| "frame_processor.cc", |
| "frame_processor.h", |
| "gpu_video_decoder.cc", |
| "gpu_video_decoder.h", |
| "jpeg_parser.cc", |
| "jpeg_parser.h", |
| "memory_data_source.cc", |
| "memory_data_source.h", |
| "offloading_video_decoder.cc", |
| "offloading_video_decoder.h", |
| "pipeline_controller.cc", |
| "pipeline_controller.h", |
| "source_buffer_parse_warnings.h", |
| "source_buffer_range.cc", |
| "source_buffer_range.h", |
| "source_buffer_range_by_dts.cc", |
| "source_buffer_range_by_dts.h", |
| "source_buffer_range_by_pts.cc", |
| "source_buffer_range_by_pts.h", |
| "source_buffer_state.cc", |
| "source_buffer_state.h", |
| "source_buffer_stream.cc", |
| "source_buffer_stream.h", |
| "stream_parser_factory.cc", |
| "stream_parser_factory.h", |
| "video_cadence_estimator.cc", |
| "video_cadence_estimator.h", |
| "video_renderer_algorithm.cc", |
| "video_renderer_algorithm.h", |
| "vp8_bool_decoder.cc", |
| "vp8_bool_decoder.h", |
| "vp8_parser.cc", |
| "vp8_parser.h", |
| "vp9_bool_decoder.cc", |
| "vp9_bool_decoder.h", |
| "vp9_compressed_header_parser.cc", |
| "vp9_compressed_header_parser.h", |
| "vp9_parser.cc", |
| "vp9_parser.h", |
| "vp9_raw_bits_reader.cc", |
| "vp9_raw_bits_reader.h", |
| "vp9_uncompressed_header_parser.cc", |
| "vp9_uncompressed_header_parser.h", |
| "wsola_internals.cc", |
| "wsola_internals.h", |
| ] |
| |
| configs += [ |
| # TODO(crbug.com/167187): Fix size_t to int truncations. |
| "//build/config/compiler:no_size_t_to_int_warning", |
| "//media:subcomponent_config", |
| ] |
| |
| deps = [ |
| "//cc/base", # For MathUtil. |
| "//gpu/command_buffer/common", |
| "//media/base", |
| "//media/cdm", |
| "//media/formats", |
| "//media/video", |
| "//skia", |
| "//third_party/libaom:av1_buildflags", |
| "//third_party/libyuv", |
| ] |
| |
| libs = [] |
| |
| if (proprietary_codecs) { |
| sources += [ |
| "h264_to_annex_b_bitstream_converter.cc", |
| "h264_to_annex_b_bitstream_converter.h", |
| ] |
| } |
| |
| if (media_use_ffmpeg) { |
| deps += [ |
| "//media/ffmpeg", |
| "//third_party/ffmpeg", |
| "//third_party/ffmpeg:ffmpeg_features", |
| "//third_party/opus", |
| ] |
| sources += [ |
| "audio_file_reader.cc", |
| "audio_file_reader.h", |
| "audio_video_metadata_extractor.cc", |
| "audio_video_metadata_extractor.h", |
| "blocking_url_protocol.cc", |
| "blocking_url_protocol.h", |
| "ffmpeg_audio_decoder.cc", |
| "ffmpeg_audio_decoder.h", |
| "ffmpeg_bitstream_converter.h", |
| "ffmpeg_demuxer.cc", |
| "ffmpeg_demuxer.h", |
| "ffmpeg_glue.cc", |
| "ffmpeg_glue.h", |
| "in_memory_url_protocol.cc", |
| "in_memory_url_protocol.h", |
| "media_file_checker.cc", |
| "media_file_checker.h", |
| ] |
| } |
| |
| if (media_use_libvpx) { |
| sources += [ |
| "vpx_video_decoder.cc", |
| "vpx_video_decoder.h", |
| ] |
| deps += [ "//third_party/libvpx" ] |
| } |
| |
| if (enable_av1_decoder) { |
| sources += [ |
| "aom_video_decoder.cc", |
| "aom_video_decoder.h", |
| ] |
| deps += [ "//third_party/libaom" ] |
| } |
| |
| if (media_use_ffmpeg) { |
| if (proprietary_codecs) { |
| sources += [ |
| "ffmpeg_aac_bitstream_converter.cc", |
| "ffmpeg_aac_bitstream_converter.h", |
| "ffmpeg_h264_to_annex_b_bitstream_converter.cc", |
| "ffmpeg_h264_to_annex_b_bitstream_converter.h", |
| ] |
| |
| if (enable_hevc_demuxing) { |
| sources += [ |
| "ffmpeg_h265_to_annex_b_bitstream_converter.cc", |
| "ffmpeg_h265_to_annex_b_bitstream_converter.h", |
| ] |
| } |
| } |
| |
| if (enable_ffmpeg_video_decoders) { |
| sources += [ |
| "ffmpeg_video_decoder.cc", |
| "ffmpeg_video_decoder.h", |
| ] |
| } |
| } |
| |
| if (is_android) { |
| sources -= [ |
| "decrypting_audio_decoder.cc", |
| "decrypting_audio_decoder.h", |
| "decrypting_video_decoder.cc", |
| "decrypting_video_decoder.h", |
| ] |
| sources += [ |
| "android/media_codec_audio_decoder.cc", |
| "android/media_codec_audio_decoder.h", |
| "android/video_frame_extractor.cc", |
| "android/video_frame_extractor.h", |
| ] |
| deps += [ "//media/base/android" ] |
| } |
| |
| if (current_cpu != "arm" && is_linux) { |
| sources += [ |
| "h264_bitstream_buffer.cc", |
| "h264_bitstream_buffer.h", |
| ] |
| } |
| } |
| |
| source_set("perftests") { |
| testonly = true |
| sources = [] |
| |
| if (media_use_ffmpeg) { |
| sources += [ "demuxer_perftest.cc" ] |
| } |
| |
| configs += [ "//media:media_config" ] |
| deps = [ |
| "//base", |
| "//base/test:test_support", |
| "//media:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//testing/perf", |
| ] |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| visibility = [ "//media:test_support" ] |
| |
| sources = [ |
| "ivf_parser.cc", |
| "ivf_parser.h", |
| ] |
| |
| configs += [ |
| # TODO(crbug.com/167187): Fix size_t to int truncations. |
| "//build/config/compiler:no_size_t_to_int_warning", |
| ] |
| |
| deps = [ |
| "//base/test:test_support", |
| "//media/base:test_support", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "audio_buffer_stream_unittest.cc", |
| "audio_clock_unittest.cc", |
| "audio_renderer_algorithm_unittest.cc", |
| "audio_timestamp_validator_unittest.cc", |
| "chunk_demuxer_unittest.cc", |
| "decoder_selector_unittest.cc", |
| "decrypting_audio_decoder_unittest.cc", |
| "decrypting_demuxer_stream_unittest.cc", |
| "decrypting_video_decoder_unittest.cc", |
| "fake_video_decoder.cc", |
| "fake_video_decoder.h", |
| "fake_video_decoder_unittest.cc", |
| "file_data_source_unittest.cc", |
| "frame_buffer_pool_unittest.cc", |
| "frame_processor_unittest.cc", |
| "ivf_parser_unittest.cc", |
| "jpeg_parser_unittest.cc", |
| "memory_data_source_unittest.cc", |
| "offloading_video_decoder_unittest.cc", |
| "pipeline_controller_unittest.cc", |
| "source_buffer_state_unittest.cc", |
| "source_buffer_stream_unittest.cc", |
| "video_cadence_estimator_unittest.cc", |
| "video_frame_stream_unittest.cc", |
| "video_renderer_algorithm_unittest.cc", |
| "vp8_bool_decoder_unittest.cc", |
| "vp8_parser_unittest.cc", |
| "vp9_parser_unittest.cc", |
| "vp9_raw_bits_reader_unittest.cc", |
| ] |
| |
| if (is_android) { |
| sources += [ "android/video_frame_extractor_unittest.cc" ] |
| } |
| |
| deps = [ |
| "//base/test:test_support", |
| "//media:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/gfx:test_support", |
| ] |
| |
| configs += [ |
| # TODO(crbug.com/167187): Fix size_t to int truncations. |
| "//build/config/compiler:no_size_t_to_int_warning", |
| ] |
| |
| if (is_android) { |
| sources -= [ |
| "decrypting_audio_decoder_unittest.cc", |
| "decrypting_video_decoder_unittest.cc", |
| ] |
| |
| deps += [ "//ui/gl" ] |
| } |
| |
| # libvpx for running vpx test on chromecast doesn't support high bit depth. |
| # This may cause some unit tests failure. |
| if (is_chromecast) { |
| defines = [ "LIBVPX_NO_HIGH_BIT_DEPTH" ] |
| } |
| |
| if (media_use_ffmpeg) { |
| sources += [ |
| "audio_decoder_unittest.cc", |
| "audio_file_reader_unittest.cc", |
| "blocking_url_protocol_unittest.cc", |
| "ffmpeg_demuxer_unittest.cc", |
| "ffmpeg_glue_unittest.cc", |
| "in_memory_url_protocol_unittest.cc", |
| ] |
| |
| deps += [ |
| # Direct dependency needed for the config |
| "//third_party/opus", |
| ] |
| |
| # Even if FFmpeg is enabled on Android we don't want these. |
| # TODO(watk): Refactor tests that could be made to run on Android. |
| if (!is_android) { |
| sources += [ |
| "audio_video_metadata_extractor_unittest.cc", |
| "media_file_checker_unittest.cc", |
| ] |
| } |
| |
| if (enable_ffmpeg_video_decoders) { |
| sources += [ "ffmpeg_video_decoder_unittest.cc" ] |
| } |
| } |
| |
| if (media_use_libvpx) { |
| sources += [ "vpx_video_decoder_unittest.cc" ] |
| } |
| |
| if (enable_av1_decoder) { |
| sources += [ "aom_video_decoder_unittest.cc" ] |
| } |
| |
| if (current_cpu != "arm" && is_linux) { |
| sources += [ "h264_bitstream_buffer_unittest.cc" ] |
| } |
| |
| if (proprietary_codecs) { |
| sources += [ "h264_to_annex_b_bitstream_converter_unittest.cc" ] |
| |
| if (media_use_ffmpeg) { |
| sources += [ |
| "ffmpeg_aac_bitstream_converter_unittest.cc", |
| "ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc", |
| ] |
| } |
| } |
| |
| if (media_use_ffmpeg) { |
| # Direct dependency required to inherit config. |
| deps += [ "//third_party/ffmpeg" ] |
| } |
| } |