blob: ddf4c2d4959aede418d25d5c8e7b80e53608350b [file] [log] [blame]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +00001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../webrtc.gni")
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000010
Mirko Bonadei86d053c2019-10-17 21:32:04 +020011rtc_library("common_video") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000012 visibility = [ "*" ]
13
kjellander@webrtc.org11bea892014-07-03 17:04:12 +000014 sources = [
emircan55a401e2016-04-26 12:55:07 -070015 "bitrate_adjuster.cc",
Erik Språng7daf5502019-08-14 11:04:40 +020016 "frame_rate_estimator.cc",
17 "frame_rate_estimator.h",
kthelgasonb9061722016-10-26 02:48:16 -070018 "h264/h264_bitstream_parser.cc",
19 "h264/h264_bitstream_parser.h",
sprang52033d62016-06-02 02:43:32 -070020 "h264/h264_common.cc",
21 "h264/h264_common.h",
22 "h264/pps_parser.cc",
23 "h264/pps_parser.h",
magjedfffc1e52016-10-31 05:55:57 -070024 "h264/profile_level_id.h",
sprang52033d62016-06-02 02:43:32 -070025 "h264/sps_parser.cc",
26 "h264/sps_parser.h",
27 "h264/sps_vui_rewriter.cc",
28 "h264/sps_vui_rewriter.h",
magjed@webrtc.org73d763e2015-03-17 11:40:45 +000029 "i420_buffer_pool.cc",
emircan55a401e2016-04-26 12:55:07 -070030 "include/bitrate_adjuster.h",
kjellander6f8ce062015-11-16 13:52:24 -080031 "include/i420_buffer_pool.h",
32 "include/incoming_video_stream.h",
Henrik Boströmce33b6a2019-05-28 17:42:38 +020033 "include/quality_limitation_reason.h",
nisseea3a7982017-05-15 02:42:11 -070034 "include/video_frame.h",
kjellander6f8ce062015-11-16 13:52:24 -080035 "include/video_frame_buffer.h",
Peter Boström9a638662015-05-13 13:28:11 +020036 "incoming_video_stream.cc",
kjellander@webrtc.org11bea892014-07-03 17:04:12 +000037 "libyuv/include/webrtc_libyuv.h",
kjellander@webrtc.org11bea892014-07-03 17:04:12 +000038 "libyuv/webrtc_libyuv.cc",
magjed@webrtc.org2386d6d2015-03-05 14:03:08 +000039 "video_frame_buffer.cc",
Peter Boström9a638662015-05-13 13:28:11 +020040 "video_render_frames.cc",
41 "video_render_frames.h",
kjellander@webrtc.org11bea892014-07-03 17:04:12 +000042 ]
43
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +000044 deps = [
Mirko Bonadeid9708072019-01-25 20:26:48 +010045 "../api:scoped_refptr",
Sebastian Jansson74682c12019-03-01 11:50:20 +010046 "../api/task_queue",
Erik Språng7daf5502019-08-14 11:04:40 +020047 "../api/units:time_delta",
48 "../api/units:timestamp",
Niels Möller4dc66c52018-10-05 14:17:58 +020049 "../api/video:encoded_image",
Erik Språngc8caaec2018-05-23 15:20:31 +020050 "../api/video:video_bitrate_allocation",
Jiawei Ou4206a0a2018-07-20 15:49:43 -070051 "../api/video:video_bitrate_allocator",
Niels Möllerc6ce9c52018-05-11 11:15:30 +020052 "../api/video:video_frame",
53 "../api/video:video_frame_i420",
Chen Xing5d24b162019-06-10 12:59:38 +020054 "../api/video:video_rtp_headers",
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010055 "../api/video_codecs:bitstream_parser_api",
zhihuang130ca7e2017-06-21 01:02:59 -070056 "../media:rtc_h264_profile_id",
Artem Titov94b57c02019-03-21 13:35:10 +010057 "../rtc_base",
Patrik Höglundbe214a22018-01-04 12:14:35 +010058 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070059 "../rtc_base:rtc_task_queue",
Karl Wiberg12edf4c2018-03-07 14:18:56 +010060 "../rtc_base:safe_minmax",
Mirko Bonadeic66e0042019-10-18 09:52:22 +020061 "../rtc_base/system:rtc_export",
Stefan Holmer0a5792e2018-10-05 13:47:12 +020062 "../system_wrappers:metrics",
Danil Chapovalov196100e2018-06-21 10:17:24 +020063 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglundbe214a22018-01-04 12:14:35 +010064 "//third_party/libyuv",
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +000065 ]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000066}
kjellander2a3892a2016-06-08 01:27:52 -070067
68if (rtc_include_tests) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020069 common_video_resources = [ "../resources/foreman_cif.yuv" ]
kjellander32c4a202016-08-30 02:53:49 -070070
71 if (is_ios) {
72 bundle_data("common_video_unittests_bundle_data") {
73 testonly = true
74 sources = common_video_resources
Mirko Bonadeiccbe95f2020-01-21 12:10:10 +010075 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
kjellander32c4a202016-08-30 02:53:49 -070076 }
77 }
78
ehmaldonado38a21322016-09-02 04:10:34 -070079 rtc_test("common_video_unittests") {
kjellander2a3892a2016-06-08 01:27:52 -070080 testonly = true
81
82 sources = [
83 "bitrate_adjuster_unittest.cc",
Erik Språng7daf5502019-08-14 11:04:40 +020084 "frame_rate_estimator_unittest.cc",
kthelgasonb9061722016-10-26 02:48:16 -070085 "h264/h264_bitstream_parser_unittest.cc",
kjellander2a3892a2016-06-08 01:27:52 -070086 "h264/pps_parser_unittest.cc",
magjedfffc1e52016-10-31 05:55:57 -070087 "h264/profile_level_id_unittest.cc",
kjellander2a3892a2016-06-08 01:27:52 -070088 "h264/sps_parser_unittest.cc",
89 "h264/sps_vui_rewriter_unittest.cc",
90 "i420_buffer_pool_unittest.cc",
kjellander2a3892a2016-06-08 01:27:52 -070091 "libyuv/libyuv_unittest.cc",
Emircan Uysaler901e0ff2018-06-26 12:22:38 -070092 "video_frame_unittest.cc",
kjellander2a3892a2016-06-08 01:27:52 -070093 ]
94
kjellander2a3892a2016-06-08 01:27:52 -070095 deps = [
96 ":common_video",
Yves Gerey3e707812018-11-28 16:47:49 +010097 "../:webrtc_common",
Mirko Bonadeid9708072019-01-25 20:26:48 +010098 "../api:scoped_refptr",
Yves Gerey3e707812018-11-28 16:47:49 +010099 "../api/units:time_delta",
Niels Möllerc6ce9c52018-05-11 11:15:30 +0200100 "../api/video:video_frame",
Emircan Uysaler901e0ff2018-06-26 12:22:38 -0700101 "../api/video:video_frame_i010",
Niels Möllerc6ce9c52018-05-11 11:15:30 +0200102 "../api/video:video_frame_i420",
Chen Xing5d24b162019-06-10 12:59:38 +0200103 "../api/video:video_rtp_headers",
Yves Gerey3e707812018-11-28 16:47:49 +0100104 "../media:rtc_h264_profile_id",
Artem Titov94b57c02019-03-21 13:35:10 +0100105 "../rtc_base",
Yves Gerey3e707812018-11-28 16:47:49 +0100106 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700107 "../rtc_base:rtc_base_approved",
Niels Möller2cb7b5e2018-04-19 10:02:26 +0200108 "../rtc_base:rtc_base_tests_utils",
Erik Språng7daf5502019-08-14 11:04:40 +0200109 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +0100110 "../test:fileutils",
Artem Titov33f9d2b2019-12-05 15:59:00 +0100111 "../test:frame_utils",
ehmaldonado26bddb92016-11-30 06:12:01 -0800112 "../test:test_main",
Yves Gerey21cddff2018-10-30 21:12:42 +0100113 "../test:test_support",
kjellander2a3892a2016-06-08 01:27:52 -0700114 "../test:video_test_common",
kjellander2a3892a2016-06-08 01:27:52 -0700115 "//testing/gtest",
Mirko Bonadei401d0562017-12-14 11:24:00 +0100116 "//third_party/libyuv",
kjellander2a3892a2016-06-08 01:27:52 -0700117 ]
118
ehmaldonado3a7f35b2016-09-14 05:10:01 -0700119 data = common_video_resources
kjellander2a3892a2016-06-08 01:27:52 -0700120 if (is_android) {
121 deps += [ "//testing/android/native_test:native_test_support" ]
kjellander28a0ffd2016-08-24 07:48:42 -0700122 shard_timeout = 900
123 }
kjellander2a3892a2016-06-08 01:27:52 -0700124
kjellander32c4a202016-08-30 02:53:49 -0700125 if (is_ios) {
126 deps += [ ":common_video_unittests_bundle_data" ]
kjellander2a3892a2016-06-08 01:27:52 -0700127 }
128 }
129}