|  | # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 
|  | # | 
|  | # Use of this source code is governed by a BSD-style license | 
|  | # that can be found in the LICENSE file in the root of the source | 
|  | # tree. An additional intellectual property rights grant can be found | 
|  | # in the file PATENTS.  All contributing project authors may | 
|  | # be found in the AUTHORS file in the root of the source tree. | 
|  |  | 
|  | import("../../webrtc.gni") | 
|  |  | 
|  | rtc_static_library("encoded_frame") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "encoded_frame.cc", | 
|  | "encoded_frame.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | "../../:webrtc_common", | 
|  | "../../api:optional", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../common_video:common_video", | 
|  | "../../modules:module_api", | 
|  | "../../modules:module_api_public", | 
|  | "../../modules/video_coding:video_coding_utility", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base/experiments:alr_experiment", | 
|  | "../../system_wrappers:field_trial_api", | 
|  | "../../system_wrappers:system_wrappers", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_static_library("video_coding") { | 
|  | visibility = [ "*" ] | 
|  | deps = [] | 
|  |  | 
|  | sources = [ | 
|  | "codec_timer.cc", | 
|  | "codec_timer.h", | 
|  | "decoder_database.cc", | 
|  | "decoder_database.h", | 
|  | "decoding_state.cc", | 
|  | "decoding_state.h", | 
|  | "encoder_database.cc", | 
|  | "encoder_database.h", | 
|  | "fec_controller_default.cc", | 
|  | "fec_controller_default.h", | 
|  | "fec_rate_table.h", | 
|  | "frame_buffer.cc", | 
|  | "frame_buffer.h", | 
|  | "frame_buffer2.cc", | 
|  | "frame_buffer2.h", | 
|  | "frame_object.cc", | 
|  | "frame_object.h", | 
|  | "generic_decoder.cc", | 
|  | "generic_decoder.h", | 
|  | "generic_encoder.cc", | 
|  | "generic_encoder.h", | 
|  | "h264_sprop_parameter_sets.cc", | 
|  | "h264_sprop_parameter_sets.h", | 
|  | "h264_sps_pps_tracker.cc", | 
|  | "h264_sps_pps_tracker.h", | 
|  | "histogram.cc", | 
|  | "histogram.h", | 
|  | "include/video_codec_initializer.h", | 
|  | "include/video_coding.h", | 
|  | "inter_frame_delay.cc", | 
|  | "inter_frame_delay.h", | 
|  | "internal_defines.h", | 
|  | "jitter_buffer.cc", | 
|  | "jitter_buffer.h", | 
|  | "jitter_buffer_common.h", | 
|  | "jitter_estimator.cc", | 
|  | "jitter_estimator.h", | 
|  | "media_opt_util.cc", | 
|  | "media_opt_util.h", | 
|  | "media_optimization.cc", | 
|  | "media_optimization.h", | 
|  | "nack_fec_tables.h", | 
|  | "nack_module.cc", | 
|  | "nack_module.h", | 
|  | "packet.cc", | 
|  | "packet.h", | 
|  | "packet_buffer.cc", | 
|  | "packet_buffer.h", | 
|  | "qp_parser.cc", | 
|  | "qp_parser.h", | 
|  | "receiver.cc", | 
|  | "receiver.h", | 
|  | "rtp_frame_reference_finder.cc", | 
|  | "rtp_frame_reference_finder.h", | 
|  | "rtt_filter.cc", | 
|  | "rtt_filter.h", | 
|  | "session_info.cc", | 
|  | "session_info.h", | 
|  | "timestamp_map.cc", | 
|  | "timestamp_map.h", | 
|  | "timing.cc", | 
|  | "timing.h", | 
|  | "video_codec_initializer.cc", | 
|  | "video_coding_impl.cc", | 
|  | "video_coding_impl.h", | 
|  | "video_receiver.cc", | 
|  | "video_sender.cc", | 
|  | ] | 
|  |  | 
|  | # TODO(jschuh): Bug 1348: fix this warning. | 
|  | configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | if (rtc_use_builtin_sw_codecs) { | 
|  | deps += [ | 
|  | ":webrtc_i420", | 
|  | ":webrtc_vp8", | 
|  | ":webrtc_vp9", | 
|  | ] | 
|  | } | 
|  |  | 
|  | deps += [ | 
|  | ":codec_globals_headers", | 
|  | ":encoded_frame", | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | ":webrtc_h264", | 
|  | ":webrtc_vp8_helpers", | 
|  | "..:module_api", | 
|  | "..:module_api_public", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:encoded_frame_api", | 
|  | "../../api:fec_controller_api", | 
|  | "../../api:optional", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../call:video_stream_api", | 
|  | "../../common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:rtc_task_queue", | 
|  | "../../rtc_base:sequenced_task_checker", | 
|  | "../../rtc_base/experiments:alr_experiment", | 
|  | "../../rtc_base/system:fallthrough", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:field_trial_api", | 
|  | "../../system_wrappers:metrics_api", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "../utility:utility", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_codec_interface") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "include/video_codec_interface.h", | 
|  | "include/video_coding_defines.h", | 
|  | "include/video_error_codes.h", | 
|  | ] | 
|  | deps = [ | 
|  | "..:module_api", | 
|  | "../..:typedefs", | 
|  | "../..:webrtc_common", | 
|  | "../../api:video_frame_api", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video:common_video", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_headers") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "include/mock/mock_video_codec_interface.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("codec_globals_headers") { | 
|  | sources = [ | 
|  | "codecs/h264/include/h264_globals.h", | 
|  | "codecs/interface/common_constants.h", | 
|  | "codecs/vp8/include/vp8_globals.h", | 
|  | "codecs/vp9/include/vp9_globals.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_coding_utility") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "utility/default_video_bitrate_allocator.cc", | 
|  | "utility/default_video_bitrate_allocator.h", | 
|  | "utility/frame_dropper.cc", | 
|  | "utility/frame_dropper.h", | 
|  | "utility/ivf_file_writer.cc", | 
|  | "utility/ivf_file_writer.h", | 
|  | "utility/moving_average.cc", | 
|  | "utility/moving_average.h", | 
|  | "utility/quality_scaler.cc", | 
|  | "utility/quality_scaler.h", | 
|  | "utility/vp8_header_parser.cc", | 
|  | "utility/vp8_header_parser.h", | 
|  | "utility/vp9_uncompressed_header_parser.cc", | 
|  | "utility/vp9_uncompressed_header_parser.h", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | "..:module_api", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:optional", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video", | 
|  | "../../modules/rtp_rtcp", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:rtc_task_queue", | 
|  | "../../rtc_base:sequenced_task_checker", | 
|  | "../../system_wrappers", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_static_library("webrtc_h264") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "codecs/h264/h264.cc", | 
|  | "codecs/h264/include/h264.h", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | defines = [] | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../media:rtc_h264_profile_id", | 
|  | "../../media:rtc_media_base", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../system_wrappers:metrics_api", | 
|  | ] | 
|  |  | 
|  | if (rtc_use_h264) { | 
|  | defines += [ "WEBRTC_USE_H264" ] | 
|  | if (rtc_initialize_ffmpeg) { | 
|  | defines += [ "WEBRTC_INITIALIZE_FFMPEG" ] | 
|  | } | 
|  | sources += [ | 
|  | "codecs/h264/h264_decoder_impl.cc", | 
|  | "codecs/h264/h264_decoder_impl.h", | 
|  | "codecs/h264/h264_encoder_impl.cc", | 
|  | "codecs/h264/h264_encoder_impl.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../../common_video", | 
|  | "//third_party/ffmpeg:ffmpeg", | 
|  | "//third_party/openh264:encoder", | 
|  | ] | 
|  |  | 
|  | # TODO(bugs.webrtc.org/8745): stop using av_lockmgr_register | 
|  | if (!is_win) { | 
|  | cflags = [ "-Wno-deprecated-declarations" ] | 
|  | } | 
|  |  | 
|  | if (!build_with_mozilla) { | 
|  | deps += [ "../../media:rtc_media_base" ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_static_library("webrtc_i420") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "codecs/i420/i420.cc", | 
|  | "codecs/i420/include/i420.h", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../common_video:common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../system_wrappers", | 
|  | "//third_party/libyuv", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_static_library("webrtc_multiplex") { | 
|  | sources = [ | 
|  | "codecs/multiplex/include/multiplex_decoder_adapter.h", | 
|  | "codecs/multiplex/include/multiplex_encoded_image_packer.h", | 
|  | "codecs/multiplex/include/multiplex_encoder_adapter.h", | 
|  | "codecs/multiplex/multiplex_decoder_adapter.cc", | 
|  | "codecs/multiplex/multiplex_encoded_image_packer.cc", | 
|  | "codecs/multiplex/multiplex_encoder_adapter.cc", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "..:module_api", | 
|  | "../..:webrtc_common", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video:common_video", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../system_wrappers", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # This target includes VP8 files that may be used for any VP8 codec, internal SW or external HW. | 
|  | rtc_static_library("webrtc_vp8_helpers") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "codecs/vp8/default_temporal_layers.cc", | 
|  | "codecs/vp8/default_temporal_layers.h", | 
|  | "codecs/vp8/include/vp8.h", | 
|  | "codecs/vp8/include/vp8_common_types.h", | 
|  | "codecs/vp8/screenshare_layers.cc", | 
|  | "codecs/vp8/screenshare_layers.h", | 
|  | "codecs/vp8/simulcast_rate_allocator.cc", | 
|  | "codecs/vp8/simulcast_rate_allocator.h", | 
|  | "codecs/vp8/temporal_layers.cc", | 
|  | "codecs/vp8/temporal_layers.h", | 
|  | ] | 
|  |  | 
|  | # TODO(jschuh): Bug 1348: fix this warning. | 
|  | configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "..:module_api", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:optional", | 
|  | "../../api:video_frame_api", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:field_trial_api", | 
|  | "../../system_wrappers:metrics_api", | 
|  | "//third_party/libyuv", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # This target includes the internal SW codec. | 
|  | rtc_static_library("webrtc_vp8") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "codecs/vp8/include/vp8.h", | 
|  | "codecs/vp8/include/vp8_common_types.h", | 
|  | "codecs/vp8/vp8_impl.cc", | 
|  | "codecs/vp8/vp8_impl.h", | 
|  | ] | 
|  |  | 
|  | # TODO(jschuh): Bug 1348: fix this warning. | 
|  | configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | ":webrtc_vp8_helpers", | 
|  | "..:module_api", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:optional", | 
|  | "../../api:video_frame_api", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:field_trial_api", | 
|  | "../../system_wrappers:metrics_api", | 
|  | "//third_party/libyuv", | 
|  | ] | 
|  | if (rtc_build_libvpx) { | 
|  | deps += [ rtc_libvpx_dir ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_static_library("webrtc_vp9") { | 
|  | visibility = [ "*" ] | 
|  | if (rtc_libvpx_build_vp9) { | 
|  | sources = [ | 
|  | "codecs/vp9/include/vp9.h", | 
|  | "codecs/vp9/screenshare_layers.cc", | 
|  | "codecs/vp9/screenshare_layers.h", | 
|  | "codecs/vp9/vp9_frame_buffer_pool.cc", | 
|  | "codecs/vp9/vp9_frame_buffer_pool.h", | 
|  | "codecs/vp9/vp9_impl.cc", | 
|  | "codecs/vp9/vp9_impl.h", | 
|  | ] | 
|  | } else { | 
|  | sources = [ | 
|  | "codecs/vp9/vp9_noop.cc", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_coding_utility", | 
|  | "..:module_api", | 
|  | "../../common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../system_wrappers", | 
|  | ] | 
|  | if (rtc_build_libvpx) { | 
|  | deps += [ rtc_libvpx_dir ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests) { | 
|  | if (is_android) { | 
|  | rtc_static_library("android_codec_factory_helper") { | 
|  | sources = [ | 
|  | "codecs/test/android_codec_factory_helper.cc", | 
|  | "codecs/test/android_codec_factory_helper.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../sdk/android:native_api_base", | 
|  | "../../sdk/android:native_api_codecs", | 
|  | "../../sdk/android:native_api_jni", | 
|  | "//base", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (is_ios || is_mac) { | 
|  | rtc_static_library("objc_codec_factory_helper") { | 
|  | sources = [ | 
|  | "codecs/test/objc_codec_factory_helper.h", | 
|  | "codecs/test/objc_codec_factory_helper.mm", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api:video_frame_api", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../media:rtc_audio_video", | 
|  | "../../media:rtc_media_base", | 
|  | "../../modules:module_api", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../sdk:common_objc", | 
|  | "../../sdk:native_api", | 
|  | "../../sdk:peerconnectionfactory_base_objc", | 
|  | "../../sdk:videocodec_objc", | 
|  | "../../sdk:videosource_objc", | 
|  | "../../sdk:videotoolbox_objc", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("simulcast_test_utility") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "codecs/vp8/simulcast_test_utility.h", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":mock_headers", | 
|  | ":video_codec_interface", | 
|  | ":video_coding", | 
|  | ":webrtc_vp8_helpers", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../common_video:common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_codecs_test_framework") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "codecs/test/stats.cc", | 
|  | "codecs/test/stats.h", | 
|  | "codecs/test/test_config.cc", | 
|  | "codecs/test/test_config.h", | 
|  | "codecs/test/video_codec_unittest.cc", | 
|  | "codecs/test/video_codec_unittest.h", | 
|  | "codecs/test/videoprocessor.cc", | 
|  | "codecs/test/videoprocessor.h", | 
|  | ] | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":codec_globals_headers", | 
|  | ":video_codec_interface", | 
|  | ":video_coding", | 
|  | ":video_coding_utility", | 
|  | ":webrtc_vp8_helpers", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video:common_video", | 
|  | "../../media:rtc_audio_video", | 
|  | "../../media:rtc_h264_profile_id", | 
|  | "../../media:rtc_media_base", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_task_queue", | 
|  | "../../rtc_base:sequenced_task_checker", | 
|  | "../../system_wrappers", | 
|  | "../../test:test_common", | 
|  | "../../test:test_support", | 
|  | "../../test:video_test_common", | 
|  | "../../test:video_test_support", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//third_party/libyuv", | 
|  | ] | 
|  | } | 
|  |  | 
|  | video_coding_modules_tests_resources = [ "../../resources/paris_qcif.yuv" ] | 
|  |  | 
|  | if (!(is_ios || is_android)) { | 
|  | video_coding_modules_tests_resources += [ | 
|  | "../../resources/FourPeople_1280x720_30.yuv", | 
|  | "../../resources/ConferenceMotion_1280_720_50.yuv", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_ios || is_mac) { | 
|  | bundle_data("video_coding_modules_tests_resources_bundle_data") { | 
|  | testonly = true | 
|  | sources = video_coding_modules_tests_resources | 
|  | outputs = [ | 
|  | "{{bundle_resources_dir}}/{{source_file_part}}", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_coding_modules_tests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "codecs/h264/test/h264_impl_unittest.cc", | 
|  | "codecs/multiplex/test/multiplex_adapter_unittest.cc", | 
|  | "codecs/test/video_encoder_decoder_instantiation_tests.cc", | 
|  | "codecs/test/videoprocessor_integrationtest.cc", | 
|  | "codecs/test/videoprocessor_integrationtest.h", | 
|  | "codecs/test/videoprocessor_integrationtest_libvpx.cc", | 
|  | "codecs/test/videoprocessor_integrationtest_openh264.cc", | 
|  | "codecs/test/videoprocessor_integrationtest_parameterized.cc", | 
|  | "codecs/vp8/test/vp8_impl_unittest.cc", | 
|  | "codecs/vp9/test/vp9_impl_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":video_codec_interface", | 
|  | ":video_codecs_test_framework", | 
|  | ":video_coding", | 
|  | ":video_coding_utility", | 
|  | ":webrtc_h264", | 
|  | ":webrtc_multiplex", | 
|  | ":webrtc_vp8_helpers", | 
|  | ":webrtc_vp9", | 
|  | "../..:webrtc_common", | 
|  | "../../api:mock_video_codec_factory", | 
|  | "../../api:optional", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video", | 
|  | "../../media:rtc_audio_video", | 
|  | "../../media:rtc_h264_profile_id", | 
|  | "../../media:rtc_internal_video_codecs", | 
|  | "../../media:rtc_media_base", | 
|  | "../../media:rtc_software_fallback_wrappers", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../rtc_base:rtc_base_tests_utils", | 
|  | "../../system_wrappers", | 
|  | "../../test:field_trial", | 
|  | "../../test:test_support", | 
|  | "../../test:video_test_common", | 
|  | "../../test:video_test_support", | 
|  | "../video_capture", | 
|  | ] | 
|  |  | 
|  | data = video_coding_modules_tests_resources | 
|  |  | 
|  | if (is_android) { | 
|  | sources += [ "codecs/test/videoprocessor_integrationtest_mediacodec.cc" ] | 
|  |  | 
|  | deps += [ ":android_codec_factory_helper" ] | 
|  | } | 
|  |  | 
|  | if (is_ios || is_mac) { | 
|  | sources += | 
|  | [ "codecs/test/videoprocessor_integrationtest_videotoolbox.cc" ] | 
|  |  | 
|  | deps += [ | 
|  | ":objc_codec_factory_helper", | 
|  | ":video_coding_modules_tests_resources_bundle_data", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_use_h264) { | 
|  | defines = [ "WEBRTC_USE_H264" ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_coding_unittests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "codecs/test/stats_unittest.cc", | 
|  | "codecs/test/test_config_unittest.cc", | 
|  | "codecs/test/videoprocessor_unittest.cc", | 
|  | "codecs/vp8/default_temporal_layers_unittest.cc", | 
|  | "codecs/vp8/screenshare_layers_unittest.cc", | 
|  | "codecs/vp8/simulcast_unittest.cc", | 
|  | "decoding_state_unittest.cc", | 
|  | "fec_controller_unittest.cc", | 
|  | "frame_buffer2_unittest.cc", | 
|  | "generic_encoder_unittest.cc", | 
|  | "h264_sprop_parameter_sets_unittest.cc", | 
|  | "h264_sps_pps_tracker_unittest.cc", | 
|  | "histogram_unittest.cc", | 
|  | "include/mock/mock_vcm_callbacks.h", | 
|  | "jitter_buffer_unittest.cc", | 
|  | "jitter_estimator_tests.cc", | 
|  | "nack_module_unittest.cc", | 
|  | "receiver_unittest.cc", | 
|  | "rtp_frame_reference_finder_unittest.cc", | 
|  | "session_info_unittest.cc", | 
|  | "test/stream_generator.cc", | 
|  | "test/stream_generator.h", | 
|  | "test/test_util.h", | 
|  | "timing_unittest.cc", | 
|  | "utility/default_video_bitrate_allocator_unittest.cc", | 
|  | "utility/frame_dropper_unittest.cc", | 
|  | "utility/ivf_file_writer_unittest.cc", | 
|  | "utility/mock/mock_frame_dropper.h", | 
|  | "utility/moving_average_unittest.cc", | 
|  | "utility/quality_scaler_unittest.cc", | 
|  | "utility/simulcast_rate_allocator_unittest.cc", | 
|  | "video_codec_initializer_unittest.cc", | 
|  | "video_packet_buffer_unittest.cc", | 
|  | "video_receiver_unittest.cc", | 
|  | "video_sender_unittest.cc", | 
|  | ] | 
|  | if (rtc_libvpx_build_vp9) { | 
|  | sources += [ "codecs/vp9/vp9_screenshare_layers_unittest.cc" ] | 
|  | } | 
|  | if (rtc_use_h264) { | 
|  | sources += [ "codecs/h264/h264_encoder_impl_unittest.cc" ] | 
|  | } | 
|  | deps = [ | 
|  | ":encoded_frame", | 
|  | ":mock_headers", | 
|  | ":simulcast_test_utility", | 
|  | ":video_codec_interface", | 
|  | ":video_codecs_test_framework", | 
|  | ":video_coding", | 
|  | ":video_coding_utility", | 
|  | ":webrtc_h264", | 
|  | ":webrtc_vp8", | 
|  | ":webrtc_vp8_helpers", | 
|  | ":webrtc_vp9", | 
|  | "..:module_api", | 
|  | "../..:webrtc_common", | 
|  | "../../:typedefs", | 
|  | "../../api:video_frame_api", | 
|  | "../../api:video_frame_api_i420", | 
|  | "../../api/video_codecs:video_codecs_api", | 
|  | "../../common_video:common_video", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_base", | 
|  | "../../rtc_base:rtc_base_approved", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:rtc_task_queue", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:field_trial_api", | 
|  | "../../system_wrappers:metrics_api", | 
|  | "../../system_wrappers:metrics_default", | 
|  | "../../test:field_trial", | 
|  | "../../test:test_support", | 
|  | "../../test:video_test_common", | 
|  | "../../test:video_test_support", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | ] | 
|  | if (rtc_build_libvpx) { | 
|  | deps += [ rtc_libvpx_dir ] | 
|  | } | 
|  |  | 
|  | # TODO(jschuh): bugs.webrtc.org/1348: fix this warning. | 
|  | configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
|  | if (!build_with_chromium && is_clang) { | 
|  | # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
|  | suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
|  | } | 
|  | } | 
|  | } |