@scrypted/libav 1.0.179 → 1.0.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_openh264install/include/wels/codec_api.h +592 -0
- package/_openh264install/include/wels/codec_app_def.h +820 -0
- package/_openh264install/include/wels/codec_def.h +216 -0
- package/_openh264install/include/wels/codec_ver.h +15 -0
- package/_openh264install/lib/libopenh264.a +0 -0
- package/_openh264install/lib/pkgconfig/openh264.pc +10 -0
- package/binding.gyp +4 -0
- package/openh264/.reviewboardrc +3 -0
- package/openh264/.travis.yml +42 -0
- package/openh264/CODING_STYLE +8 -0
- package/openh264/CONTRIBUTORS +55 -0
- package/openh264/LICENSE +23 -0
- package/openh264/Makefile +408 -0
- package/openh264/README.md +197 -0
- package/openh264/RELEASES +467 -0
- package/openh264/SECURITY.md +16 -0
- package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +431 -0
- package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +180 -0
- package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
- package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
- package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +193 -0
- package/openh264/autotest/performanceTest/ios/uiascript.js +19 -0
- package/openh264/autotest/performanceTest/parsePerfData.sh +107 -0
- package/openh264/autotest/performanceTest/run_perfTest.sh +122 -0
- package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +112 -0
- package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +167 -0
- package/openh264/autotest/unitTest/run_ParseUTxml.sh +70 -0
- package/openh264/autotest/unitTest/run_unitTest.sh +98 -0
- package/openh264/build.gradle +30 -0
- package/openh264/code-coverage.sh +6 -0
- package/openh264/codec/api/meson.build +1 -0
- package/openh264/codec/api/wels/codec_api.h +592 -0
- package/openh264/codec/api/wels/codec_app_def.h +820 -0
- package/openh264/codec/api/wels/codec_def.h +216 -0
- package/openh264/codec/api/wels/codec_ver.h +15 -0
- package/openh264/codec/api/wels/meson.build +9 -0
- package/openh264/codec/common/arm/arm_arch_common_macro.S +83 -0
- package/openh264/codec/common/arm/copy_mb_neon.S +161 -0
- package/openh264/codec/common/arm/deblocking_neon.S +857 -0
- package/openh264/codec/common/arm/expand_picture_neon.S +154 -0
- package/openh264/codec/common/arm/intra_pred_common_neon.S +82 -0
- package/openh264/codec/common/arm/mc_neon.S +2283 -0
- package/openh264/codec/common/arm64/arm_aarch64_common.h +85 -0
- package/openh264/codec/common/arm64/arm_arch64_common_macro.S +79 -0
- package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +202 -0
- package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +852 -0
- package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +150 -0
- package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +58 -0
- package/openh264/codec/common/arm64/mc_aarch64_neon.S +2614 -0
- package/openh264/codec/common/generate_version.sh +28 -0
- package/openh264/codec/common/inc/WelsList.h +287 -0
- package/openh264/codec/common/inc/WelsLock.h +97 -0
- package/openh264/codec/common/inc/WelsTask.h +75 -0
- package/openh264/codec/common/inc/WelsTaskThread.h +83 -0
- package/openh264/codec/common/inc/WelsThread.h +106 -0
- package/openh264/codec/common/inc/WelsThreadLib.h +151 -0
- package/openh264/codec/common/inc/WelsThreadPool.h +124 -0
- package/openh264/codec/common/inc/asmdefs_mmi.h +345 -0
- package/openh264/codec/common/inc/copy_mb.h +103 -0
- package/openh264/codec/common/inc/cpu.h +81 -0
- package/openh264/codec/common/inc/cpu_core.h +103 -0
- package/openh264/codec/common/inc/crt_util_safe_x.h +104 -0
- package/openh264/codec/common/inc/deblocking_common.h +124 -0
- package/openh264/codec/common/inc/expand_pic.h +107 -0
- package/openh264/codec/common/inc/golomb_common.h +166 -0
- package/openh264/codec/common/inc/intra_pred_common.h +86 -0
- package/openh264/codec/common/inc/loongson_intrinsics.h +1919 -0
- package/openh264/codec/common/inc/ls_defines.h +130 -0
- package/openh264/codec/common/inc/macros.h +329 -0
- package/openh264/codec/common/inc/mc.h +407 -0
- package/openh264/codec/common/inc/measure_time.h +88 -0
- package/openh264/codec/common/inc/memory_align.h +116 -0
- package/openh264/codec/common/inc/msa_macros.h +2393 -0
- package/openh264/codec/common/inc/sad_common.h +139 -0
- package/openh264/codec/common/inc/typedefs.h +86 -0
- package/openh264/codec/common/inc/utils.h +95 -0
- package/openh264/codec/common/inc/version.h +10 -0
- package/openh264/codec/common/inc/version_gen.h.template +6 -0
- package/openh264/codec/common/inc/welsCodecTrace.h +64 -0
- package/openh264/codec/common/inc/wels_common_defs.h +373 -0
- package/openh264/codec/common/inc/wels_const_common.h +63 -0
- package/openh264/codec/common/loongarch/copy_mb_lsx.c +194 -0
- package/openh264/codec/common/loongarch/deblock_lsx.c +1489 -0
- package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +112 -0
- package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +91 -0
- package/openh264/codec/common/loongarch/mc_chroma_lsx.c +192 -0
- package/openh264/codec/common/loongarch/mc_horver_lsx.c +654 -0
- package/openh264/codec/common/loongarch/satd_sad_lasx.c +568 -0
- package/openh264/codec/common/meson.build +84 -0
- package/openh264/codec/common/mips/copy_mb_mmi.c +477 -0
- package/openh264/codec/common/mips/copy_mb_msa.c +80 -0
- package/openh264/codec/common/mips/deblock_mmi.c +2826 -0
- package/openh264/codec/common/mips/deblock_msa.c +1024 -0
- package/openh264/codec/common/mips/expand_picture_mmi.c +673 -0
- package/openh264/codec/common/mips/intra_pred_com_mmi.c +548 -0
- package/openh264/codec/common/mips/satd_sad_mmi.c +2154 -0
- package/openh264/codec/common/targets.mk +136 -0
- package/openh264/codec/common/x86/asm_inc.asm +743 -0
- package/openh264/codec/common/x86/cpuid.asm +263 -0
- package/openh264/codec/common/x86/dct.asm +1036 -0
- package/openh264/codec/common/x86/deblock.asm +848 -0
- package/openh264/codec/common/x86/expand_picture.asm +728 -0
- package/openh264/codec/common/x86/intra_pred_com.asm +117 -0
- package/openh264/codec/common/x86/mb_copy.asm +615 -0
- package/openh264/codec/common/x86/mc_chroma.asm +313 -0
- package/openh264/codec/common/x86/mc_luma.asm +4490 -0
- package/openh264/codec/common/x86/satd_sad.asm +2734 -0
- package/openh264/codec/common/x86/vaa.asm +411 -0
- package/openh264/codec/console/common/inc/read_config.h +68 -0
- package/openh264/codec/console/common/meson.build +12 -0
- package/openh264/codec/console/common/targets.mk +20 -0
- package/openh264/codec/console/dec/inc/d3d9_utils.h +148 -0
- package/openh264/codec/console/dec/meson.build +15 -0
- package/openh264/codec/console/dec/targets.mk +20 -0
- package/openh264/codec/console/enc/meson.build +9 -0
- package/openh264/codec/console/enc/targets.mk +19 -0
- package/openh264/codec/console/meson.build +3 -0
- package/openh264/codec/decoder/core/arm/block_add_neon.S +129 -0
- package/openh264/codec/decoder/core/arm/intra_pred_neon.S +635 -0
- package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +131 -0
- package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +524 -0
- package/openh264/codec/decoder/core/inc/au_parser.h +199 -0
- package/openh264/codec/decoder/core/inc/bit_stream.h +62 -0
- package/openh264/codec/decoder/core/inc/cabac_decoder.h +111 -0
- package/openh264/codec/decoder/core/inc/deblocking.h +118 -0
- package/openh264/codec/decoder/core/inc/dec_frame.h +156 -0
- package/openh264/codec/decoder/core/inc/dec_golomb.h +344 -0
- package/openh264/codec/decoder/core/inc/decode_mb_aux.h +83 -0
- package/openh264/codec/decoder/core/inc/decode_slice.h +104 -0
- package/openh264/codec/decoder/core/inc/decoder.h +186 -0
- package/openh264/codec/decoder/core/inc/decoder_context.h +590 -0
- package/openh264/codec/decoder/core/inc/decoder_core.h +206 -0
- package/openh264/codec/decoder/core/inc/error_code.h +222 -0
- package/openh264/codec/decoder/core/inc/error_concealment.h +68 -0
- package/openh264/codec/decoder/core/inc/fmo.h +114 -0
- package/openh264/codec/decoder/core/inc/get_intra_predictor.h +191 -0
- package/openh264/codec/decoder/core/inc/manage_dec_ref.h +62 -0
- package/openh264/codec/decoder/core/inc/mb_cache.h +80 -0
- package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +66 -0
- package/openh264/codec/decoder/core/inc/mv_pred.h +195 -0
- package/openh264/codec/decoder/core/inc/nal_prefix.h +56 -0
- package/openh264/codec/decoder/core/inc/nalu.h +79 -0
- package/openh264/codec/decoder/core/inc/parameter_sets.h +217 -0
- package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +89 -0
- package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +137 -0
- package/openh264/codec/decoder/core/inc/pic_queue.h +62 -0
- package/openh264/codec/decoder/core/inc/picture.h +112 -0
- package/openh264/codec/decoder/core/inc/rec_mb.h +104 -0
- package/openh264/codec/decoder/core/inc/slice.h +208 -0
- package/openh264/codec/decoder/core/inc/vlc_decoder.h +177 -0
- package/openh264/codec/decoder/core/inc/wels_common_basis.h +317 -0
- package/openh264/codec/decoder/core/inc/wels_const.h +65 -0
- package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +170 -0
- package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +296 -0
- package/openh264/codec/decoder/core/mips/dct_mmi.c +786 -0
- package/openh264/codec/decoder/core/x86/dct.asm +72 -0
- package/openh264/codec/decoder/core/x86/intra_pred.asm +1456 -0
- package/openh264/codec/decoder/meson.build +69 -0
- package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +170 -0
- package/openh264/codec/decoder/targets.mk +115 -0
- package/openh264/codec/encoder/core/arm/intra_pred_neon.S +589 -0
- package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +735 -0
- package/openh264/codec/encoder/core/arm/memory_neon.S +62 -0
- package/openh264/codec/encoder/core/arm/pixel_neon.S +882 -0
- package/openh264/codec/encoder/core/arm/reconstruct_neon.S +903 -0
- package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +366 -0
- package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +505 -0
- package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +611 -0
- package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +63 -0
- package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +621 -0
- package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +717 -0
- package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +350 -0
- package/openh264/codec/encoder/core/inc/as264_common.h +138 -0
- package/openh264/codec/encoder/core/inc/au_set.h +152 -0
- package/openh264/codec/encoder/core/inc/deblocking.h +92 -0
- package/openh264/codec/encoder/core/inc/decode_mb_aux.h +112 -0
- package/openh264/codec/encoder/core/inc/dq_map.h +58 -0
- package/openh264/codec/encoder/core/inc/encode_mb_aux.h +199 -0
- package/openh264/codec/encoder/core/inc/encoder.h +148 -0
- package/openh264/codec/encoder/core/inc/encoder_context.h +240 -0
- package/openh264/codec/encoder/core/inc/extern.h +124 -0
- package/openh264/codec/encoder/core/inc/get_intra_predictor.h +186 -0
- package/openh264/codec/encoder/core/inc/mb_cache.h +141 -0
- package/openh264/codec/encoder/core/inc/md.h +181 -0
- package/openh264/codec/encoder/core/inc/mt_defs.h +91 -0
- package/openh264/codec/encoder/core/inc/mv_pred.h +191 -0
- package/openh264/codec/encoder/core/inc/nal_encap.h +143 -0
- package/openh264/codec/encoder/core/inc/param_svc.h +576 -0
- package/openh264/codec/encoder/core/inc/parameter_sets.h +181 -0
- package/openh264/codec/encoder/core/inc/paraset_strategy.h +310 -0
- package/openh264/codec/encoder/core/inc/picture.h +137 -0
- package/openh264/codec/encoder/core/inc/picture_handle.h +66 -0
- package/openh264/codec/encoder/core/inc/rc.h +284 -0
- package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +148 -0
- package/openh264/codec/encoder/core/inc/sample.h +154 -0
- package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +127 -0
- package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +92 -0
- package/openh264/codec/encoder/core/inc/slice.h +212 -0
- package/openh264/codec/encoder/core/inc/slice_multi_threading.h +97 -0
- package/openh264/codec/encoder/core/inc/stat.h +102 -0
- package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +102 -0
- package/openh264/codec/encoder/core/inc/svc_enc_frame.h +136 -0
- package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +123 -0
- package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +82 -0
- package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +212 -0
- package/openh264/codec/encoder/core/inc/svc_encode_mb.h +63 -0
- package/openh264/codec/encoder/core/inc/svc_encode_slice.h +184 -0
- package/openh264/codec/encoder/core/inc/svc_mode_decision.h +94 -0
- package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +369 -0
- package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +70 -0
- package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +67 -0
- package/openh264/codec/encoder/core/inc/vlc_encoder.h +92 -0
- package/openh264/codec/encoder/core/inc/wels_common_basis.h +160 -0
- package/openh264/codec/encoder/core/inc/wels_const.h +174 -0
- package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +300 -0
- package/openh264/codec/encoder/core/inc/wels_preprocess.h +251 -0
- package/openh264/codec/encoder/core/inc/wels_task_base.h +79 -0
- package/openh264/codec/encoder/core/inc/wels_task_encoder.h +142 -0
- package/openh264/codec/encoder/core/inc/wels_task_management.h +135 -0
- package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +58 -0
- package/openh264/codec/encoder/core/loongarch/dct_lasx.c +452 -0
- package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +166 -0
- package/openh264/codec/encoder/core/loongarch/quant_lsx.c +153 -0
- package/openh264/codec/encoder/core/loongarch/sample_lasx.c +87 -0
- package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +104 -0
- package/openh264/codec/encoder/core/mips/dct_mmi.c +529 -0
- package/openh264/codec/encoder/core/mips/quant_mmi.c +553 -0
- package/openh264/codec/encoder/core/mips/score_mmi.c +324 -0
- package/openh264/codec/encoder/core/x86/coeff.asm +695 -0
- package/openh264/codec/encoder/core/x86/dct.asm +108 -0
- package/openh264/codec/encoder/core/x86/intra_pred.asm +1129 -0
- package/openh264/codec/encoder/core/x86/matrix_transpose.asm +395 -0
- package/openh264/codec/encoder/core/x86/memzero.asm +132 -0
- package/openh264/codec/encoder/core/x86/quant.asm +507 -0
- package/openh264/codec/encoder/core/x86/sample_sc.asm +1829 -0
- package/openh264/codec/encoder/core/x86/score.asm +363 -0
- package/openh264/codec/encoder/meson.build +98 -0
- package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +129 -0
- package/openh264/codec/encoder/targets.mk +146 -0
- package/openh264/codec/meson.build +9 -0
- package/openh264/codec/processing/interface/IWelsVP.h +310 -0
- package/openh264/codec/processing/meson.build +71 -0
- package/openh264/codec/processing/targets.mk +117 -0
- package/openh264/docs/doxygen/Doxyfile +1865 -0
- package/openh264/docs/doxygen/Home.rest +25 -0
- package/openh264/docs/doxygen/ISVCDecoder.rest +19 -0
- package/openh264/docs/doxygen/ISVCEncoder.rest +16 -0
- package/openh264/docs/doxygen/UsageExampleForDecoder.rest +10 -0
- package/openh264/docs/doxygen/UsageExampleForEncoder.rest +15 -0
- package/openh264/docs/doxygen2rst.py +619 -0
- package/openh264/gmpopenh264.info +4 -0
- package/openh264/gradlew +172 -0
- package/openh264/meson.build +218 -0
- package/openh264/meson_options.txt +1 -0
- package/openh264/module/RefCounted.h +141 -0
- package/openh264/module/gmp-openh264.cpp +1196 -0
- package/openh264/module/targets.mk +14 -0
- package/openh264/module/task_utils.h +38 -0
- package/openh264/module/task_utils.py +207 -0
- package/openh264/module/task_utils_generated.h +2087 -0
- package/openh264/openh264.def +7 -0
- package/openh264/openh264.pc.in +10 -0
- package/openh264/openh264.rc +61 -0
- package/openh264/openh264.rc.template +61 -0
- package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
- package/openh264/res/BA1_FT_C.264 +0 -0
- package/openh264/res/BA1_Sony_D.jsv +0 -0
- package/openh264/res/BAMQ1_JVC_C.264 +0 -0
- package/openh264/res/BAMQ2_JVC_C.264 +0 -0
- package/openh264/res/BANM_MW_D.264 +0 -0
- package/openh264/res/BASQP1_Sony_C.jsv +0 -0
- package/openh264/res/BA_MW_D.264 +0 -0
- package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
- package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
- package/openh264/res/CI1_FT_B.264 +0 -0
- package/openh264/res/CI_MW_D.264 +0 -0
- package/openh264/res/CVFC1_Sony_C.jsv +0 -0
- package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
- package/openh264/res/CiscoVT2people_160x96_6fps.yuv +1 -0
- package/openh264/res/CiscoVT2people_320x192_12fps.yuv +1 -0
- package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +3607 -0
- package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
- package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
- package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
- package/openh264/res/Error_I_P.264 +0 -0
- package/openh264/res/LS_SVA_D.264 +0 -0
- package/openh264/res/MIDR_MW_D.264 +0 -0
- package/openh264/res/MPS_MW_A.264 +0 -0
- package/openh264/res/MR1_BT_A.h264 +0 -0
- package/openh264/res/MR1_MW_A.264 +0 -0
- package/openh264/res/MR2_MW_A.264 +0 -0
- package/openh264/res/MR2_TANDBERG_E.264 +0 -0
- package/openh264/res/NL1_Sony_D.jsv +0 -0
- package/openh264/res/NLMQ1_JVC_C.264 +0 -0
- package/openh264/res/NLMQ2_JVC_C.264 +0 -0
- package/openh264/res/NRF_MW_E.264 +0 -0
- package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
- package/openh264/res/SVA_BA1_B.264 +0 -0
- package/openh264/res/SVA_BA2_D.264 +0 -0
- package/openh264/res/SVA_Base_B.264 +0 -0
- package/openh264/res/SVA_CL1_E.264 +0 -0
- package/openh264/res/SVA_FM1_E.264 +0 -0
- package/openh264/res/SVA_NL1_B.264 +0 -0
- package/openh264/res/SVA_NL2_E.264 +0 -0
- package/openh264/res/SarVui.264 +0 -0
- package/openh264/res/Static.264 +0 -0
- package/openh264/res/Static_152_100.yuv +1 -0
- package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/Zhling_1280x720.264 +0 -0
- package/openh264/res/jm_1080p_allslice.264 +0 -0
- package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
- package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
- package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
- package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
- package/openh264/res/test_qcif_cabac.264 +0 -0
- package/openh264/res/test_scalinglist_jm.264 +0 -0
- package/openh264/res/test_vd_1d.264 +0 -0
- package/openh264/res/test_vd_rc.264 +0 -0
- package/openh264/run_Test.sh +91 -0
- package/openh264/settings.gradle +4 -0
- package/openh264/subprojects/gtest.wrap +10 -0
- package/openh264/testbin/AutoBuild_Windows_VS2008.bat +59 -0
- package/openh264/testbin/CmdLineExample.sh +7 -0
- package/openh264/testbin/CmdLineReadMe +22 -0
- package/openh264/testbin/layer2.cfg +37 -0
- package/openh264/testbin/layer2_arbitrary_res.cfg +37 -0
- package/openh264/testbin/layer2_vd.cfg +38 -0
- package/openh264/testbin/layer2_vd_rc.cfg +38 -0
- package/openh264/testbin/welsenc.cfg +71 -0
- package/openh264/testbin/welsenc_arbitrary_res.cfg +70 -0
- package/openh264/testbin/welsenc_ios.cfg +71 -0
- package/openh264/testbin/welsenc_vd_1d.cfg +70 -0
- package/openh264/testbin/welsenc_vd_rc.cfg +69 -0
- package/openh264/ut.def +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
;*!
|
|
2
|
+
;* \copy
|
|
3
|
+
;* Copyright (c) 2009-2013, Cisco Systems
|
|
4
|
+
;* All rights reserved.
|
|
5
|
+
;*
|
|
6
|
+
;* Redistribution and use in source and binary forms, with or without
|
|
7
|
+
;* modification, are permitted provided that the following conditions
|
|
8
|
+
;* are met:
|
|
9
|
+
;*
|
|
10
|
+
;* * Redistributions of source code must retain the above copyright
|
|
11
|
+
;* notice, this list of conditions and the following disclaimer.
|
|
12
|
+
;*
|
|
13
|
+
;* * Redistributions in binary form must reproduce the above copyright
|
|
14
|
+
;* notice, this list of conditions and the following disclaimer in
|
|
15
|
+
;* the documentation and/or other materials provided with the
|
|
16
|
+
;* distribution.
|
|
17
|
+
;*
|
|
18
|
+
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
;* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
;* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
21
|
+
;* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
22
|
+
;* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
23
|
+
;* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
24
|
+
;* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
25
|
+
;* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
27
|
+
;* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
28
|
+
;* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
29
|
+
;* POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
+
;*
|
|
31
|
+
;*
|
|
32
|
+
;* score.asm
|
|
33
|
+
;*
|
|
34
|
+
;* Abstract
|
|
35
|
+
;* scan/score/count of sse2
|
|
36
|
+
;*
|
|
37
|
+
;* History
|
|
38
|
+
;* 8/21/2009 Created
|
|
39
|
+
;*
|
|
40
|
+
;*
|
|
41
|
+
;*************************************************************************/
|
|
42
|
+
|
|
43
|
+
%include "asm_inc.asm"
|
|
44
|
+
|
|
45
|
+
;***********************************************************************
|
|
46
|
+
; Macros
|
|
47
|
+
;***********************************************************************
|
|
48
|
+
|
|
49
|
+
;***********************************************************************
|
|
50
|
+
; Local Data (Read Only)
|
|
51
|
+
;***********************************************************************
|
|
52
|
+
%ifdef X86_32_PICASM
|
|
53
|
+
SECTION .text align=16
|
|
54
|
+
%else
|
|
55
|
+
SECTION .rodata align=16
|
|
56
|
+
%endif
|
|
57
|
+
|
|
58
|
+
;align 16
|
|
59
|
+
;se2_2 dw 2, 2, 2, 2, 2, 2, 2, 2
|
|
60
|
+
align 16
|
|
61
|
+
sse2_1: dw 1, 1, 1, 1, 1, 1, 1, 1
|
|
62
|
+
align 16
|
|
63
|
+
sse2_b1: db 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
|
|
64
|
+
i_ds_table: db 3, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
65
|
+
align 16
|
|
66
|
+
sse2_plane_inc_minus: dw -7, -6, -5, -4, -3, -2, -1, 0
|
|
67
|
+
align 16
|
|
68
|
+
sse2_plane_inc: dw 1, 2, 3, 4, 5, 6, 7, 8
|
|
69
|
+
align 16
|
|
70
|
+
sse2_plane_dec: dw 8, 7, 6, 5, 4, 3, 2, 1
|
|
71
|
+
align 16
|
|
72
|
+
pb_scanacdc_maska:db 0,1,2,3,8,9,14,15,10,11,4,5,6,7,12,13
|
|
73
|
+
align 16
|
|
74
|
+
pb_scanacdc_maskb:db 2,3,8,9,10,11,4,5,0,1,6,7,12,13,14,15
|
|
75
|
+
align 16
|
|
76
|
+
pb_scandc_maska:db 2,3,8,9,14,15,10,11,4,5,6,7,12,13,0,1
|
|
77
|
+
align 16
|
|
78
|
+
pb_scandc_maskb:db 8,9,10,11,4,5,0,1,6,7,12,13,14,15,128,128
|
|
79
|
+
|
|
80
|
+
align 16
|
|
81
|
+
nozero_count_table:
|
|
82
|
+
db 0,1,1,2,1,2,2,3,1,2
|
|
83
|
+
db 2,3,2,3,3,4,1,2,2,3
|
|
84
|
+
db 2,3,3,4,2,3,3,4,3,4
|
|
85
|
+
db 4,5,1,2,2,3,2,3,3,4
|
|
86
|
+
db 2,3,3,4,3,4,4,5,2,3
|
|
87
|
+
db 3,4,3,4,4,5,3,4,4,5
|
|
88
|
+
db 4,5,5,6,1,2,2,3,2,3
|
|
89
|
+
db 3,4,2,3,3,4,3,4,4,5
|
|
90
|
+
db 2,3,3,4,3,4,4,5,3,4
|
|
91
|
+
db 4,5,4,5,5,6,2,3,3,4
|
|
92
|
+
db 3,4,4,5,3,4,4,5,4,5
|
|
93
|
+
db 5,6,3,4,4,5,4,5,5,6
|
|
94
|
+
db 4,5,5,6,5,6,6,7,1,2
|
|
95
|
+
db 2,3,2,3,3,4,2,3,3,4
|
|
96
|
+
db 3,4,4,5,2,3,3,4,3,4
|
|
97
|
+
db 4,5,3,4,4,5,4,5,5,6
|
|
98
|
+
db 2,3,3,4,3,4,4,5,3,4
|
|
99
|
+
db 4,5,4,5,5,6,3,4,4,5
|
|
100
|
+
db 4,5,5,6,4,5,5,6,5,6
|
|
101
|
+
db 6,7,2,3,3,4,3,4,4,5
|
|
102
|
+
db 3,4,4,5,4,5,5,6,3,4
|
|
103
|
+
db 4,5,4,5,5,6,4,5,5,6
|
|
104
|
+
db 5,6,6,7,3,4,4,5,4,5
|
|
105
|
+
db 5,6,4,5,5,6,5,6,6,7
|
|
106
|
+
db 4,5,5,6,5,6,6,7,5,6
|
|
107
|
+
db 6,7,6,7,7,8
|
|
108
|
+
|
|
109
|
+
align 16
|
|
110
|
+
high_mask_table:
|
|
111
|
+
db 0, 0, 0, 3, 0, 2, 3, 6, 0, 2
|
|
112
|
+
db 2, 5, 3, 5, 6, 9, 0, 1, 2, 5
|
|
113
|
+
db 2, 4, 5, 8, 3, 5, 5, 8, 6, 8
|
|
114
|
+
db 9,12, 0, 1, 1, 4, 2, 4, 5, 8
|
|
115
|
+
db 2, 4, 4, 7, 5, 7, 8,11, 3, 4
|
|
116
|
+
db 5, 8, 5, 7, 8,11, 6, 8, 8,11
|
|
117
|
+
db 9,11,12,15, 0, 1, 1, 4, 1, 3
|
|
118
|
+
db 4, 7, 2, 4, 4, 7, 5, 7, 8,11
|
|
119
|
+
db 2, 3, 4, 7, 4, 6, 7,10, 5, 7
|
|
120
|
+
db 7,10, 8,10,11,14, 3, 4, 4, 7
|
|
121
|
+
db 5, 7, 8,11, 5, 7, 7,10, 8,10
|
|
122
|
+
db 11,14, 6, 7, 8,11, 8,10,11,14
|
|
123
|
+
db 9,11,11,14,12,14,15,18, 0, 0
|
|
124
|
+
db 1, 4, 1, 3, 4, 7, 1, 3, 3, 6
|
|
125
|
+
db 4, 6, 7,10, 2, 3, 4, 7, 4, 6
|
|
126
|
+
db 7,10, 5, 7, 7,10, 8,10,11,14
|
|
127
|
+
db 2, 3, 3, 6, 4, 6, 7,10, 4, 6
|
|
128
|
+
db 6, 9, 7, 9,10,13, 5, 6, 7,10
|
|
129
|
+
db 7, 9,10,13, 8,10,10,13,11,13
|
|
130
|
+
db 14,17, 3, 4, 4, 7, 4, 6, 7,10
|
|
131
|
+
db 5, 7, 7,10, 8,10,11,14, 5, 6
|
|
132
|
+
db 7,10, 7, 9,10,13, 8,10,10,13
|
|
133
|
+
db 11,13,14,17, 6, 7, 7,10, 8,10
|
|
134
|
+
db 11,14, 8,10,10,13,11,13,14,17
|
|
135
|
+
db 9,10,11,14,11,13,14,17,12,14
|
|
136
|
+
db 14,17,15,17,18,21
|
|
137
|
+
|
|
138
|
+
align 16
|
|
139
|
+
low_mask_table:
|
|
140
|
+
db 0, 3, 2, 6, 2, 5, 5, 9, 1, 5
|
|
141
|
+
db 4, 8, 5, 8, 8,12, 1, 4, 4, 8
|
|
142
|
+
db 4, 7, 7,11, 4, 8, 7,11, 8,11
|
|
143
|
+
db 11,15, 1, 4, 3, 7, 4, 7, 7,11
|
|
144
|
+
db 3, 7, 6,10, 7,10,10,14, 4, 7
|
|
145
|
+
db 7,11, 7,10,10,14, 7,11,10,14
|
|
146
|
+
db 11,14,14,18, 0, 4, 3, 7, 3, 6
|
|
147
|
+
db 6,10, 3, 7, 6,10, 7,10,10,14
|
|
148
|
+
db 3, 6, 6,10, 6, 9, 9,13, 6,10
|
|
149
|
+
db 9,13,10,13,13,17, 4, 7, 6,10
|
|
150
|
+
db 7,10,10,14, 6,10, 9,13,10,13
|
|
151
|
+
db 13,17, 7,10,10,14,10,13,13,17
|
|
152
|
+
db 10,14,13,17,14,17,17,21, 0, 3
|
|
153
|
+
db 3, 7, 3, 6, 6,10, 2, 6, 5, 9
|
|
154
|
+
db 6, 9, 9,13, 3, 6, 6,10, 6, 9
|
|
155
|
+
db 9,13, 6,10, 9,13,10,13,13,17
|
|
156
|
+
db 3, 6, 5, 9, 6, 9, 9,13, 5, 9
|
|
157
|
+
db 8,12, 9,12,12,16, 6, 9, 9,13
|
|
158
|
+
db 9,12,12,16, 9,13,12,16,13,16
|
|
159
|
+
db 16,20, 3, 7, 6,10, 6, 9, 9,13
|
|
160
|
+
db 6,10, 9,13,10,13,13,17, 6, 9
|
|
161
|
+
db 9,13, 9,12,12,16, 9,13,12,16
|
|
162
|
+
db 13,16,16,20, 7,10, 9,13,10,13
|
|
163
|
+
db 13,17, 9,13,12,16,13,16,16,20
|
|
164
|
+
db 10,13,13,17,13,16,16,20,13,17
|
|
165
|
+
db 16,20,17,20,20,24
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
SECTION .text
|
|
169
|
+
|
|
170
|
+
;***********************************************************************
|
|
171
|
+
;void WelsScan4x4DcAc_sse2( int16_t level[16], int16_t *pDct )
|
|
172
|
+
;***********************************************************************
|
|
173
|
+
WELS_EXTERN WelsScan4x4DcAc_sse2
|
|
174
|
+
%ifdef X86_32
|
|
175
|
+
push r3
|
|
176
|
+
%assign push_num 1
|
|
177
|
+
%else
|
|
178
|
+
%assign push_num 0
|
|
179
|
+
%endif
|
|
180
|
+
LOAD_2_PARA
|
|
181
|
+
movdqa xmm0, [r1] ; 7 6 5 4 3 2 1 0
|
|
182
|
+
movdqa xmm1, [r1+16] ; f e d c b a 9 8
|
|
183
|
+
pextrw r2d, xmm0, 7 ; ecx = 7
|
|
184
|
+
pextrw r3d, xmm1, 2 ; edx = a
|
|
185
|
+
pextrw r1d, xmm0, 5 ; eax = 5
|
|
186
|
+
pinsrw xmm1, r2d, 2 ; f e d c b 7 9 8
|
|
187
|
+
pinsrw xmm0, r1d, 7 ; 5 6 5 4 3 2 1 0
|
|
188
|
+
pextrw r2d, xmm1, 0 ; ecx = 8
|
|
189
|
+
pinsrw xmm0, r2d, 5 ; 5 6 8 4 3 2 1 0
|
|
190
|
+
pinsrw xmm1, r3d, 0 ; f e d c b 7 9 a
|
|
191
|
+
pshufd xmm2, xmm0, 0xd8 ; 5 6 3 2 8 4 1 0
|
|
192
|
+
pshufd xmm3, xmm1, 0xd8 ; f e b 7 d c 9 a
|
|
193
|
+
pshufhw xmm0, xmm2, 0x93 ; 6 3 2 5 8 4 1 0
|
|
194
|
+
pshuflw xmm1, xmm3, 0x39 ; f e b 7 a d c 9
|
|
195
|
+
movdqa [r0],xmm0
|
|
196
|
+
movdqa [r0+16], xmm1
|
|
197
|
+
%ifdef X86_32
|
|
198
|
+
pop r3
|
|
199
|
+
%endif
|
|
200
|
+
ret
|
|
201
|
+
|
|
202
|
+
;***********************************************************************
|
|
203
|
+
;void WelsScan4x4DcAc_ssse3( int16_t level[16], int16_t *pDct )
|
|
204
|
+
;***********************************************************************
|
|
205
|
+
WELS_EXTERN WelsScan4x4DcAc_ssse3
|
|
206
|
+
%assign push_num 0
|
|
207
|
+
INIT_X86_32_PIC r3
|
|
208
|
+
LOAD_2_PARA
|
|
209
|
+
movdqa xmm0, [r1]
|
|
210
|
+
movdqa xmm1, [r1+16]
|
|
211
|
+
pextrw r2d, xmm0, 7 ; ecx = [7]
|
|
212
|
+
pextrw r1d, xmm1, 0 ; eax = [8]
|
|
213
|
+
pinsrw xmm0, r1d, 7 ; xmm0[7] = [8]
|
|
214
|
+
pinsrw xmm1, r2d, 0 ; xmm1[0] = [7]
|
|
215
|
+
pshufb xmm1, [pic(pb_scanacdc_maskb)]
|
|
216
|
+
pshufb xmm0, [pic(pb_scanacdc_maska)]
|
|
217
|
+
|
|
218
|
+
movdqa [r0],xmm0
|
|
219
|
+
movdqa [r0+16], xmm1
|
|
220
|
+
DEINIT_X86_32_PIC
|
|
221
|
+
ret
|
|
222
|
+
;***********************************************************************
|
|
223
|
+
;void WelsScan4x4Ac_sse2( int16_t* zig_value, int16_t* pDct )
|
|
224
|
+
;***********************************************************************
|
|
225
|
+
WELS_EXTERN WelsScan4x4Ac_sse2
|
|
226
|
+
%assign push_num 0
|
|
227
|
+
LOAD_2_PARA
|
|
228
|
+
movdqa xmm0, [r1]
|
|
229
|
+
movdqa xmm1, [r1+16]
|
|
230
|
+
movdqa xmm2, xmm0
|
|
231
|
+
punpcklqdq xmm0, xmm1
|
|
232
|
+
punpckhqdq xmm2, xmm1
|
|
233
|
+
|
|
234
|
+
movdqa xmm3, xmm0
|
|
235
|
+
punpckldq xmm0, xmm2
|
|
236
|
+
punpckhdq xmm3, xmm2
|
|
237
|
+
pextrw r1d , xmm0, 3
|
|
238
|
+
pextrw r2d , xmm0, 7
|
|
239
|
+
pinsrw xmm0, r1d, 7
|
|
240
|
+
pextrw r1d, xmm3, 4
|
|
241
|
+
pinsrw xmm3, r2d, 4
|
|
242
|
+
pextrw r2d, xmm3, 0
|
|
243
|
+
pinsrw xmm3, r1d, 0
|
|
244
|
+
pinsrw xmm0, r2d, 3
|
|
245
|
+
|
|
246
|
+
pshufhw xmm1, xmm0, 0x93
|
|
247
|
+
pshuflw xmm2, xmm3, 0x39
|
|
248
|
+
|
|
249
|
+
movdqa xmm3, xmm2
|
|
250
|
+
psrldq xmm1, 2
|
|
251
|
+
pslldq xmm3, 14
|
|
252
|
+
por xmm1, xmm3
|
|
253
|
+
psrldq xmm2, 2
|
|
254
|
+
movdqa [r0],xmm1
|
|
255
|
+
movdqa [r0+16], xmm2
|
|
256
|
+
ret
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
;***********************************************************************
|
|
260
|
+
;void int32_t WelsCalculateSingleCtr4x4_sse2( int16_t *pDct );
|
|
261
|
+
;***********************************************************************
|
|
262
|
+
WELS_EXTERN WelsCalculateSingleCtr4x4_sse2
|
|
263
|
+
%ifdef X86_32
|
|
264
|
+
push r3
|
|
265
|
+
%assign push_num 1
|
|
266
|
+
%else
|
|
267
|
+
%assign push_num 0
|
|
268
|
+
%endif
|
|
269
|
+
INIT_X86_32_PIC r4
|
|
270
|
+
LOAD_1_PARA
|
|
271
|
+
movdqa xmm0, [r0]
|
|
272
|
+
movdqa xmm1, [r0+16]
|
|
273
|
+
|
|
274
|
+
packsswb xmm0, xmm1
|
|
275
|
+
; below is the register map: r0 - eax, r1 - ebx, r2 - ecx, r3 - edx
|
|
276
|
+
xor r3, r3
|
|
277
|
+
pxor xmm3, xmm3
|
|
278
|
+
pcmpeqb xmm0, xmm3
|
|
279
|
+
pmovmskb r3d, xmm0
|
|
280
|
+
|
|
281
|
+
xor r3, 0xffff
|
|
282
|
+
|
|
283
|
+
xor r0, r0
|
|
284
|
+
mov r2, 7
|
|
285
|
+
mov r1, 8
|
|
286
|
+
.loop_low8_find1:
|
|
287
|
+
bt r3, r2
|
|
288
|
+
jc .loop_high8_find1
|
|
289
|
+
dec r2
|
|
290
|
+
jnz .loop_low8_find1
|
|
291
|
+
.loop_high8_find1:
|
|
292
|
+
bt r3, r1
|
|
293
|
+
jc .find1end
|
|
294
|
+
inc r1
|
|
295
|
+
cmp r1,16
|
|
296
|
+
jb .loop_high8_find1
|
|
297
|
+
.find1end:
|
|
298
|
+
sub r1, r2
|
|
299
|
+
sub r1, 1
|
|
300
|
+
lea r2, [pic(i_ds_table)]
|
|
301
|
+
add r0b, [r2+r1]
|
|
302
|
+
mov r1, r3
|
|
303
|
+
and r3, 0xff
|
|
304
|
+
shr r1, 8
|
|
305
|
+
and r1, 0xff
|
|
306
|
+
lea r2 , [pic(low_mask_table)]
|
|
307
|
+
add r0b, [r2 +r3]
|
|
308
|
+
lea r2, [pic(high_mask_table)]
|
|
309
|
+
add r0b, [r2+r1]
|
|
310
|
+
DEINIT_X86_32_PIC
|
|
311
|
+
%ifdef X86_32
|
|
312
|
+
pop r3
|
|
313
|
+
%else
|
|
314
|
+
mov retrd, r0d
|
|
315
|
+
%endif
|
|
316
|
+
ret
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
;***********************************************************************
|
|
320
|
+
; int32_t WelsGetNoneZeroCount_sse2(int16_t* level);
|
|
321
|
+
;***********************************************************************
|
|
322
|
+
WELS_EXTERN WelsGetNoneZeroCount_sse2
|
|
323
|
+
%assign push_num 0
|
|
324
|
+
INIT_X86_32_PIC r3
|
|
325
|
+
LOAD_1_PARA
|
|
326
|
+
movdqa xmm0, [r0]
|
|
327
|
+
movdqa xmm1, [r0+16]
|
|
328
|
+
pxor xmm2, xmm2
|
|
329
|
+
pcmpeqw xmm0, xmm2
|
|
330
|
+
pcmpeqw xmm1, xmm2
|
|
331
|
+
packsswb xmm1, xmm0
|
|
332
|
+
xor r1, r1
|
|
333
|
+
pmovmskb r1d, xmm1
|
|
334
|
+
xor r1d, 0xffff
|
|
335
|
+
mov r2, r1
|
|
336
|
+
and r1, 0xff
|
|
337
|
+
shr r2, 8
|
|
338
|
+
; and ecx, 0xff ; we do not need this due to high 16bits equal to 0 yet
|
|
339
|
+
; xor retr, retr
|
|
340
|
+
;add al, [nozero_count_table+r2]
|
|
341
|
+
lea r0 , [pic(nozero_count_table)]
|
|
342
|
+
movzx r2, byte [r0+r2]
|
|
343
|
+
movzx r1, byte [r0+r1]
|
|
344
|
+
mov retrq, r2
|
|
345
|
+
add retrq, r1
|
|
346
|
+
;add al, [nozero_count_table+r1]
|
|
347
|
+
DEINIT_X86_32_PIC
|
|
348
|
+
ret
|
|
349
|
+
|
|
350
|
+
;***********************************************************************
|
|
351
|
+
; int32_t WelsGetNoneZeroCount_sse42(int16_t* level);
|
|
352
|
+
;***********************************************************************
|
|
353
|
+
WELS_EXTERN WelsGetNoneZeroCount_sse42
|
|
354
|
+
%assign push_num 0
|
|
355
|
+
LOAD_1_PARA
|
|
356
|
+
movdqa xmm0, [r0]
|
|
357
|
+
packsswb xmm0, [r0 + 16]
|
|
358
|
+
pxor xmm1, xmm1
|
|
359
|
+
pcmpeqb xmm0, xmm1
|
|
360
|
+
pmovmskb retrd, xmm0
|
|
361
|
+
xor retrd, 0FFFFh
|
|
362
|
+
popcnt retrd, retrd
|
|
363
|
+
ret
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
cpp_sources = [
|
|
2
|
+
'core/src/au_set.cpp',
|
|
3
|
+
'core/src/deblocking.cpp',
|
|
4
|
+
'core/src/decode_mb_aux.cpp',
|
|
5
|
+
'core/src/encode_mb_aux.cpp',
|
|
6
|
+
'core/src/encoder.cpp',
|
|
7
|
+
'core/src/encoder_data_tables.cpp',
|
|
8
|
+
'core/src/encoder_ext.cpp',
|
|
9
|
+
'core/src/get_intra_predictor.cpp',
|
|
10
|
+
'core/src/md.cpp',
|
|
11
|
+
'core/src/mv_pred.cpp',
|
|
12
|
+
'core/src/nal_encap.cpp',
|
|
13
|
+
'core/src/paraset_strategy.cpp',
|
|
14
|
+
'core/src/picture_handle.cpp',
|
|
15
|
+
'core/src/ratectl.cpp',
|
|
16
|
+
'core/src/ref_list_mgr_svc.cpp',
|
|
17
|
+
'core/src/sample.cpp',
|
|
18
|
+
'core/src/set_mb_syn_cabac.cpp',
|
|
19
|
+
'core/src/set_mb_syn_cavlc.cpp',
|
|
20
|
+
'core/src/slice_multi_threading.cpp',
|
|
21
|
+
'core/src/svc_base_layer_md.cpp',
|
|
22
|
+
'core/src/svc_enc_slice_segment.cpp',
|
|
23
|
+
'core/src/svc_encode_mb.cpp',
|
|
24
|
+
'core/src/svc_encode_slice.cpp',
|
|
25
|
+
'core/src/svc_mode_decision.cpp',
|
|
26
|
+
'core/src/svc_motion_estimate.cpp',
|
|
27
|
+
'core/src/svc_set_mb_syn_cabac.cpp',
|
|
28
|
+
'core/src/svc_set_mb_syn_cavlc.cpp',
|
|
29
|
+
'core/src/wels_preprocess.cpp',
|
|
30
|
+
'core/src/wels_task_base.cpp',
|
|
31
|
+
'core/src/wels_task_encoder.cpp',
|
|
32
|
+
'core/src/wels_task_management.cpp',
|
|
33
|
+
'plus/src/welsEncoderExt.cpp',
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
objs_asm = []
|
|
37
|
+
if cpu_family in ['x86', 'x86_64']
|
|
38
|
+
asm_sources = [
|
|
39
|
+
'core/x86/coeff.asm',
|
|
40
|
+
'core/x86/dct.asm',
|
|
41
|
+
'core/x86/intra_pred.asm',
|
|
42
|
+
'core/x86/matrix_transpose.asm',
|
|
43
|
+
'core/x86/memzero.asm',
|
|
44
|
+
'core/x86/quant.asm',
|
|
45
|
+
'core/x86/sample_sc.asm',
|
|
46
|
+
'core/x86/score.asm',
|
|
47
|
+
]
|
|
48
|
+
objs_asm = asm_gen.process(asm_sources)
|
|
49
|
+
elif cpu_family == 'arm'
|
|
50
|
+
asm_sources = [
|
|
51
|
+
'core/arm/intra_pred_neon.S',
|
|
52
|
+
'core/arm/intra_pred_sad_3_opt_neon.S',
|
|
53
|
+
'core/arm/memory_neon.S',
|
|
54
|
+
'core/arm/pixel_neon.S',
|
|
55
|
+
'core/arm/reconstruct_neon.S',
|
|
56
|
+
'core/arm/svc_motion_estimation.S',
|
|
57
|
+
]
|
|
58
|
+
if use_asm_gen
|
|
59
|
+
objs_asm = asm_gen.process(asm_sources)
|
|
60
|
+
else
|
|
61
|
+
cpp_sources += asm_sources
|
|
62
|
+
endif
|
|
63
|
+
elif cpu_family == 'aarch64'
|
|
64
|
+
asm_sources = [
|
|
65
|
+
'core/arm64/intra_pred_aarch64_neon.S',
|
|
66
|
+
'core/arm64/intra_pred_sad_3_opt_aarch64_neon.S',
|
|
67
|
+
'core/arm64/memory_aarch64_neon.S',
|
|
68
|
+
'core/arm64/pixel_aarch64_neon.S',
|
|
69
|
+
'core/arm64/reconstruct_aarch64_neon.S',
|
|
70
|
+
'core/arm64/svc_motion_estimation_aarch64_neon.S',
|
|
71
|
+
]
|
|
72
|
+
if use_asm_gen
|
|
73
|
+
objs_asm = asm_gen.process(asm_sources)
|
|
74
|
+
else
|
|
75
|
+
cpp_sources += asm_sources
|
|
76
|
+
endif
|
|
77
|
+
elif cpu_family in ['loongarch32', 'loongarch64']
|
|
78
|
+
asm_sources = [
|
|
79
|
+
'core/loongarch/quant_lsx.c',
|
|
80
|
+
'core/loongarch/get_intra_predictor_lsx.c',
|
|
81
|
+
'core/loongarch/dct_lasx.c',
|
|
82
|
+
'core/loongarch/svc_motion_estimate_lsx.c',
|
|
83
|
+
'core/loongarch/sample_lasx.c',
|
|
84
|
+
]
|
|
85
|
+
cpp_sources += asm_sources
|
|
86
|
+
elif cpu_family == 'riscv64'
|
|
87
|
+
asm_sources = []
|
|
88
|
+
elif cpu_family == 'ppc'
|
|
89
|
+
asm_sources = []
|
|
90
|
+
elif cpu_family == 'ppc64'
|
|
91
|
+
asm_sources = []
|
|
92
|
+
else
|
|
93
|
+
error('Unsupported cpu family @0@'.format(cpu_family))
|
|
94
|
+
endif
|
|
95
|
+
|
|
96
|
+
libencoder = static_library('encoder', cpp_sources, objs_asm,
|
|
97
|
+
include_directories: [inc, processing_inc, encoder_inc, casm_inc],
|
|
98
|
+
dependencies: deps)
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* \copy
|
|
3
|
+
* Copyright (c) 2009-2013, Cisco Systems
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
*
|
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
|
7
|
+
* modification, are permitted provided that the following conditions
|
|
8
|
+
* are met:
|
|
9
|
+
*
|
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
|
12
|
+
*
|
|
13
|
+
* * Redistributions in binary form must reproduce the above copyright
|
|
14
|
+
* notice, this list of conditions and the following disclaimer in
|
|
15
|
+
* the documentation and/or other materials provided with the
|
|
16
|
+
* distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
21
|
+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
22
|
+
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
23
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
24
|
+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
25
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
27
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
28
|
+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
29
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
+
*
|
|
31
|
+
*
|
|
32
|
+
*
|
|
33
|
+
* Abstract
|
|
34
|
+
* Cisco OpenH264 encoder extension utilization interface for T26
|
|
35
|
+
*
|
|
36
|
+
* History
|
|
37
|
+
* 4/24/2009 Created
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
*************************************************************************/
|
|
41
|
+
#if !defined(WELS_PLUS_WELSENCODEREXT_H)
|
|
42
|
+
#define WELS_PLUS_WELSENCODEREXT_H
|
|
43
|
+
|
|
44
|
+
#include "codec_api.h"
|
|
45
|
+
#include "codec_def.h"
|
|
46
|
+
#include "codec_app_def.h"
|
|
47
|
+
#include "welsCodecTrace.h"
|
|
48
|
+
#include "encoder_context.h"
|
|
49
|
+
#include "param_svc.h"
|
|
50
|
+
#include "extern.h"
|
|
51
|
+
#include "cpu.h"
|
|
52
|
+
|
|
53
|
+
//#define OUTPUT_BIT_STREAM
|
|
54
|
+
//#define DUMP_SRC_PICTURE
|
|
55
|
+
//#define REC_FRAME_COUNT
|
|
56
|
+
|
|
57
|
+
class ISVCEncoder;
|
|
58
|
+
namespace WelsEnc {
|
|
59
|
+
class CWelsH264SVCEncoder : public ISVCEncoder {
|
|
60
|
+
public:
|
|
61
|
+
CWelsH264SVCEncoder();
|
|
62
|
+
virtual ~CWelsH264SVCEncoder();
|
|
63
|
+
|
|
64
|
+
/* Interfaces override from ISVCEncoder */
|
|
65
|
+
/*
|
|
66
|
+
* return: CM_RETURN: 0 - success; otherwise - failed;
|
|
67
|
+
*/
|
|
68
|
+
virtual int EXTAPI Initialize (const SEncParamBase* argv);
|
|
69
|
+
virtual int EXTAPI InitializeExt (const SEncParamExt* argv);
|
|
70
|
+
|
|
71
|
+
virtual int EXTAPI GetDefaultParams (SEncParamExt* argv);
|
|
72
|
+
|
|
73
|
+
virtual int EXTAPI Uninitialize();
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
* return: 0 - success; otherwise - failed;
|
|
77
|
+
*/
|
|
78
|
+
virtual int EXTAPI EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
|
79
|
+
virtual int EncodeFrameInternal (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* return: 0 - success; otherwise - failed;
|
|
83
|
+
*/
|
|
84
|
+
virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo);
|
|
85
|
+
/*
|
|
86
|
+
* return: 0 - success; otherwise - failed;
|
|
87
|
+
*/
|
|
88
|
+
virtual int EXTAPI ForceIntraFrame (bool bIDR,int32_t iLayerId = -1);
|
|
89
|
+
|
|
90
|
+
/************************************************************************
|
|
91
|
+
* InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,..
|
|
92
|
+
************************************************************************/
|
|
93
|
+
/*
|
|
94
|
+
* return: CM_RETURN: 0 - success; otherwise - failed;
|
|
95
|
+
*/
|
|
96
|
+
virtual int EXTAPI SetOption (ENCODER_OPTION opt_id, void* option);
|
|
97
|
+
virtual int EXTAPI GetOption (ENCODER_OPTION opt_id, void* option);
|
|
98
|
+
|
|
99
|
+
private:
|
|
100
|
+
int InitializeInternal (SWelsSvcCodingParam* argv);
|
|
101
|
+
void TraceParamInfo(SEncParamExt *pParam);
|
|
102
|
+
void LogStatistics (const int64_t kiCurrentFrameTs,int32_t iMaxDid);
|
|
103
|
+
void UpdateStatistics(SFrameBSInfo* pBsInfo, const int64_t kiCurrentFrameMs);
|
|
104
|
+
|
|
105
|
+
sWelsEncCtx* m_pEncContext;
|
|
106
|
+
|
|
107
|
+
welsCodecTrace* m_pWelsTrace;
|
|
108
|
+
int32_t m_iMaxPicWidth;
|
|
109
|
+
int32_t m_iMaxPicHeight;
|
|
110
|
+
|
|
111
|
+
int32_t m_iCspInternal;
|
|
112
|
+
bool m_bInitialFlag;
|
|
113
|
+
|
|
114
|
+
#ifdef OUTPUT_BIT_STREAM
|
|
115
|
+
FILE* m_pFileBs;
|
|
116
|
+
FILE* m_pFileBsSize;
|
|
117
|
+
bool m_bSwitch;
|
|
118
|
+
int32_t m_iSwitchTimes;
|
|
119
|
+
#endif//OUTPUT_BIT_STREAM
|
|
120
|
+
|
|
121
|
+
#ifdef REC_FRAME_COUNT
|
|
122
|
+
int32_t m_uiCountFrameNum;
|
|
123
|
+
#endif//REC_FRAME_COUNT
|
|
124
|
+
|
|
125
|
+
void InitEncoder (void);
|
|
126
|
+
void DumpSrcPicture (const SSourcePicture* pSrcPic, const int iUsageType);
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
#endif // !defined(WELS_PLUS_WELSENCODEREXT_H)
|