blob: d096d16b8bcd3cdc924714e48ec0afc0eedf4cfc [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("//media/media_options.gni")
source_set("formats") {
# 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/base/android/",
"//media/cdm",
"//media/ffmpeg",
"//media/filters",
"//media/muxers",
]
sources = [
"ac3/ac3_util.cc",
"ac3/ac3_util.h",
"common/offset_byte_queue.cc",
"common/offset_byte_queue.h",
"common/opus_constants.cc",
"common/opus_constants.h",
"mp4/bitstream_converter.cc",
"mp4/bitstream_converter.h",
"mp4/box_definitions.cc",
"mp4/box_definitions.h",
"mp4/box_reader.cc",
"mp4/box_reader.h",
"mp4/es_descriptor.cc",
"mp4/es_descriptor.h",
"mp4/fourccs.h",
"mp4/mp4_stream_parser.cc",
"mp4/mp4_stream_parser.h",
"mp4/parse_result.h",
"mp4/rcheck.h",
"mp4/sample_to_group_iterator.cc",
"mp4/sample_to_group_iterator.h",
"mp4/track_run_iterator.cc",
"mp4/track_run_iterator.h",
"mpeg/mpeg1_audio_stream_parser.cc",
"mpeg/mpeg1_audio_stream_parser.h",
"mpeg/mpeg_audio_stream_parser_base.cc",
"mpeg/mpeg_audio_stream_parser_base.h",
"webcodecs/webcodecs_encoded_chunk_stream_parser.cc",
"webcodecs/webcodecs_encoded_chunk_stream_parser.h",
"webm/webm_audio_client.cc",
"webm/webm_audio_client.h",
"webm/webm_cluster_parser.cc",
"webm/webm_cluster_parser.h",
"webm/webm_colour_parser.cc",
"webm/webm_colour_parser.h",
"webm/webm_constants.cc",
"webm/webm_constants.h",
"webm/webm_content_encodings.cc",
"webm/webm_content_encodings.h",
"webm/webm_content_encodings_client.cc",
"webm/webm_content_encodings_client.h",
"webm/webm_crypto_helpers.cc",
"webm/webm_crypto_helpers.h",
"webm/webm_info_parser.cc",
"webm/webm_info_parser.h",
"webm/webm_parser.cc",
"webm/webm_parser.h",
"webm/webm_projection_parser.cc",
"webm/webm_projection_parser.h",
"webm/webm_stream_parser.cc",
"webm/webm_stream_parser.h",
"webm/webm_tracks_parser.cc",
"webm/webm_tracks_parser.h",
"webm/webm_video_client.cc",
"webm/webm_video_client.h",
"webm/webm_webvtt_parser.cc",
"webm/webm_webvtt_parser.h",
]
deps = [
"//build:chromecast_buildflags",
"//media:media_buildflags",
"//media/base",
"//third_party/libwebm",
]
configs += [
"//media:subcomponent_config",
]
if (proprietary_codecs) {
deps += [ "//media/video" ]
sources += [
"mp4/aac.cc",
"mp4/aac.h",
"mp4/avc.cc",
"mp4/avc.h",
"mp4/h264_annex_b_to_avc_bitstream_converter.cc",
"mp4/h264_annex_b_to_avc_bitstream_converter.h",
"mpeg/adts_constants.cc",
"mpeg/adts_constants.h",
"mpeg/adts_stream_parser.cc",
"mpeg/adts_stream_parser.h",
]
# We need this to make h264_annex_b_to_avc_bitstream_converter.h accessible
# from video_encode_accelerator_adapter.cc, unfortunately we can't move
# h264_annex_b_to_avc_bitstream_converter.h since it depends on
# box_definitions.h
# TODO(eugene): consider moving media/video/h264_parser.(h|cc) to
# media/formats. It might help to break this dependency cycle.
allow_circular_includes_from = [ "//media/video" ]
}
if (proprietary_codecs && enable_platform_hevc) {
sources += [
"mp4/hevc.cc",
"mp4/hevc.h",
]
}
if (proprietary_codecs && enable_platform_dolby_vision) {
sources += [
"mp4/dolby_vision.cc",
"mp4/dolby_vision.h",
]
}
if (proprietary_codecs && enable_mse_mpeg2ts_stream_parser) {
deps += [ "//ui/gfx/geometry" ]
sources += [
"mp2t/descriptors.cc",
"mp2t/descriptors.h",
"mp2t/es_adapter_video.cc",
"mp2t/es_adapter_video.h",
"mp2t/es_parser.cc",
"mp2t/es_parser.h",
"mp2t/es_parser_adts.cc",
"mp2t/es_parser_adts.h",
"mp2t/es_parser_h264.cc",
"mp2t/es_parser_h264.h",
"mp2t/es_parser_mpeg1audio.cc",
"mp2t/es_parser_mpeg1audio.h",
"mp2t/mp2t_common.h",
"mp2t/mp2t_stream_parser.cc",
"mp2t/mp2t_stream_parser.h",
"mp2t/timestamp_unroller.cc",
"mp2t/timestamp_unroller.h",
"mp2t/ts_packet.cc",
"mp2t/ts_packet.h",
"mp2t/ts_section.h",
"mp2t/ts_section_pat.cc",
"mp2t/ts_section_pat.h",
"mp2t/ts_section_pes.cc",
"mp2t/ts_section_pes.h",
"mp2t/ts_section_pmt.cc",
"mp2t/ts_section_pmt.h",
"mp2t/ts_section_psi.cc",
"mp2t/ts_section_psi.h",
]
}
if (proprietary_codecs && enable_mse_mpeg2ts_stream_parser &&
enable_hls_sample_aes) {
sources += [
"mp2t/ts_section_cat.cc",
"mp2t/ts_section_cat.h",
"mp2t/ts_section_cets_ecm.cc",
"mp2t/ts_section_cets_ecm.h",
"mp2t/ts_section_cets_pssh.cc",
"mp2t/ts_section_cets_pssh.h",
]
}
}
static_library("test_support") {
testonly = true
visibility = [ "//media:test_support" ]
sources = [
"common/stream_parser_test_base.cc",
"common/stream_parser_test_base.h",
"webm/cluster_builder.cc",
"webm/cluster_builder.h",
"webm/opus_packet_builder.cc",
"webm/opus_packet_builder.h",
"webm/tracks_builder.cc",
"webm/tracks_builder.h",
]
deps = [
"//base/test:test_support",
"//media/base:test_support",
"//testing/gtest",
]
if (proprietary_codecs) {
sources += [
"mp4/nalu_test_helper.cc",
"mp4/nalu_test_helper.h",
]
if (enable_mse_mpeg2ts_stream_parser) {
sources += [
"mp2t/es_parser_test_base.cc",
"mp2t/es_parser_test_base.h",
]
}
}
}
source_set("unit_tests") {
testonly = true
sources = [
"ac3/ac3_util_unittest.cc",
"common/offset_byte_queue_unittest.cc",
"mpeg/mpeg1_audio_stream_parser_unittest.cc",
"webm/webm_cluster_parser_unittest.cc",
"webm/webm_content_encodings_client_unittest.cc",
"webm/webm_crypto_helpers_unittest.cc",
"webm/webm_parser_unittest.cc",
"webm/webm_projection_parser_unittest.cc",
"webm/webm_stream_parser_unittest.cc",
"webm/webm_tracks_parser_unittest.cc",
"webm/webm_video_client_unittest.cc",
"webm/webm_webvtt_parser_unittest.cc",
]
deps = [
"//base/test:test_support",
"//media:test_support",
"//testing/gmock",
"//testing/gtest",
]
if (proprietary_codecs) {
sources += [
"mp4/aac_unittest.cc",
"mp4/avc_unittest.cc",
"mp4/box_reader_unittest.cc",
"mp4/es_descriptor_unittest.cc",
"mp4/h264_annex_b_to_avc_bitstream_converter_unittest.cc",
"mp4/mp4_stream_parser_unittest.cc",
"mp4/sample_to_group_iterator_unittest.cc",
"mp4/track_run_iterator_unittest.cc",
"mpeg/adts_stream_parser_unittest.cc",
]
deps += [ "//crypto" ]
if (enable_mse_mpeg2ts_stream_parser) {
sources += [
"mp2t/es_adapter_video_unittest.cc",
"mp2t/es_parser_adts_unittest.cc",
"mp2t/es_parser_h264_unittest.cc",
"mp2t/es_parser_mpeg1audio_unittest.cc",
"mp2t/mp2t_stream_parser_unittest.cc",
"mp2t/timestamp_unroller_unittest.cc",
]
}
if (enable_platform_dolby_vision) {
sources += [ "mp4/dolby_vision_unittest.cc" ]
}
if (enable_platform_hevc) {
sources += [ "mp4/hevc_unittest.cc" ]
}
}
}
if (proprietary_codecs) {
fuzzer_test("h264_annex_b_converter_fuzzer") {
sources = [ "mp4/h264_annex_b_to_avc_bitstream_converter_fuzztest.cc" ]
seed_corpus = "mp4/h264_annex_b_fuzz_corpus"
deps = [
"//base",
"//media",
"//ui/gfx/geometry",
]
}
}