| # Copyright 2019 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") | 
 | import("//third_party/blink/renderer/modules/modules.gni") | 
 | import("//third_party/libaom/options.gni") | 
 | import("//third_party/libgav1/options.gni") | 
 | import("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni") | 
 | import("//third_party/protobuf/proto_library.gni") | 
 |  | 
 | blink_modules_sources("webcodecs") { | 
 |   sources = [ | 
 |     "array_buffer_util.cc", | 
 |     "array_buffer_util.h", | 
 |     "audio_data.cc", | 
 |     "audio_data.h", | 
 |     "audio_data_attachment.cc", | 
 |     "audio_data_attachment.h", | 
 |     "audio_data_transfer_list.cc", | 
 |     "audio_data_transfer_list.h", | 
 |     "audio_decoder.cc", | 
 |     "audio_decoder.h", | 
 |     "audio_decoder_broker.cc", | 
 |     "audio_decoder_broker.h", | 
 |     "audio_encoder.cc", | 
 |     "audio_encoder.h", | 
 |     "background_readback.cc", | 
 |     "background_readback.h", | 
 |     "codec_config_eval.h", | 
 |     "codec_logger.cc", | 
 |     "codec_logger.h", | 
 |     "codec_pressure_gauge.cc", | 
 |     "codec_pressure_gauge.h", | 
 |     "codec_pressure_manager.cc", | 
 |     "codec_pressure_manager.h", | 
 |     "codec_pressure_manager_provider.cc", | 
 |     "codec_pressure_manager_provider.h", | 
 |     "codec_state_helper.cc", | 
 |     "codec_state_helper.h", | 
 |     "codec_trace_names.h", | 
 |     "decoder_buffer_attachment.cc", | 
 |     "decoder_buffer_attachment.h", | 
 |     "decoder_selector.cc", | 
 |     "decoder_selector.h", | 
 |     "decoder_template.cc", | 
 |     "decoder_template.h", | 
 |     "decrypt_config_util.cc", | 
 |     "decrypt_config_util.h", | 
 |     "encoded_audio_chunk.cc", | 
 |     "encoded_audio_chunk.h", | 
 |     "encoded_video_chunk.cc", | 
 |     "encoded_video_chunk.h", | 
 |     "encoder_base.cc", | 
 |     "encoder_base.h", | 
 |     "gpu_factories_retriever.cc", | 
 |     "gpu_factories_retriever.h", | 
 |     "hardware_preference.cc", | 
 |     "hardware_preference.h", | 
 |     "image_decoder_core.cc", | 
 |     "image_decoder_core.h", | 
 |     "image_decoder_external.cc", | 
 |     "image_decoder_external.h", | 
 |     "image_track.cc", | 
 |     "image_track.h", | 
 |     "image_track_list.cc", | 
 |     "image_track_list.h", | 
 |     "reclaimable_codec.cc", | 
 |     "reclaimable_codec.h", | 
 |     "video_color_space.cc", | 
 |     "video_color_space.h", | 
 |     "video_decoder.cc", | 
 |     "video_decoder.h", | 
 |     "video_decoder_broker.cc", | 
 |     "video_decoder_broker.h", | 
 |     "video_decoder_helper.cc", | 
 |     "video_decoder_helper.h", | 
 |     "video_encoder.cc", | 
 |     "video_encoder.h", | 
 |     "video_encoder_buffer.cc", | 
 |     "video_encoder_buffer.h", | 
 |     "video_frame.cc", | 
 |     "video_frame.h", | 
 |     "video_frame_attachment.cc", | 
 |     "video_frame_attachment.h", | 
 |     "video_frame_handle.cc", | 
 |     "video_frame_handle.h", | 
 |     "video_frame_init_util.cc", | 
 |     "video_frame_init_util.h", | 
 |     "video_frame_layout.cc", | 
 |     "video_frame_layout.h", | 
 |     "video_frame_monitor.cc", | 
 |     "video_frame_monitor.h", | 
 |     "video_frame_rect_util.cc", | 
 |     "video_frame_rect_util.h", | 
 |     "video_frame_transfer_list.cc", | 
 |     "video_frame_transfer_list.h", | 
 |     "webcodecs_logger.cc", | 
 |     "webcodecs_logger.h", | 
 |   ] | 
 |   deps = [ | 
 |     "//media", | 
 |     "//media/mojo:buildflags", | 
 |     "//media/mojo/clients", | 
 |     "//media/mojo/mojom", | 
 |     "//third_party/libyuv", | 
 |     "//third_party/opus", | 
 |   ] | 
 |   if (enable_libaom) { | 
 |     deps += [ "//third_party/libaom" ] | 
 |   } | 
 |   assert(use_libgav1_parser) | 
 |   deps += [ "//third_party/libgav1:libgav1_parser" ] | 
 |   if (media_use_libvpx) { | 
 |     deps += [ "//third_party/libvpx" ] | 
 |   } | 
 |   if (media_use_openh264) { | 
 |     deps += [ "//third_party/openh264:encoder" ] | 
 |   } | 
 |   if (is_fuchsia) { | 
 |     deps += [ "//media/fuchsia/video" ] | 
 |   } | 
 |   public_deps = [ "//third_party/blink/renderer/modules/webaudio" ] | 
 | } | 
 |  | 
 | source_set("unit_tests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "audio_data_test.cc", | 
 |     "audio_decoder_broker_test.cc", | 
 |     "audio_decoder_test.cc", | 
 |     "codec_pressure_gauge_test.cc", | 
 |     "codec_pressure_manager_test.cc", | 
 |     "decoder_selector_test.cc", | 
 |     "decoder_template_test.cc", | 
 |     "decrypt_config_util_test.cc", | 
 |     "encoded_audio_chunk_test.cc", | 
 |     "encoded_video_chunk_test.cc", | 
 |     "image_decoder_core_test.cc", | 
 |     "image_decoder_external_test.cc", | 
 |     "reclaimable_codec_test.cc", | 
 |     "test_helpers.cc", | 
 |     "test_helpers.h", | 
 |     "video_decoder_broker_test.cc", | 
 |     "video_decoder_test.cc", | 
 |     "video_encoder_test.cc", | 
 |     "video_frame_monitor_test.cc", | 
 |     "video_frame_test.cc", | 
 |   ] | 
 |  | 
 |   configs += [ | 
 |     "//third_party/blink/renderer:config", | 
 |     "//third_party/blink/renderer:inside_blink", | 
 |     "//third_party/blink/renderer/core:blink_core_pch", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "//base/test:test_support", | 
 |     "//gpu/command_buffer/common", | 
 |     "//media:test_support", | 
 |     "//media/mojo/services", | 
 |     "//testing/gmock", | 
 |     "//testing/gtest", | 
 |     "//third_party/blink/public:test_headers", | 
 |     "//third_party/blink/renderer/controller:blink_bindings_test_sources", | 
 |     "//third_party/blink/renderer/core:testing", | 
 |     "//third_party/blink/renderer/modules", | 
 |     "//third_party/blink/renderer/platform", | 
 |     "//third_party/blink/renderer/platform:test_support", | 
 |     "//third_party/blink/renderer/platform/wtf", | 
 |     "//third_party/libyuv", | 
 |   ] | 
 |  | 
 |   data = [ "//third_party/blink/web_tests/images/resources/" ] | 
 |  | 
 |   # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and | 
 |   # enable the diagnostic by removing this line. | 
 |   configs += [ "//build/config/compiler:no_exit_time_destructors" ] | 
 | } | 
 |  | 
 | fuzzable_proto_library("fuzzer_protos") { | 
 |   generate_python = true | 
 |   sources = [ "fuzzer_inputs.proto" ] | 
 | } |