blob: e7c901cc9a51c2a5793ceffe06fc344a297d77a0 [file] [log] [blame]
Danil Chapovalovc46385c2020-03-11 10:45:57 +01001# Copyright (c) 2020 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
9import("//third_party/libaom/options.gni")
10import("../../../../webrtc.gni")
11
Danil Chapovalov4005e5a2020-11-25 17:01:22 +010012rtc_library("av1_svc_config") {
13 sources = [
14 "av1_svc_config.cc",
15 "av1_svc_config.h",
16 ]
17 deps = [
18 "../../../../api/video_codecs:video_codecs_api",
19 "../../../../rtc_base:checks",
20 "../../../../rtc_base:logging",
21 "../../svc:scalability_structures",
22 "../../svc:scalable_video_controller",
23 ]
24}
25
Danil Chapovalovc46385c2020-03-11 10:45:57 +010026rtc_library("libaom_av1_decoder") {
27 visibility = [ "*" ]
28 poisonous = [ "software_video_codecs" ]
29 public = [ "libaom_av1_decoder.h" ]
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020030 deps = [ "../../../../api/video_codecs:video_codecs_api" ]
31 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
Danil Chapovalovc46385c2020-03-11 10:45:57 +010032
Danil Chapovalov560e87a2020-03-17 15:56:20 +010033 if (enable_libaom) {
Danil Chapovalovc46385c2020-03-11 10:45:57 +010034 sources = [ "libaom_av1_decoder.cc" ]
35 deps += [
36 "../..:video_codec_interface",
37 "../../../../api:scoped_refptr",
38 "../../../../api/video:encoded_image",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:33 +000039 "../../../../api/video:video_frame",
Danil Chapovalovc46385c2020-03-11 10:45:57 +010040 "../../../../common_video",
41 "../../../../rtc_base:logging",
Danil Chapovalovc46385c2020-03-11 10:45:57 +010042 "//third_party/libaom",
43 "//third_party/libyuv",
44 ]
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020045 absl_deps += [ "//third_party/abseil-cpp/absl/types:optional" ]
Danil Chapovalovc46385c2020-03-11 10:45:57 +010046 } else {
47 sources = [ "libaom_av1_decoder_absent.cc" ]
48 }
49}
Danil Chapovalov976cc1a2020-03-20 10:36:13 +010050
51rtc_library("libaom_av1_encoder") {
52 visibility = [ "*" ]
53 poisonous = [ "software_video_codecs" ]
54 public = [ "libaom_av1_encoder.h" ]
55 deps = [
56 "../../../../api/video_codecs:video_codecs_api",
Danil Chapovalov9f4859e2020-10-16 17:45:41 +020057 "../../svc:scalability_structures",
Danil Chapovalovda7fe392020-10-15 15:57:17 +020058 "../../svc:scalable_video_controller",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020059 ]
60 absl_deps = [
61 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov976cc1a2020-03-20 10:36:13 +010062 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov54544ec2020-06-25 21:44:31 +020063 "//third_party/abseil-cpp/absl/types:optional",
Danil Chapovalov976cc1a2020-03-20 10:36:13 +010064 ]
65
66 if (enable_libaom) {
67 sources = [ "libaom_av1_encoder.cc" ]
68 deps += [
69 "../..:video_codec_interface",
70 "../../../../api:scoped_refptr",
71 "../../../../api/video:encoded_image",
72 "../../../../api/video:video_frame",
Danil Chapovalov976cc1a2020-03-20 10:36:13 +010073 "../../../../common_video",
74 "../../../../rtc_base:checks",
75 "../../../../rtc_base:logging",
Danil Chapovalov976cc1a2020-03-20 10:36:13 +010076 "//third_party/libaom",
77 ]
78 } else {
79 sources = [ "libaom_av1_encoder_absent.cc" ]
80 }
81}
Danil Chapovalova4c44252020-03-24 09:35:04 +010082
Danil Chapovalov28da36a2020-05-08 12:53:13 +020083if (rtc_include_tests) {
84 rtc_library("video_coding_codecs_av1_tests") {
85 testonly = true
Danil Chapovalova4c44252020-03-24 09:35:04 +010086
Danil Chapovalov4005e5a2020-11-25 17:01:22 +010087 sources = [ "av1_svc_config_unittest.cc" ]
88 deps = [
89 ":av1_svc_config",
90 "../../../../api/video_codecs:video_codecs_api",
Andrey Logvin78646002021-01-29 10:50:19 +000091 "../../../../test:test_support",
Danil Chapovalov4005e5a2020-11-25 17:01:22 +010092 ]
93
Danil Chapovalov28da36a2020-05-08 12:53:13 +020094 if (enable_libaom) {
Danil Chapovalov4005e5a2020-11-25 17:01:22 +010095 sources += [
Danil Chapovalov28da36a2020-05-08 12:53:13 +020096 "libaom_av1_encoder_unittest.cc",
97 "libaom_av1_unittest.cc",
98 ]
Danil Chapovalov4005e5a2020-11-25 17:01:22 +010099 deps += [
Danil Chapovalov28da36a2020-05-08 12:53:13 +0200100 ":libaom_av1_decoder",
101 ":libaom_av1_encoder",
Danil Chapovalov90dc5da2020-06-15 12:55:22 +0200102 "../..:encoded_video_frame_producer",
Danil Chapovalov28da36a2020-05-08 12:53:13 +0200103 "../..:video_codec_interface",
Danil Chapovalovb471ac72020-05-15 14:21:03 +0200104 "../../../../api:mock_video_encoder",
Danil Chapovalov54544ec2020-06-25 21:44:31 +0200105 "../../../../api/units:data_size",
106 "../../../../api/units:time_delta",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:33 +0000107 "../../../../api/video:video_frame",
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200108 "../../svc:scalability_structures",
109 "../../svc:scalable_video_controller",
Danil Chapovalov28da36a2020-05-08 12:53:13 +0200110 ]
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200111 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Danil Chapovalov28da36a2020-05-08 12:53:13 +0200112 }
Danil Chapovalova4c44252020-03-24 09:35:04 +0100113 }
114}