blob: fc45b5c1c4ee88d03c40a4ac8ee5b16df1e968bc [file] [log] [blame]
# Copyright 2017 The Chromium Authors
# 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("video") {
# 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/filters",
"//media/formats",
"//media/renderers",
]
sources = [
"gpu_memory_buffer_video_frame_pool.cc",
"gpu_memory_buffer_video_frame_pool.h",
"gpu_video_accelerator_factories.cc",
"gpu_video_accelerator_factories.h",
"h264_bit_reader.cc",
"h264_bit_reader.h",
"h264_level_limits.cc",
"h264_level_limits.h",
"h264_parser.cc",
"h264_parser.h",
"h264_poc.cc",
"h264_poc.h",
"half_float_maker.cc",
"half_float_maker.h",
"offloading_video_encoder.cc",
"offloading_video_encoder.h",
"picture.cc",
"picture.h",
"renderable_gpu_memory_buffer_video_frame_pool.cc",
"renderable_gpu_memory_buffer_video_frame_pool.h",
"trace_util.cc",
"trace_util.h",
"video_decode_accelerator.cc",
"video_decode_accelerator.h",
"video_encode_accelerator.cc",
"video_encode_accelerator.h",
"video_encode_accelerator_adapter.cc",
"video_encode_accelerator_adapter.h",
"video_encoder_fallback.cc",
"video_encoder_fallback.h",
"video_encoder_info.cc",
"video_encoder_info.h",
]
if (enable_platform_hevc) {
sources += [
"h265_nalu_parser.cc",
"h265_nalu_parser.h",
]
if (enable_hevc_parser_and_hw_decoder) {
sources += [
"h265_parser.cc",
"h265_parser.h",
"h265_poc.cc",
"h265_poc.h",
]
}
}
public_deps = [ "//gpu/command_buffer/client:gles2_interface" ]
deps = [
"//build:chromeos_buildflags",
"//gpu/command_buffer/client",
"//gpu/command_buffer/common",
"//gpu/ipc/common",
"//media/base",
"//third_party/libyuv",
"//ui/gfx",
"//ui/gl",
]
configs += [ "//media:subcomponent_config" ]
if (enable_libaom) {
sources += [
"av1_video_encoder.cc",
"av1_video_encoder.h",
]
public_deps += [ "//third_party/libaom" ]
}
if (media_use_libvpx) {
sources += [
"vpx_video_encoder.cc",
"vpx_video_encoder.h",
]
deps += [ "//third_party/libvpx" ]
}
if (proprietary_codecs && media_use_openh264) {
sources += [
"openh264_video_encoder.cc",
"openh264_video_encoder.h",
]
deps += [ "//third_party/openh264:encoder" ]
}
}
# Note: This is a roll-up only target; do not expand the visibility. DEPS should
# depend on the //media:test_support target instead.
static_library("test_support") {
visibility = [ "//media:test_support" ]
testonly = true
sources = [
"fake_gpu_memory_buffer.cc",
"fake_gpu_memory_buffer.h",
"fake_video_encode_accelerator.cc",
"fake_video_encode_accelerator.h",
"mock_gpu_memory_buffer_video_frame_pool.cc",
"mock_gpu_memory_buffer_video_frame_pool.h",
"mock_gpu_video_accelerator_factories.cc",
"mock_gpu_video_accelerator_factories.h",
"mock_video_decode_accelerator.cc",
"mock_video_decode_accelerator.h",
"mock_video_encode_accelerator.cc",
"mock_video_encode_accelerator.h",
]
configs += [ "//media:media_config" ]
deps = [
"//base",
"//gpu/command_buffer/client:gles2_interface",
"//gpu/command_buffer/common",
"//media/base:test_support",
"//services/viz/public/cpp/gpu",
"//testing/gmock",
"//ui/gfx",
]
}
source_set("unit_tests") {
testonly = true
sources = [
"gpu_memory_buffer_video_frame_pool_unittest.cc",
"h264_bit_reader_unittest.cc",
"h264_parser_unittest.cc",
"h264_poc_unittest.cc",
"half_float_maker_unittest.cc",
"offloading_video_encoder_unittest.cc",
"renderable_gpu_memory_buffer_video_frame_pool_unittest.cc",
"software_video_encoder_test.cc",
"video_encode_accelerator_adapter_test.cc",
"video_encoder_fallback_test.cc",
]
if (enable_platform_hevc) {
sources += [ "h265_nalu_parser_unittest.cc" ]
if (enable_hevc_parser_and_hw_decoder) {
sources += [
"h265_parser_unittest.cc",
"h265_poc_unittest.cc",
]
}
}
configs += [ "//media:media_config" ]
deps = [
"//base",
"//base/test:test_support",
"//components/viz/test:test_support",
"//gpu:test_support",
"//gpu/command_buffer/client:gles2_interface",
"//gpu/command_buffer/common",
"//media:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/libyuv:libyuv",
"//ui/gfx",
]
}
fuzzer_test("media_h264_parser_fuzzer") {
sources = [ "h264_parser_fuzzertest.cc" ]
deps = [
"//base",
"//media",
"//ui/gfx/geometry",
]
}
if (enable_hevc_parser_and_hw_decoder) {
fuzzer_test("media_h265_parser_fuzzer") {
sources = [ "h265_parser_fuzzertest.cc" ]
deps = [
"//base",
"//media",
]
}
}