• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Files to interface between IAMF Tools and codec libraries when encoding and decoding substreams.
2
3package(default_visibility = ["//iamf/cli:__subpackages__"])
4
5# keep-sorted start block=yes prefix_order=cc_library newline_separated=yes
6cc_library(
7    name = "aac_decoder",
8    srcs = ["aac_decoder.cc"],
9    hdrs = ["aac_decoder.h"],
10    deps = [
11        ":aac_utils",
12        ":decoder_base",
13        "//iamf/common:write_bit_buffer",
14        "//iamf/common/utils:macros",
15        "//iamf/common/utils:sample_processing_utils",
16        "//iamf/obu:codec_config",
17        "//iamf/obu/decoder_config:aac_decoder_config",
18        "@com_google_absl//absl/functional:any_invocable",
19        "@com_google_absl//absl/log",
20        "@com_google_absl//absl/status",
21        "@com_google_absl//absl/strings",
22        "@com_google_absl//absl/strings:string_view",
23        "@com_google_absl//absl/types:span",
24        "@fdk_aac//:aac_decoder_lib",
25        "@fdk_aac//:fdk_sys_lib",
26    ],
27)
28
29cc_library(
30    name = "aac_encoder",
31    srcs = ["aac_encoder.cc"],
32    hdrs = ["aac_encoder.h"],
33    deps = [
34        ":aac_utils",
35        ":encoder_base",
36        "//iamf/cli:audio_frame_with_data",
37        "//iamf/cli/proto:codec_config_cc_proto",
38        "//iamf/common/utils:macros",
39        "//iamf/common/utils:numeric_utils",
40        "//iamf/common/utils:sample_processing_utils",
41        "//iamf/common/utils:validation_utils",
42        "//iamf/obu:codec_config",
43        "//iamf/obu/decoder_config:aac_decoder_config",
44        "@com_google_absl//absl/log",
45        "@com_google_absl//absl/status",
46        "@com_google_absl//absl/strings",
47        "@com_google_absl//absl/synchronization",
48        "@fdk_aac//:aac_encoder_lib",
49        "@fdk_aac//:fdk_sys_lib",
50    ],
51)
52
53cc_library(
54    name = "aac_utils",
55    srcs = [],
56    hdrs = ["aac_utils.h"],
57    deps = ["@fdk_aac//:fdk_sys_lib"],
58)
59
60cc_library(
61    name = "decoder_base",
62    hdrs = ["decoder_base.h"],
63    deps = ["@com_google_absl//absl/status"],
64)
65
66cc_library(
67    name = "encoder_base",
68    srcs = ["encoder_base.cc"],
69    hdrs = ["encoder_base.h"],
70    deps = [
71        "//iamf/cli:audio_frame_with_data",
72        "//iamf/common/utils:macros",
73        "//iamf/obu:codec_config",
74        "@com_google_absl//absl/base:core_headers",
75        "@com_google_absl//absl/log",
76        "@com_google_absl//absl/status",
77        "@com_google_absl//absl/strings",
78        "@com_google_absl//absl/synchronization",
79    ],
80)
81
82cc_library(
83    name = "flac_decoder",
84    srcs = ["flac_decoder.cc"],
85    hdrs = ["flac_decoder.h"],
86    deps = [
87        ":decoder_base",
88        "@com_google_absl//absl/log",
89        "@com_google_absl//absl/status",
90        "@com_google_absl//absl/strings",
91        "@flac//:src",
92    ],
93)
94
95cc_library(
96    name = "flac_decoder_stream_callbacks",
97    srcs = ["flac_decoder_stream_callbacks.cc"],
98    hdrs = ["flac_decoder_stream_callbacks.h"],
99    deps = [
100        ":flac_decoder",
101        "@com_google_absl//absl/log",
102        "@flac//:src",
103    ],
104)
105
106cc_library(
107    name = "flac_encoder",
108    srcs = ["flac_encoder.cc"],
109    hdrs = ["flac_encoder.h"],
110    deps = [
111        ":encoder_base",
112        "//iamf/cli:audio_frame_with_data",
113        "//iamf/cli/proto:codec_config_cc_proto",
114        "//iamf/common/utils:macros",
115        "//iamf/common/utils:sample_processing_utils",
116        "//iamf/obu:codec_config",
117        "//iamf/obu/decoder_config:flac_decoder_config",
118        "@com_google_absl//absl/base:core_headers",
119        "@com_google_absl//absl/container:btree",
120        "@com_google_absl//absl/functional:any_invocable",
121        "@com_google_absl//absl/log",
122        "@com_google_absl//absl/status",
123        "@com_google_absl//absl/strings",
124        "@com_google_absl//absl/synchronization",
125        "@com_google_absl//absl/types:span",
126        "@flac//:src",
127    ],
128)
129
130cc_library(
131    name = "lpcm_decoder",
132    srcs = ["lpcm_decoder.cc"],
133    hdrs = ["lpcm_decoder.h"],
134    deps = [
135        ":decoder_base",
136        "//iamf/common/utils:macros",
137        "//iamf/common/utils:numeric_utils",
138        "//iamf/obu:codec_config",
139        "//iamf/obu/decoder_config:lpcm_decoder_config",
140        "@com_google_absl//absl/status",
141        "@com_google_absl//absl/strings",
142        "@com_google_absl//absl/types:span",
143    ],
144)
145
146cc_library(
147    name = "lpcm_encoder",
148    srcs = ["lpcm_encoder.cc"],
149    hdrs = ["lpcm_encoder.h"],
150    deps = [
151        ":encoder_base",
152        "//iamf/cli:audio_frame_with_data",
153        "//iamf/cli:cli_util",
154        "//iamf/common/utils:macros",
155        "//iamf/obu:codec_config",
156        "//iamf/obu/decoder_config:lpcm_decoder_config",
157        "@com_google_absl//absl/log",
158        "@com_google_absl//absl/status",
159        "@com_google_absl//absl/strings",
160        "@com_google_absl//absl/synchronization",
161    ],
162)
163
164cc_library(
165    name = "opus_decoder",
166    srcs = ["opus_decoder.cc"],
167    hdrs = ["opus_decoder.h"],
168    deps = [
169        ":decoder_base",
170        ":opus_utils",
171        "//iamf/common/utils:macros",
172        "//iamf/common/utils:numeric_utils",
173        "//iamf/common/utils:sample_processing_utils",
174        "//iamf/obu:codec_config",
175        "//iamf/obu/decoder_config:opus_decoder_config",
176        "@com_google_absl//absl/functional:any_invocable",
177        "@com_google_absl//absl/log",
178        "@com_google_absl//absl/status",
179        "@com_google_absl//absl/strings",
180        "@com_google_absl//absl/types:span",
181        "@libopus",
182    ],
183)
184
185cc_library(
186    name = "opus_encoder",
187    srcs = ["opus_encoder.cc"],
188    hdrs = ["opus_encoder.h"],
189    deps = [
190        ":encoder_base",
191        ":opus_utils",
192        "//iamf/cli:audio_frame_with_data",
193        "//iamf/cli/proto:codec_config_cc_proto",
194        "//iamf/common/utils:macros",
195        "//iamf/common/utils:numeric_utils",
196        "//iamf/common/utils:sample_processing_utils",
197        "//iamf/common/utils:validation_utils",
198        "//iamf/obu:codec_config",
199        "//iamf/obu/decoder_config:opus_decoder_config",
200        "@com_google_absl//absl/functional:any_invocable",
201        "@com_google_absl//absl/log",
202        "@com_google_absl//absl/status",
203        "@com_google_absl//absl/strings",
204        "@com_google_absl//absl/synchronization",
205        "@com_google_absl//absl/types:span",
206        "@libopus",
207    ],
208)
209
210cc_library(
211    name = "opus_utils",
212    srcs = ["opus_utils.cc"],
213    hdrs = ["opus_utils.h"],
214    deps = [
215        "@com_google_absl//absl/status",
216        "@com_google_absl//absl/strings",
217        "@com_google_absl//absl/strings:string_view",
218        "@libopus",
219    ],
220)
221
222# keep-sorted end
223