mirror of
https://github.com/ittiam-systems/libavc.git
synced 2026-06-01 18:00:12 +07:00
This patch includes handwritten avx2 intrinsics to optimize the libavc sw decoder by reducing CPU-cycles overhead on module : libcodec2_soft_avcdec. Playing 1024 resolution video playback on the Galley App with HW decoder disabled: cpu-cycles overhead(%) reduced by ~15%. Loading of video thumbnails on Gallery/Photos App is faster (we have pushed approx more than 30 videos as a part of the usecase): cpu-cycles overhead(%) have reduced by ~10%.This patch is related to s/w video decoding. Signed-off-by: Priyanka Bose <priyanka.bose@intel.corp-partner.google.com>
54 lines
2.2 KiB
CMake
54 lines
2.2 KiB
CMake
# src files
|
|
list(
|
|
APPEND
|
|
LIBAVCDEC_SRCS
|
|
"${AVC_ROOT}/decoder/ih264d_api.c"
|
|
"${AVC_ROOT}/decoder/ih264d_bitstrm.c"
|
|
"${AVC_ROOT}/decoder/ih264d_cabac.c"
|
|
"${AVC_ROOT}/decoder/ih264d_cabac_init_tables.c"
|
|
"${AVC_ROOT}/decoder/ih264d_compute_bs.c"
|
|
"${AVC_ROOT}/decoder/ih264d_deblocking.c"
|
|
"${AVC_ROOT}/decoder/ih264d_dpb_mgr.c"
|
|
"${AVC_ROOT}/decoder/ih264d_format_conv.c"
|
|
"${AVC_ROOT}/decoder/ih264d_function_selector_generic.c"
|
|
"${AVC_ROOT}/decoder/ih264d_inter_pred.c"
|
|
"${AVC_ROOT}/decoder/ih264d_mb_utils.c"
|
|
"${AVC_ROOT}/decoder/ih264d_mvpred.c"
|
|
"${AVC_ROOT}/decoder/ih264d_nal.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_bslice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_cabac.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_cavlc.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_headers.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_islice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_mb_header.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_pslice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_parse_slice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_process_bslice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_process_intra_mb.c"
|
|
"${AVC_ROOT}/decoder/ih264d_process_pslice.c"
|
|
"${AVC_ROOT}/decoder/ih264d_quant_scaling.c"
|
|
"${AVC_ROOT}/decoder/ih264d_sei.c"
|
|
"${AVC_ROOT}/decoder/ih264d_tables.c"
|
|
"${AVC_ROOT}/decoder/ih264d_thread_compute_bs.c"
|
|
"${AVC_ROOT}/decoder/ih264d_thread_parse_decode.c"
|
|
"${AVC_ROOT}/decoder/ih264d_utils.c"
|
|
"${AVC_ROOT}/decoder/ih264d_vui.c")
|
|
|
|
include_directories(${AVC_ROOT}/decoder)
|
|
|
|
if("${SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${SYSTEM_PROCESSOR}" STREQUAL "arm64"
|
|
OR "${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
|
|
list(
|
|
APPEND LIBAVCDEC_ASMS "${AVC_ROOT}/decoder/arm/ih264d_function_selector.c"
|
|
"${AVC_ROOT}/decoder/arm/ih264d_function_selector_a9q.c"
|
|
"${AVC_ROOT}/decoder/arm/ih264d_function_selector_av8.c")
|
|
else()
|
|
list(
|
|
APPEND LIBAVCDEC_SRCS "${AVC_ROOT}/decoder/x86/ih264d_function_selector.c"
|
|
"${AVC_ROOT}/decoder/x86/ih264d_function_selector_sse42.c"
|
|
"${AVC_ROOT}/decoder/x86/ih264d_function_selector_ssse3.c"
|
|
"${AVC_ROOT}/decoder/x86/ih264d_function_selector_avx2.c")
|
|
endif()
|
|
|
|
add_library(libavcdec STATIC ${LIBAVC_COMMON_SRCS} ${LIBAVC_COMMON_ASMS}
|
|
${LIBAVCDEC_SRCS} ${LIBAVCDEC_ASMS})
|