blob: aa3932a747072639ccdf43a3d15097cde2a1549e [file] [log] [blame]
# 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_media_resource.cc",
"decrypting_media_resource.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",
]
}
if (is_fuchsia) {
sources += [
"fuchsia/fuchsia_video_decoder.cc",
"fuchsia/fuchsia_video_decoder.h",
]
deps += [ "//third_party/fuchsia-sdk/sdk:mediacodec" ]
}
}
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_clock_unittest.cc",
"audio_decoder_stream_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_media_resource_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_decoder_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",
]
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 += [ "android/video_frame_extractor_unittest.cc" ]
sources -= [
"decrypting_audio_decoder_unittest.cc",
"decrypting_video_decoder_unittest.cc",
]
deps += [ "//ui/gl" ]
}
if (is_fuchsia) {
sources += [ "fuchsia/fuchsia_video_decoder_unittest.cc" ]
}
# 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" ]
}
}