1package { 2 default_applicable_licenses: ["external_libavc_license"], 3} 4 5// Added automatically by a large-scale-change 6// See: http://go/android-license-faq 7license { 8 name: "external_libavc_license", 9 visibility: [":__subpackages__"], 10 license_kinds: [ 11 "SPDX-license-identifier-Apache-2.0", 12 ], 13 license_text: [ 14 "NOTICE", 15 ], 16} 17 18cc_library_headers { 19 name: "libavcdec_headers", 20 export_include_dirs: [ 21 "common", 22 "decoder", 23 ], 24 min_sdk_version: "29", 25} 26 27cc_library_headers { 28 name: "libmvcdec_headers", 29 export_include_dirs: [ 30 "common", 31 "common/mvc", 32 "decoder", 33 "decoder/mvc", 34 ], 35 min_sdk_version: "29", 36} 37 38cc_library_headers { 39 name: "libsvcenc_headers", 40 export_include_dirs: [ 41 "common", 42 "common/svc", 43 "encoder", 44 "encoder/svc", 45 ], 46 min_sdk_version: "29", 47} 48 49cc_library_headers { 50 name: "libsvcdec_headers", 51 export_include_dirs: [ 52 "common", 53 "common/svc", 54 "decoder", 55 "decoder/svc", 56 ], 57 min_sdk_version: "29", 58} 59 60cc_library_headers { 61 name: "libavcenc_headers", 62 export_include_dirs: [ 63 "common", 64 "encoder", 65 ], 66 min_sdk_version: "29", 67} 68 69cc_defaults { 70 name: "libavc_enc_defaults", 71 vendor_available: true, 72 host_supported: true, 73 shared_libs: [ 74 "liblog", 75 "libcutils", 76 ], 77 cflags: [ 78 "-DNDEBUG", 79 "-UHP_PL", 80 "-DN_MB_ENABLE", 81 "-fPIC", 82 "-O3", 83 "-Wall", 84 "-Werror", 85 "-Wno-error=constant-conversion", 86 ], 87 arch: { 88 arm: { 89 local_include_dirs: [ 90 "common/arm", 91 "encoder/arm", 92 ], 93 94 cflags: [ 95 "-DARM", 96 ], 97 }, 98 99 arm64: { 100 cflags: [ 101 "-DARMV8", 102 "-DARM", 103 ], 104 local_include_dirs: [ 105 "common/arm", 106 "common/armv8", 107 "encoder/arm", 108 "encoder/armv8", 109 ], 110 }, 111 112 riscv64: { 113 local_include_dirs: [ 114 "common/riscv", 115 "encoder/riscv", 116 ], 117 }, 118 119 x86: { 120 cflags: [ 121 "-DX86", 122 "-msse4.2", 123 ], 124 125 local_include_dirs: [ 126 "common/x86", 127 "encoder/x86", 128 ], 129 }, 130 131 x86_64: { 132 cflags: [ 133 "-DX86", 134 "-msse4.2", 135 ], 136 137 local_include_dirs: [ 138 "common/x86", 139 "encoder/x86", 140 ], 141 }, 142 }, 143 144 sanitize: { 145 integer_overflow: true, 146 misc_undefined: ["bounds"], 147 cfi: true, 148 config: { 149 cfi_assembly_support: true, 150 }, 151 blocklist: "libavc_blocklist.txt", 152 }, 153} 154 155cc_defaults { 156 name: "libavc_dec_defaults", 157 cflags: [ 158 "-fPIC", 159 "-O3", 160 "-Wall", 161 "-Werror", 162 "-Wno-unused-variable", 163 "-Wno-null-pointer-arithmetic", 164 // #KEEP_THREAD_ACTIVE is experimental 165 "-UKEEP_THREADS_ACTIVE", 166 ], 167 vendor_available: true, 168 host_supported: true, 169 shared_libs: [ 170 "liblog", 171 "libcutils", 172 ], 173 174 arch: { 175 arm: { 176 local_include_dirs: [ 177 "common/arm", 178 "decoder/arm", 179 ], 180 cflags: [ 181 "-DARM", 182 "-DDEFAULT_ARCH=D_ARCH_ARM_A9Q", 183 ], 184 }, 185 186 arm64: { 187 cflags: [ 188 "-DARMV8", 189 "-DARM", 190 "-DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC", 191 ], 192 local_include_dirs: [ 193 "common/armv8", 194 "decoder/arm", 195 ], 196 }, 197 198 riscv64: { 199 local_include_dirs: [ 200 "common/riscv", 201 ], 202 }, 203 204 x86: { 205 cflags: [ 206 "-DX86", 207 "-msse4.2", 208 "-DDEFAULT_ARCH=D_ARCH_X86_SSE42", 209 ], 210 211 local_include_dirs: [ 212 "common/x86", 213 "decoder/x86", 214 ], 215 }, 216 217 x86_64: { 218 cflags: [ 219 "-DX86", 220 "-msse4.2", 221 "-DDEFAULT_ARCH=D_ARCH_X86_SSE42", 222 ], 223 224 local_include_dirs: [ 225 "common/x86", 226 "decoder/x86", 227 ], 228 }, 229 }, 230 231 sanitize: { 232 integer_overflow: true, 233 misc_undefined: ["bounds"], 234 cfi: true, 235 config: { 236 cfi_assembly_support: true, 237 }, 238 }, 239} 240 241cc_library_static { 242 name: "libavcdec", 243 defaults: ["libavc_dec_defaults"], 244 245 export_include_dirs: [ 246 "common", 247 "decoder", 248 ], 249 250 srcs: [ 251 "common/ih264_buf_mgr.c", 252 "common/ih264_chroma_intra_pred_filters.c", 253 "common/ih264_deblk_edge_filters.c", 254 "common/ih264_disp_mgr.c", 255 "common/ih264_ihadamard_scaling.c", 256 "common/ih264_inter_pred_filters.c", 257 "common/ih264_iquant_itrans_recon.c", 258 "common/ih264_luma_intra_pred_filters.c", 259 "common/ih264_mem_fns.c", 260 "common/ih264_padding.c", 261 "common/ih264_weighted_pred.c", 262 "common/ithread.c", 263 "decoder/ih264d_api.c", 264 "decoder/ih264d_bitstrm.c", 265 "decoder/ih264d_cabac.c", 266 "decoder/ih264d_cabac_init_tables.c", 267 "decoder/ih264d_compute_bs.c", 268 "decoder/ih264d_deblocking.c", 269 "decoder/ih264d_dpb_mgr.c", 270 "decoder/ih264d_format_conv.c", 271 "decoder/ih264d_function_selector_generic.c", 272 "decoder/ih264d_inter_pred.c", 273 "decoder/ih264d_mb_utils.c", 274 "decoder/ih264d_mvpred.c", 275 "decoder/ih264d_nal.c", 276 "decoder/ih264d_parse_bslice.c", 277 "decoder/ih264d_parse_cabac.c", 278 "decoder/ih264d_parse_cavlc.c", 279 "decoder/ih264d_parse_headers.c", 280 "decoder/ih264d_parse_islice.c", 281 "decoder/ih264d_parse_mb_header.c", 282 "decoder/ih264d_parse_pslice.c", 283 "decoder/ih264d_parse_slice.c", 284 "decoder/ih264d_process_bslice.c", 285 "decoder/ih264d_process_intra_mb.c", 286 "decoder/ih264d_process_pslice.c", 287 "decoder/ih264d_quant_scaling.c", 288 "decoder/ih264d_sei.c", 289 "decoder/ih264d_tables.c", 290 "decoder/ih264d_thread_compute_bs.c", 291 "decoder/ih264d_thread_parse_decode.c", 292 "decoder/ih264d_utils.c", 293 "decoder/ih264d_vui.c", 294 ], 295 296 arch: { 297 arm: { 298 srcs: [ 299 "common/arm/ih264_arm_memory_barrier.s", 300 "decoder/arm/ih264d_function_selector.c", 301 "common/arm/ih264_deblk_chroma_a9.s", 302 "common/arm/ih264_deblk_luma_a9.s", 303 "common/arm/ih264_default_weighted_pred_a9q.s", 304 "common/arm/ih264_ihadamard_scaling_a9.s", 305 "common/arm/ih264_inter_pred_chroma_a9q.s", 306 "common/arm/ih264_inter_pred_filters_luma_horz_a9q.s", 307 "common/arm/ih264_inter_pred_filters_luma_vert_a9q.s", 308 "common/arm/ih264_inter_pred_luma_copy_a9q.s", 309 "common/arm/ih264_inter_pred_luma_horz_hpel_vert_hpel_a9q.s", 310 "common/arm/ih264_inter_pred_luma_horz_hpel_vert_qpel_a9q.s", 311 "common/arm/ih264_inter_pred_luma_horz_qpel_a9q.s", 312 "common/arm/ih264_inter_pred_luma_horz_qpel_vert_hpel_a9q.s", 313 "common/arm/ih264_inter_pred_luma_horz_qpel_vert_qpel_a9q.s", 314 "common/arm/ih264_inter_pred_luma_vert_qpel_a9q.s", 315 "common/arm/ih264_intra_pred_chroma_a9q.s", 316 "common/arm/ih264_intra_pred_luma_16x16_a9q.s", 317 "common/arm/ih264_intra_pred_luma_4x4_a9q.s", 318 "common/arm/ih264_intra_pred_luma_8x8_a9q.s", 319 "common/arm/ih264_iquant_itrans_recon_a9.s", 320 "common/arm/ih264_iquant_itrans_recon_dc_a9.s", 321 "common/arm/ih264_padding_neon.s", 322 "common/arm/ih264_weighted_bi_pred_a9q.s", 323 "common/arm/ih264_weighted_pred_a9q.s", 324 "decoder/arm/ih264d_function_selector_a9q.c", 325 ], 326 }, 327 328 arm64: { 329 srcs: [ 330 "common/armv8/ih264_deblk_chroma_av8.s", 331 "common/armv8/ih264_deblk_luma_av8.s", 332 "common/armv8/ih264_default_weighted_pred_av8.s", 333 "common/armv8/ih264_ihadamard_scaling_av8.s", 334 "common/armv8/ih264_inter_pred_chroma_av8.s", 335 "common/armv8/ih264_inter_pred_filters_luma_horz_av8.s", 336 "common/armv8/ih264_inter_pred_filters_luma_vert_av8.s", 337 "common/armv8/ih264_inter_pred_luma_copy_av8.s", 338 "common/armv8/ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s", 339 "common/armv8/ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s", 340 "common/armv8/ih264_inter_pred_luma_horz_qpel_av8.s", 341 "common/armv8/ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s", 342 "common/armv8/ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s", 343 "common/armv8/ih264_inter_pred_luma_vert_qpel_av8.s", 344 "common/armv8/ih264_intra_pred_chroma_av8.s", 345 "common/armv8/ih264_intra_pred_luma_16x16_av8.s", 346 "common/armv8/ih264_intra_pred_luma_4x4_av8.s", 347 "common/armv8/ih264_intra_pred_luma_8x8_av8.s", 348 "common/armv8/ih264_iquant_itrans_recon_av8.s", 349 "common/armv8/ih264_iquant_itrans_recon_dc_av8.s", 350 "common/armv8/ih264_padding_neon_av8.s", 351 "common/armv8/ih264_weighted_bi_pred_av8.s", 352 "common/armv8/ih264_weighted_pred_av8.s", 353 "decoder/arm/ih264d_function_selector.c", 354 "decoder/arm/ih264d_function_selector_av8.c", 355 ], 356 }, 357 358 riscv64: { 359 local_include_dirs: [ 360 "common/riscv", 361 ], 362 srcs: [ 363 "decoder/riscv/ih264d_function_selector.c", 364 ], 365 }, 366 367 x86: { 368 srcs: [ 369 "common/x86/ih264_chroma_intra_pred_filters_ssse3.c", 370 "common/x86/ih264_deblk_chroma_ssse3.c", 371 "common/x86/ih264_deblk_luma_ssse3.c", 372 "common/x86/ih264_ihadamard_scaling_sse42.c", 373 "common/x86/ih264_inter_pred_filters_ssse3.c", 374 "common/x86/ih264_iquant_itrans_recon_dc_ssse3.c", 375 "common/x86/ih264_iquant_itrans_recon_sse42.c", 376 "common/x86/ih264_iquant_itrans_recon_ssse3.c", 377 "common/x86/ih264_luma_intra_pred_filters_ssse3.c", 378 "common/x86/ih264_mem_fns_ssse3.c", 379 "common/x86/ih264_padding_ssse3.c", 380 "common/x86/ih264_weighted_pred_sse42.c", 381 "decoder/x86/ih264d_function_selector.c", 382 "decoder/x86/ih264d_function_selector_sse42.c", 383 "decoder/x86/ih264d_function_selector_ssse3.c", 384 ], 385 }, 386 387 x86_64: { 388 srcs: [ 389 "common/x86/ih264_chroma_intra_pred_filters_ssse3.c", 390 "common/x86/ih264_deblk_chroma_ssse3.c", 391 "common/x86/ih264_deblk_luma_ssse3.c", 392 "common/x86/ih264_ihadamard_scaling_sse42.c", 393 "common/x86/ih264_inter_pred_filters_ssse3.c", 394 "common/x86/ih264_iquant_itrans_recon_dc_ssse3.c", 395 "common/x86/ih264_iquant_itrans_recon_sse42.c", 396 "common/x86/ih264_iquant_itrans_recon_ssse3.c", 397 "common/x86/ih264_luma_intra_pred_filters_ssse3.c", 398 "common/x86/ih264_mem_fns_ssse3.c", 399 "common/x86/ih264_padding_ssse3.c", 400 "common/x86/ih264_weighted_pred_sse42.c", 401 "decoder/x86/ih264d_function_selector.c", 402 "decoder/x86/ih264d_function_selector_sse42.c", 403 "decoder/x86/ih264d_function_selector_ssse3.c", 404 ], 405 }, 406 }, 407 408 sanitize: { 409 blocklist: "libavc_blocklist.txt", 410 }, 411 apex_available: [ 412 "//apex_available:platform", // used by libstagefright_soft_avcdec 413 "com.android.media.swcodec", 414 ], 415 min_sdk_version: "29", 416} 417 418cc_library_static { 419 name: "libmvcdec", 420 defaults: ["libavc_dec_defaults"], 421 whole_static_libs: [ 422 "libavcdec", 423 ], 424 425 export_include_dirs: [ 426 "common", 427 "common/mvc", 428 "decoder", 429 "decoder/mvc", 430 ], 431 432 srcs: [ 433 "decoder/mvc/imvcd_api.c", 434 "decoder/mvc/imvcd_api_utils.c", 435 "decoder/mvc/imvcd_dpb_manager.c", 436 "decoder/mvc/imvcd_error_handler.c", 437 "decoder/mvc/imvcd_nalu_parser.c", 438 "decoder/mvc/imvcd_slice_functions.c", 439 "decoder/mvc/imvcd_utils.c", 440 ], 441} 442 443cc_library_static { 444 name: "libavcenc", 445 defaults: ["libavc_enc_defaults"], 446 447 export_include_dirs: [ 448 "common", 449 "encoder", 450 ], 451 452 srcs: [ //Rate Control 453 "common/ih264_buf_mgr.c", 454 "common/ih264_cabac_tables.c", 455 "common/ih264_cavlc_tables.c", 456 "common/ih264_chroma_intra_pred_filters.c", 457 "common/ih264_common_tables.c", 458 "common/ih264_deblk_edge_filters.c", 459 "common/ih264_deblk_tables.c", 460 "common/ih264_dpb_mgr.c", 461 "common/ih264_ihadamard_scaling.c", 462 "common/ih264_inter_pred_filters.c", 463 "common/ih264_iquant_itrans_recon.c", 464 "common/ih264_list.c", 465 "common/ih264_luma_intra_pred_filters.c", 466 "common/ih264_mem_fns.c", 467 "common/ih264_padding.c", 468 "common/ih264_resi_trans_quant.c", 469 "common/ih264_trans_data.c", 470 "common/ithread.c", 471 "encoder/ih264e_api.c", 472 "encoder/ih264e_bitstream.c", 473 "encoder/ih264e_cabac.c", 474 "encoder/ih264e_cabac_encode.c", 475 "encoder/ih264e_cabac_init.c", 476 "encoder/ih264e_cavlc.c", 477 "encoder/ih264e_core_coding.c", 478 "encoder/ih264e_deblk.c", 479 "encoder/ih264e_encode.c", 480 "encoder/ih264e_encode_header.c", 481 "encoder/ih264e_fmt_conv.c", 482 "encoder/ih264e_function_selector_generic.c", 483 "encoder/ih264e_globals.c", 484 "encoder/ih264e_half_pel.c", 485 "encoder/ih264e_intra_modes_eval.c", 486 "encoder/ih264e_mc.c", 487 "encoder/ih264e_me.c", 488 "encoder/ih264e_modify_frm_rate.c", 489 "encoder/ih264e_process.c", 490 "encoder/ih264e_rate_control.c", 491 "encoder/ih264e_rc_mem_interface.c", 492 "encoder/ih264e_sei.c", 493 "encoder/ih264e_time_stamp.c", 494 "encoder/ih264e_utils.c", 495 "encoder/ih264e_version.c", 496 "encoder/ime.c", 497 "encoder/ime_distortion_metrics.c", 498 "encoder/irc_bit_allocation.c", 499 "encoder/irc_cbr_buffer_control.c", 500 "encoder/irc_est_sad.c", 501 "encoder/irc_fixed_point_error_bits.c", 502 "encoder/irc_frame_info_collector.c", 503 "encoder/irc_mb_model_based.c", 504 "encoder/irc_picture_type.c", 505 "encoder/irc_rate_control_api.c", 506 "encoder/irc_rd_model.c", 507 "encoder/irc_vbr_storage_vbv.c", 508 "encoder/irc_vbr_str_prms.c", 509 "encoder/psnr.c", 510 ], 511 512 arch: { 513 arm: { 514 srcs: [ 515 "common/arm/ih264_arm_memory_barrier.s", 516 "encoder/arm/ih264e_function_selector.c", 517 "common/arm/ih264_deblk_chroma_a9.s", 518 "common/arm/ih264_deblk_luma_a9.s", 519 "common/arm/ih264_ihadamard_scaling_a9.s", 520 "common/arm/ih264_inter_pred_chroma_a9q.s", 521 "common/arm/ih264_inter_pred_filters_luma_horz_a9q.s", 522 "common/arm/ih264_inter_pred_filters_luma_vert_a9q.s", 523 "common/arm/ih264_inter_pred_luma_bilinear_a9q.s", 524 "common/arm/ih264_inter_pred_luma_copy_a9q.s", 525 "common/arm/ih264_intra_pred_chroma_a9q.s", 526 "common/arm/ih264_intra_pred_luma_16x16_a9q.s", 527 "common/arm/ih264_intra_pred_luma_4x4_a9q.s", 528 "common/arm/ih264_intra_pred_luma_8x8_a9q.s", 529 "common/arm/ih264_iquant_itrans_recon_a9.s", 530 "common/arm/ih264_iquant_itrans_recon_dc_a9.s", 531 "common/arm/ih264_mem_fns_neon.s", 532 "common/arm/ih264_padding_neon.s", 533 "common/arm/ih264_resi_trans_quant_a9.s", 534 "encoder/arm/ih264e_evaluate_intra16x16_modes_a9q.s", 535 "encoder/arm/ih264e_evaluate_intra4x4_modes_a9q.s", 536 "encoder/arm/ih264e_evaluate_intra_chroma_modes_a9q.s", 537 "encoder/arm/ih264e_fmt_conv.s", 538 "encoder/arm/ih264e_function_selector_a9q.c", 539 "encoder/arm/ih264e_half_pel.s", 540 "encoder/arm/ime_distortion_metrics_a9q.s", 541 ], 542 }, 543 544 arm64: { 545 srcs: [ 546 "common/armv8/ih264_deblk_chroma_av8.s", 547 "common/armv8/ih264_deblk_luma_av8.s", 548 "common/armv8/ih264_ihadamard_scaling_av8.s", 549 "common/armv8/ih264_inter_pred_chroma_av8.s", 550 "common/armv8/ih264_inter_pred_filters_luma_horz_av8.s", 551 "common/armv8/ih264_inter_pred_filters_luma_vert_av8.s", 552 "common/armv8/ih264_inter_pred_luma_copy_av8.s", 553 "common/armv8/ih264_intra_pred_chroma_av8.s", 554 "common/armv8/ih264_intra_pred_luma_16x16_av8.s", 555 "common/armv8/ih264_intra_pred_luma_4x4_av8.s", 556 "common/armv8/ih264_intra_pred_luma_8x8_av8.s", 557 "common/armv8/ih264_iquant_itrans_recon_av8.s", 558 "common/armv8/ih264_iquant_itrans_recon_dc_av8.s", 559 "common/armv8/ih264_mem_fns_neon_av8.s", 560 "common/armv8/ih264_padding_neon_av8.s", 561 "common/armv8/ih264_resi_trans_quant_av8.s", 562 "encoder/arm/ih264e_function_selector.c", 563 "encoder/arm/ih264e_function_selector_av8.c", 564 "encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s", 565 "encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s", 566 "encoder/armv8/ih264e_half_pel_av8.s", 567 "encoder/armv8/ime_distortion_metrics_av8.s", 568 ], 569 }, 570 571 riscv64: { 572 srcs: [ 573 "encoder/riscv/ih264e_function_selector.c", 574 ], 575 }, 576 577 x86: { 578 srcs: [ 579 "common/x86/ih264_chroma_intra_pred_filters_ssse3.c", 580 "common/x86/ih264_deblk_chroma_ssse3.c", 581 "common/x86/ih264_deblk_luma_ssse3.c", 582 "common/x86/ih264_ihadamard_scaling_sse42.c", 583 "common/x86/ih264_ihadamard_scaling_ssse3.c", 584 "common/x86/ih264_inter_pred_filters_ssse3.c", 585 "common/x86/ih264_iquant_itrans_recon_dc_ssse3.c", 586 "common/x86/ih264_iquant_itrans_recon_sse42.c", 587 "common/x86/ih264_iquant_itrans_recon_ssse3.c", 588 "common/x86/ih264_luma_intra_pred_filters_ssse3.c", 589 "common/x86/ih264_mem_fns_ssse3.c", 590 "common/x86/ih264_padding_ssse3.c", 591 "common/x86/ih264_resi_trans_quant_sse42.c", 592 "common/x86/ih264_weighted_pred_sse42.c", 593 "encoder/x86/ih264e_function_selector.c", 594 "encoder/x86/ih264e_function_selector_sse42.c", 595 "encoder/x86/ih264e_function_selector_ssse3.c", 596 "encoder/x86/ih264e_half_pel_ssse3.c", 597 "encoder/x86/ih264e_intra_modes_eval_ssse3.c", 598 "encoder/x86/ime_distortion_metrics_sse42.c", 599 ], 600 }, 601 602 x86_64: { 603 srcs: [ 604 "common/x86/ih264_chroma_intra_pred_filters_ssse3.c", 605 "common/x86/ih264_deblk_chroma_ssse3.c", 606 "common/x86/ih264_deblk_luma_ssse3.c", 607 "common/x86/ih264_ihadamard_scaling_sse42.c", 608 "common/x86/ih264_ihadamard_scaling_ssse3.c", 609 "common/x86/ih264_inter_pred_filters_ssse3.c", 610 "common/x86/ih264_iquant_itrans_recon_dc_ssse3.c", 611 "common/x86/ih264_iquant_itrans_recon_sse42.c", 612 "common/x86/ih264_iquant_itrans_recon_ssse3.c", 613 "common/x86/ih264_luma_intra_pred_filters_ssse3.c", 614 "common/x86/ih264_mem_fns_ssse3.c", 615 "common/x86/ih264_padding_ssse3.c", 616 "common/x86/ih264_resi_trans_quant_sse42.c", 617 "common/x86/ih264_weighted_pred_sse42.c", 618 "encoder/x86/ih264e_function_selector.c", 619 "encoder/x86/ih264e_function_selector_sse42.c", 620 "encoder/x86/ih264e_function_selector_ssse3.c", 621 "encoder/x86/ih264e_half_pel_ssse3.c", 622 "encoder/x86/ih264e_intra_modes_eval_ssse3.c", 623 "encoder/x86/ime_distortion_metrics_sse42.c", 624 ], 625 }, 626 }, 627 628 apex_available: [ 629 "//apex_available:platform", //due to libstagefright_soft_avcenc 630 "com.android.media.swcodec", 631 ], 632 min_sdk_version: "29", 633} 634 635cc_library_static { 636 name: "libsvcenc", 637 defaults: ["libavc_enc_defaults"], 638 whole_static_libs: [ 639 "libavcenc", 640 ], 641 642 export_include_dirs: [ 643 "common", 644 "common/svc", 645 "encoder", 646 "encoder/svc", 647 ], 648 649 srcs: [ 650 "common/svc/isvc_cabac_tables.c", 651 "common/svc/isvc_common_tables.c", 652 "common/svc/isvc_intra_resample.c", 653 "common/svc/isvc_iquant_itrans_recon.c", 654 "common/svc/isvc_mem_fns.c", 655 "common/svc/isvc_resi_trans_quant.c", 656 "encoder/svc/irc_svc_rate_control_api.c", 657 "encoder/svc/isvce_api.c", 658 "encoder/svc/isvce_cabac.c", 659 "encoder/svc/isvce_cabac_encode.c", 660 "encoder/svc/isvce_cabac_init.c", 661 "encoder/svc/isvce_cavlc.c", 662 "encoder/svc/isvce_core_coding.c", 663 "encoder/svc/isvce_deblk.c", 664 "encoder/svc/isvce_downscaler.c", 665 "encoder/svc/isvce_encode.c", 666 "encoder/svc/isvce_encode_header.c", 667 "encoder/svc/isvce_fmt_conv.c", 668 "encoder/svc/isvce_function_selector_generic.c", 669 "encoder/svc/isvce_globals.c", 670 "encoder/svc/isvce_ibl_eval.c", 671 "encoder/svc/isvce_ilp_mv.c", 672 "encoder/svc/isvce_intra_modes_eval.c", 673 "encoder/svc/isvce_mc.c", 674 "encoder/svc/isvce_me.c", 675 "encoder/svc/isvce_mode_stat_visualiser.c", 676 "encoder/svc/isvce_nalu_stat_aggregator.c", 677 "encoder/svc/isvce_process.c", 678 "encoder/svc/isvce_rate_control.c", 679 "encoder/svc/isvce_rc_mem_interface.c", 680 "encoder/svc/isvce_rc_utils.c", 681 "encoder/svc/isvce_residual_pred.c", 682 "encoder/svc/isvce_sub_pic_rc.c", 683 "encoder/svc/isvce_utils.c", 684 ], 685 686 arch: { 687 arm: { 688 local_include_dirs: [ 689 "common/arm/svc", 690 "encoder/arm/svc", 691 ], 692 693 srcs: [ 694 "encoder/arm/svc/isvce_function_selector.c", 695 "common/arm/svc/isvc_intra_sampling_neon.c", 696 "common/arm/svc/isvc_iquant_itrans_recon_neon.c", 697 "common/arm/svc/isvc_mem_fns_neon.c", 698 "common/arm/svc/isvc_resi_trans_quant_neon.c", 699 "encoder/arm/svc/isvce_downscaler_neon.c", 700 "encoder/arm/svc/isvce_function_selector_a9q.c", 701 "encoder/arm/svc/isvce_rc_utils_neon.c", 702 "encoder/arm/svc/isvce_residual_pred_neon.c", 703 ], 704 }, 705 706 arm64: { 707 local_include_dirs: [ 708 "encoder/arm/svc", 709 "common/arm/svc", 710 ], 711 712 srcs: [ 713 "common/arm/svc/isvc_intra_sampling_neon.c", 714 "common/arm/svc/isvc_iquant_itrans_recon_neon.c", 715 "common/arm/svc/isvc_mem_fns_neon.c", 716 "common/arm/svc/isvc_resi_trans_quant_neon.c", 717 "encoder/arm/svc/isvce_downscaler_neon.c", 718 "encoder/arm/svc/isvce_function_selector.c", 719 "encoder/arm/svc/isvce_function_selector_av8.c", 720 "encoder/arm/svc/isvce_rc_utils_neon.c", 721 "encoder/arm/svc/isvce_residual_pred_neon.c", 722 ], 723 }, 724 725 riscv64: { 726 local_include_dirs: [ 727 "encoder/riscv/svc", 728 ], 729 730 srcs: [ 731 "encoder/riscv/svc/isvce_function_selector.c", 732 ], 733 }, 734 735 x86: { 736 local_include_dirs: [ 737 "common/x86/svc", 738 "encoder/x86/svc", 739 ], 740 741 srcs: [ 742 "common/x86/svc/isvc_intra_resample_sse42.c", 743 "common/x86/svc/isvc_iquant_itrans_recon_dc_ssse3.c", 744 "common/x86/svc/isvc_iquant_itrans_recon_sse42.c", 745 "common/x86/svc/isvc_iquant_itrans_recon_ssse3.c", 746 "common/x86/svc/isvc_mem_fns_sse42.c", 747 "common/x86/svc/isvc_mem_fns_ssse3.c", 748 "common/x86/svc/isvc_padding_ssse3.c", 749 "common/x86/svc/isvc_resi_trans_quant_sse42.c", 750 "encoder/x86/svc/isvce_downscaler_sse42.c", 751 "encoder/x86/svc/isvce_function_selector.c", 752 "encoder/x86/svc/isvce_function_selector_sse42.c", 753 "encoder/x86/svc/isvce_function_selector_ssse3.c", 754 "encoder/x86/svc/isvce_rc_utils_sse42.c", 755 "encoder/x86/svc/isvce_residual_pred_sse42.c", 756 ], 757 }, 758 759 x86_64: { 760 local_include_dirs: [ 761 "common/x86/svc", 762 "encoder/x86/svc", 763 ], 764 765 srcs: [ 766 "common/x86/svc/isvc_intra_resample_sse42.c", 767 "common/x86/svc/isvc_iquant_itrans_recon_dc_ssse3.c", 768 "common/x86/svc/isvc_iquant_itrans_recon_sse42.c", 769 "common/x86/svc/isvc_iquant_itrans_recon_ssse3.c", 770 "common/x86/svc/isvc_mem_fns_sse42.c", 771 "common/x86/svc/isvc_mem_fns_ssse3.c", 772 "common/x86/svc/isvc_padding_ssse3.c", 773 "common/x86/svc/isvc_resi_trans_quant_sse42.c", 774 "encoder/x86/svc/isvce_downscaler_sse42.c", 775 "encoder/x86/svc/isvce_function_selector.c", 776 "encoder/x86/svc/isvce_function_selector_sse42.c", 777 "encoder/x86/svc/isvce_function_selector_ssse3.c", 778 "encoder/x86/svc/isvce_rc_utils_sse42.c", 779 "encoder/x86/svc/isvce_residual_pred_sse42.c", 780 ], 781 }, 782 }, 783} 784 785cc_library_static { 786 name: "libsvcdec", 787 defaults: ["libavc_dec_defaults"], 788 whole_static_libs: [ 789 "libavcdec", 790 ], 791 792 export_include_dirs: [ 793 "common", 794 "common/svc", 795 "decoder", 796 "decoder/svc", 797 ], 798 799 srcs: [ 800 "decoder/svc/isvcd_api.c", 801 "decoder/svc/isvcd_cabac.c", 802 "decoder/svc/isvcd_cabac_init_tables.c", 803 "decoder/svc/isvcd_compute_bs.c", 804 "decoder/svc/isvcd_function_selector_generic.c", 805 "decoder/svc/isvcd_ii_pred.c", 806 "decoder/svc/isvcd_intra_resamp.c", 807 "decoder/svc/isvcd_iquant_itrans.c", 808 "decoder/svc/isvcd_iquant_itrans_residual.c", 809 "decoder/svc/isvcd_iquant_itrans_residual_recon.c", 810 "decoder/svc/isvcd_mb_utils.c", 811 "decoder/svc/isvcd_mode_mv_resamp.c", 812 "decoder/svc/isvcd_nal.c", 813 "decoder/svc/isvcd_nal_parse.c", 814 "decoder/svc/isvcd_parse_cavlc.c", 815 "decoder/svc/isvcd_parse_ebslice.c", 816 "decoder/svc/isvcd_parse_eislice.c", 817 "decoder/svc/isvcd_parse_epslice.c", 818 "decoder/svc/isvcd_parse_headers.c", 819 "decoder/svc/isvcd_parse_slice.c", 820 "decoder/svc/isvcd_pred_residual_recon.c", 821 "decoder/svc/isvcd_process_ebslice.c", 822 "decoder/svc/isvcd_process_epslice.c", 823 "decoder/svc/isvcd_residual_resamp.c", 824 "decoder/svc/isvcd_thread_compute_bs.c", 825 "decoder/svc/isvcd_thread_parse_decode.c", 826 "decoder/svc/isvcd_utils.c", 827 "decoder/svc/isvcd_vui.c", 828 ], 829 830 arch: { 831 arm: { 832 srcs: [ 833 "decoder/arm/svc/isvcd_function_selector.c", 834 "decoder/arm/svc/isvcd_function_selector_neon.c", 835 "decoder/arm/svc/isvcd_intra_resamp_neon.c", 836 "decoder/arm/svc/isvcd_iquant_itrans_neon.c", 837 "decoder/arm/svc/isvcd_iquant_itrans_residual_neon.c", 838 "decoder/arm/svc/isvcd_iquant_itrans_residual_recon_neon.c", 839 "decoder/arm/svc/isvcd_pred_residual_recon_neon.c", 840 "decoder/arm/svc/isvcd_residual_resamp_neon.c", 841 ], 842 }, 843 844 arm64: { 845 srcs: [ 846 "decoder/arm/svc/isvcd_function_selector.c", 847 "decoder/arm/svc/isvcd_function_selector_neon.c", 848 "decoder/arm/svc/isvcd_intra_resamp_neon.c", 849 "decoder/arm/svc/isvcd_iquant_itrans_neon.c", 850 "decoder/arm/svc/isvcd_iquant_itrans_residual_neon.c", 851 "decoder/arm/svc/isvcd_iquant_itrans_residual_recon_neon.c", 852 "decoder/arm/svc/isvcd_pred_residual_recon_neon.c", 853 "decoder/arm/svc/isvcd_residual_resamp_neon.c", 854 ], 855 }, 856 857 riscv64: { 858 local_include_dirs: [ 859 "decoder/riscv/svc", 860 ], 861 862 srcs: [ 863 "decoder/riscv/svc/isvcd_function_selector.c", 864 ], 865 }, 866 x86: { 867 srcs: [ 868 "decoder/x86/svc/isvcd_function_selector.c", 869 "decoder/x86/svc/isvcd_function_selector_sse42.c", 870 "decoder/x86/svc/isvcd_intra_resamp_sse42.c", 871 "decoder/x86/svc/isvcd_iquant_itrans_residual_recon_sse42.c", 872 "decoder/x86/svc/isvcd_iquant_itrans_residual_sse42.c", 873 "decoder/x86/svc/isvcd_iquant_itrans_sse42.c", 874 "decoder/x86/svc/isvcd_pred_residual_recon_sse42.c", 875 "decoder/x86/svc/isvcd_residual_resamp_sse42.c", 876 ], 877 }, 878 879 x86_64: { 880 srcs: [ 881 "decoder/x86/svc/isvcd_function_selector.c", 882 "decoder/x86/svc/isvcd_function_selector_sse42.c", 883 "decoder/x86/svc/isvcd_intra_resamp_sse42.c", 884 "decoder/x86/svc/isvcd_iquant_itrans_residual_recon_sse42.c", 885 "decoder/x86/svc/isvcd_iquant_itrans_residual_sse42.c", 886 "decoder/x86/svc/isvcd_iquant_itrans_sse42.c", 887 "decoder/x86/svc/isvcd_pred_residual_recon_sse42.c", 888 "decoder/x86/svc/isvcd_residual_resamp_sse42.c", 889 ], 890 }, 891 }, 892} 893