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