Add the CONFIG_SVT_AV1 cmake option If CONFIG_SVT_AV1 (default: 1) is set to 0, third_party/SVT-AV1 won't be used. Bug: 359670383 Change-Id: Ibe9a86abb0b900ac389f522bafde587577edc340
diff --git a/aom_dsp/aom_dsp.cmake b/aom_dsp/aom_dsp.cmake index b021b08..46e6da3 100644 --- a/aom_dsp/aom_dsp.cmake +++ b/aom_dsp/aom_dsp.cmake
@@ -93,12 +93,16 @@ "${AOM_ROOT}/aom_dsp/x86/intrapred_avx2.c" "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c" "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_avx2.c" - "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h" - "${AOM_ROOT}/third_party/SVT-AV1/convolve_2d_avx2.h" - "${AOM_ROOT}/third_party/SVT-AV1/convolve_avx2.h" - "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_AVX2.h" - "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_SSE4_1.h" - "${AOM_ROOT}/third_party/SVT-AV1/synonyms.h") + "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h") + +if(CONFIG_SVT_AV1) + list(APPEND AOM_DSP_COMMON_INTRIN_AVX2 + "${AOM_ROOT}/third_party/SVT-AV1/convolve_2d_avx2.h" + "${AOM_ROOT}/third_party/SVT-AV1/convolve_avx2.h" + "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_AVX2.h" + "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_SSE4_1.h" + "${AOM_ROOT}/third_party/SVT-AV1/synonyms.h") +endif() list(APPEND AOM_DSP_COMMON_INTRIN_NEON "${AOM_ROOT}/aom_dsp/arm/aom_convolve_copy_neon.c"
diff --git a/av1/common/filter.h b/av1/common/filter.h index 7073da2..d1b76bd 100644 --- a/av1/common/filter.h +++ b/av1/common/filter.h
@@ -307,10 +307,14 @@ if (filter[1] | filter[6]) { return 6; } +#if CONFIG_SVT_AV1 if (filter[2] | filter[5]) { return 4; } return 2; +#else + return 4; +#endif } #ifdef __cplusplus
diff --git a/av1/common/x86/convolve_2d_avx2.c b/av1/common/x86/convolve_2d_avx2.c index e3ba0f1..521326c 100644 --- a/av1/common/x86/convolve_2d_avx2.c +++ b/av1/common/x86/convolve_2d_avx2.c
@@ -13,7 +13,9 @@ #include "config/av1_rtcd.h" +#if CONFIG_SVT_AV1 #include "third_party/SVT-AV1/convolve_2d_avx2.h" +#endif #include "aom_dsp/x86/convolve_avx2.h" #include "aom_dsp/aom_filter.h" @@ -143,6 +145,7 @@ int32_t w, int32_t h, const InterpFilterParams *filter_params_x, const InterpFilterParams *filter_params_y, const int32_t subpel_x_qn, const int32_t subpel_y_qn, ConvolveParams *conv_params) { +#if CONFIG_SVT_AV1 const int32_t tap_x = get_filter_tap(filter_params_x, subpel_x_qn); const int32_t tap_y = get_filter_tap(filter_params_y, subpel_y_qn); @@ -156,4 +159,9 @@ filter_params_x, filter_params_y, subpel_x_qn, subpel_y_qn, conv_params); } +#else + convolve_2d_sr_general_avx2(src, src_stride, dst, dst_stride, w, h, + filter_params_x, filter_params_y, subpel_x_qn, + subpel_y_qn, conv_params); +#endif }
diff --git a/av1/common/x86/convolve_avx2.c b/av1/common/x86/convolve_avx2.c index dddaa4b..d250d88 100644 --- a/av1/common/x86/convolve_avx2.c +++ b/av1/common/x86/convolve_avx2.c
@@ -13,7 +13,9 @@ #include "config/av1_rtcd.h" +#if CONFIG_SVT_AV1 #include "third_party/SVT-AV1/convolve_avx2.h" +#endif #include "aom_dsp/aom_dsp_common.h" #include "aom_dsp/x86/convolve_avx2.h" @@ -513,6 +515,7 @@ int32_t h, const InterpFilterParams *filter_params_y, const int32_t subpel_y_qn) { +#if CONFIG_SVT_AV1 const int vert_tap = get_filter_tap(filter_params_y, subpel_y_qn); if (vert_tap == 12) { @@ -522,6 +525,10 @@ av1_convolve_y_sr_specialized_avx2(src, src_stride, dst, dst_stride, w, h, filter_params_y, subpel_y_qn); } +#else + av1_convolve_y_sr_general_avx2(src, src_stride, dst, dst_stride, w, h, + filter_params_y, subpel_y_qn); +#endif } static inline void av1_convolve_x_sr_general_avx2( @@ -903,6 +910,7 @@ const InterpFilterParams *filter_params_x, const int32_t subpel_x_qn, ConvolveParams *conv_params) { +#if CONFIG_SVT_AV1 const int horz_tap = get_filter_tap(filter_params_x, subpel_x_qn); if (horz_tap == 12) { @@ -913,4 +921,8 @@ filter_params_x, subpel_x_qn, conv_params); } +#else + av1_convolve_x_sr_general_avx2(src, src_stride, dst, dst_stride, w, h, + filter_params_x, subpel_x_qn, conv_params); +#endif }
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index 2f11828..ae0842c 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake
@@ -75,6 +75,9 @@ set_aom_config_var(CONFIG_GCOV 0 "Enable gcov support.") set_aom_config_var(CONFIG_GPROF 0 "Enable gprof support.") set_aom_config_var(CONFIG_LIBYUV 1 "Enables libyuv scaling/conversion support.") +# Set CONFIG_SVT_AV1 to 0 to avoid the BSD 3-Clause Clear License used by the +# code in third_party/SVT-AV1/. +set_aom_config_var(CONFIG_SVT_AV1 1 "Enables SVT-AV1 AVX2 convolution support.") set_aom_config_var(CONFIG_AV1_HIGHBITDEPTH 1 "Build with high bitdepth support.")