@scrypted/libav 1.0.180 → 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 +3 -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,350 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* \copy
|
|
3
|
+
* Copyright (c) 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
|
+
#ifdef HAVE_NEON_AARCH64
|
|
34
|
+
#include "arm_arch64_common_macro.S"
|
|
35
|
+
//int32_t SumOf8x8SingleBlock_AArch64_neon (uint8_t* pRef, const int32_t kiRefStride);
|
|
36
|
+
WELS_ASM_AARCH64_FUNC_BEGIN SumOf8x8SingleBlock_AArch64_neon
|
|
37
|
+
SIGN_EXTENSION x1,w1
|
|
38
|
+
ld1 {v0.d}[0], [x0], x1
|
|
39
|
+
ld1 {v0.d}[1], [x0], x1
|
|
40
|
+
ld1 {v1.d}[0], [x0], x1
|
|
41
|
+
ld1 {v1.d}[1], [x0], x1
|
|
42
|
+
ld1 {v2.d}[0], [x0], x1
|
|
43
|
+
ld1 {v2.d}[1], [x0], x1
|
|
44
|
+
ld1 {v3.d}[0], [x0], x1
|
|
45
|
+
ld1 {v3.d}[1], [x0]
|
|
46
|
+
uaddlp v0.8h, v0.16b
|
|
47
|
+
uadalp v0.8h, v1.16b
|
|
48
|
+
uadalp v0.8h, v2.16b
|
|
49
|
+
uadalp v0.8h, v3.16b
|
|
50
|
+
uaddlv s0, v0.8h
|
|
51
|
+
mov x0, v0.d[0]
|
|
52
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
53
|
+
|
|
54
|
+
//int32_t SumOf16x16SingleBlock_AArch64_neon (uint8_t* pRef, const int32_t kiRefStride);
|
|
55
|
+
WELS_ASM_AARCH64_FUNC_BEGIN SumOf16x16SingleBlock_AArch64_neon
|
|
56
|
+
SIGN_EXTENSION x1,w1
|
|
57
|
+
ld1 {v0.16b}, [x0], x1
|
|
58
|
+
uaddlp v0.8h, v0.16b
|
|
59
|
+
.rept 15
|
|
60
|
+
ld1 {v1.16b}, [x0], x1
|
|
61
|
+
uadalp v0.8h, v1.16b
|
|
62
|
+
.endr
|
|
63
|
+
uaddlv s0, v0.8h
|
|
64
|
+
mov x0, v0.d[0]
|
|
65
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
66
|
+
|
|
67
|
+
//void SumOf8x8BlockOfFrame_AArch64_neon (uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,
|
|
68
|
+
// const int32_t kiRefStride,
|
|
69
|
+
// uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[]);
|
|
70
|
+
WELS_ASM_AARCH64_FUNC_BEGIN SumOf8x8BlockOfFrame_AArch64_neon
|
|
71
|
+
//(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
|
|
72
|
+
//x5: pTimesOfFeatureValue
|
|
73
|
+
//x4: pFeatureOfBlock
|
|
74
|
+
|
|
75
|
+
SIGN_EXTENSION x1,w1
|
|
76
|
+
SIGN_EXTENSION x2,w2
|
|
77
|
+
SIGN_EXTENSION x3,w3
|
|
78
|
+
mov x8, x0
|
|
79
|
+
mov x6, x1
|
|
80
|
+
add x8, x8, x6
|
|
81
|
+
add x4, x4, x6, lsl #1
|
|
82
|
+
|
|
83
|
+
mov x7, x6
|
|
84
|
+
_width_loop8x8_1:
|
|
85
|
+
subs x0, x8, x7
|
|
86
|
+
ld1 {v0.d}[0], [x0], x3
|
|
87
|
+
ld1 {v0.d}[1], [x0], x3
|
|
88
|
+
ld1 {v1.d}[0], [x0], x3
|
|
89
|
+
ld1 {v1.d}[1], [x0], x3
|
|
90
|
+
ld1 {v2.d}[0], [x0], x3
|
|
91
|
+
ld1 {v2.d}[1], [x0], x3
|
|
92
|
+
ld1 {v3.d}[0], [x0], x3
|
|
93
|
+
ld1 {v3.d}[1], [x0]
|
|
94
|
+
uaddlp v0.8h, v0.16b
|
|
95
|
+
uadalp v0.8h, v1.16b
|
|
96
|
+
uadalp v0.8h, v2.16b
|
|
97
|
+
uadalp v0.8h, v3.16b
|
|
98
|
+
uaddlv s0, v0.8h
|
|
99
|
+
|
|
100
|
+
subs x1, x4, x7, lsl #1
|
|
101
|
+
st1 {v0.h}[0], [x1] // sum -> pFeatureOfBlock[i]
|
|
102
|
+
mov w0, #0
|
|
103
|
+
ins v0.s[1], w0
|
|
104
|
+
mov x0, v0.d[0]
|
|
105
|
+
add x1, x5, x0, lsl #2
|
|
106
|
+
ldr w0, [x1]
|
|
107
|
+
add w0, w0, #1
|
|
108
|
+
str w0, [x1]
|
|
109
|
+
subs x7, x7, #1
|
|
110
|
+
cbnz x7, _width_loop8x8_1
|
|
111
|
+
|
|
112
|
+
add x8, x8, x3
|
|
113
|
+
add x4, x4, x6, lsl #1
|
|
114
|
+
subs x2, x2, #1
|
|
115
|
+
cbz x2, _SumOf8x8BlockOfFrame_AArch64_neon_end
|
|
116
|
+
|
|
117
|
+
_height_loop8x8:
|
|
118
|
+
mov x7, x6
|
|
119
|
+
_width_loop8x8_2:
|
|
120
|
+
subs x0, x8, x7
|
|
121
|
+
subs x1, x4, x7, lsl #1
|
|
122
|
+
subs x9, x1, x6, lsl #1 // last line of pFeatureOfBlock[i]
|
|
123
|
+
ldrh w10, [x9] // sum of last line of pFeatureOfBlock[i]
|
|
124
|
+
|
|
125
|
+
subs x11, x0, x3
|
|
126
|
+
ld1 {v0.d}[1], [x11]
|
|
127
|
+
add x0, x11, x3, lsl #3
|
|
128
|
+
ld1 {v0.d}[0], [x0] //
|
|
129
|
+
|
|
130
|
+
uaddlp v0.8h, v0.16b
|
|
131
|
+
addp v0.8h, v0.8h, v1.8h
|
|
132
|
+
uaddlp v0.4s, v0.8h
|
|
133
|
+
umov w11, v0.s[0]
|
|
134
|
+
umov w12, v0.s[1]
|
|
135
|
+
|
|
136
|
+
subs w10, w10, w12
|
|
137
|
+
mov x0, #0
|
|
138
|
+
add w0, w10, w11
|
|
139
|
+
strh w0, [x1] // sum -> pFeatureOfBlock[i]
|
|
140
|
+
add x1, x5, x0, lsl #2
|
|
141
|
+
ldr w0, [x1]
|
|
142
|
+
add w0, w0, #1
|
|
143
|
+
str w0, [x1]
|
|
144
|
+
subs x7, x7, #1
|
|
145
|
+
cbnz x7, _width_loop8x8_2
|
|
146
|
+
|
|
147
|
+
add x8, x8, x3
|
|
148
|
+
add x4, x4, x6, lsl #1
|
|
149
|
+
subs x2, x2, #1
|
|
150
|
+
cbnz x2, _height_loop8x8
|
|
151
|
+
_SumOf8x8BlockOfFrame_AArch64_neon_end:
|
|
152
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
153
|
+
|
|
154
|
+
WELS_ASM_AARCH64_FUNC_BEGIN SumOf16x16BlockOfFrame_AArch64_neon
|
|
155
|
+
//(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
|
|
156
|
+
//x5: pTimesOfFeatureValue
|
|
157
|
+
//x4: pFeatureOfBlock
|
|
158
|
+
|
|
159
|
+
SIGN_EXTENSION x1,w1
|
|
160
|
+
SIGN_EXTENSION x2,w2
|
|
161
|
+
SIGN_EXTENSION x3,w3
|
|
162
|
+
mov x8, x0
|
|
163
|
+
mov x6, x1
|
|
164
|
+
add x8, x8, x6
|
|
165
|
+
add x4, x4, x6, lsl #1
|
|
166
|
+
|
|
167
|
+
mov x7, x6
|
|
168
|
+
_width_loop16x16_1:
|
|
169
|
+
subs x0, x8, x7
|
|
170
|
+
ld1 {v0.16b}, [x0], x3
|
|
171
|
+
uaddlp v0.8h, v0.16b
|
|
172
|
+
.rept 15
|
|
173
|
+
ld1 {v1.16b}, [x0], x3
|
|
174
|
+
uadalp v0.8h, v1.16b
|
|
175
|
+
.endr
|
|
176
|
+
uaddlv s0, v0.8h
|
|
177
|
+
|
|
178
|
+
subs x1, x4, x7, lsl #1
|
|
179
|
+
st1 {v0.h}[0], [x1] // sum -> pFeatureOfBlock[i]
|
|
180
|
+
mov w0, #0
|
|
181
|
+
ins v0.s[1], w0
|
|
182
|
+
mov x0, v0.d[0]
|
|
183
|
+
add x1, x5, x0, lsl #2
|
|
184
|
+
ldr w0, [x1]
|
|
185
|
+
add w0, w0, #1
|
|
186
|
+
str w0, [x1]
|
|
187
|
+
subs x7, x7, #1
|
|
188
|
+
cbnz x7, _width_loop16x16_1
|
|
189
|
+
|
|
190
|
+
add x8, x8, x3
|
|
191
|
+
add x4, x4, x6, lsl #1
|
|
192
|
+
subs x2, x2, #1
|
|
193
|
+
cbz x2, _SumOf16x16BlockOfFrame_AArch64_neon_end
|
|
194
|
+
|
|
195
|
+
_height_loop16x16:
|
|
196
|
+
mov x7, x6
|
|
197
|
+
_width_loop16x16_2:
|
|
198
|
+
subs x0, x8, x7
|
|
199
|
+
|
|
200
|
+
subs x1, x4, x7, lsl #1
|
|
201
|
+
subs x9, x1, x6, lsl #1 // last line of pFeatureOfBlock[i]
|
|
202
|
+
ldrh w10, [x9] // sum of last line of pFeatureOfBlock[i]
|
|
203
|
+
|
|
204
|
+
subs x11, x0, x3
|
|
205
|
+
ld1 {v1.16b}, [x11]
|
|
206
|
+
add x0, x11, x3, lsl #4
|
|
207
|
+
ld1 {v0.16b}, [x0] //
|
|
208
|
+
|
|
209
|
+
uaddlv h0, v0.16b
|
|
210
|
+
uaddlv h1, v1.16b
|
|
211
|
+
umov w11, v0.h[0]
|
|
212
|
+
umov w12, v1.h[0]
|
|
213
|
+
|
|
214
|
+
subs w10, w10, w12
|
|
215
|
+
mov x0, #0
|
|
216
|
+
add w0, w10, w11
|
|
217
|
+
strh w0, [x1] // sum -> pFeatureOfBlock[i]
|
|
218
|
+
add x1, x5, x0, lsl #2
|
|
219
|
+
ldr w0, [x1]
|
|
220
|
+
add w0, w0, #1
|
|
221
|
+
str w0, [x1]
|
|
222
|
+
subs x7, x7, #1
|
|
223
|
+
cbnz x7, _width_loop16x16_2
|
|
224
|
+
|
|
225
|
+
add x8, x8, x3
|
|
226
|
+
add x4, x4, x6, lsl #1
|
|
227
|
+
subs x2, x2, #1
|
|
228
|
+
cbnz x2, _height_loop16x16
|
|
229
|
+
_SumOf16x16BlockOfFrame_AArch64_neon_end:
|
|
230
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
231
|
+
|
|
232
|
+
WELS_ASM_AARCH64_FUNC_BEGIN InitializeHashforFeature_AArch64_neon
|
|
233
|
+
// (uint32_t* pTimesOfFeatureValue, uint16_t* pBuf, const int32_t kiListSize, uint16_t** pLocationOfFeature, uint16_t** pFeatureValuePointerList);
|
|
234
|
+
SIGN_EXTENSION x2,w2
|
|
235
|
+
mov x9, #3
|
|
236
|
+
bic x5, x2, x9
|
|
237
|
+
mov x8, #0
|
|
238
|
+
_hash_assign_loop_x4:
|
|
239
|
+
ld1 {v0.16b}, [x0], #16
|
|
240
|
+
shl v0.4s, v0.4s, #2
|
|
241
|
+
addv s1, v0.4s
|
|
242
|
+
umov w7, v1.s[0]
|
|
243
|
+
cbz w7, _hash_assign_with_copy_x4
|
|
244
|
+
|
|
245
|
+
ins v2.d[0], x1
|
|
246
|
+
umov w8, v0.s[0]
|
|
247
|
+
add x1, x1, x8
|
|
248
|
+
ins v2.d[1], x1
|
|
249
|
+
umov w8, v0.s[1]
|
|
250
|
+
add x1, x1, x8
|
|
251
|
+
ins v3.d[0], x1
|
|
252
|
+
umov w8, v0.s[2]
|
|
253
|
+
add x1, x1, x8
|
|
254
|
+
ins v3.d[1], x1
|
|
255
|
+
umov w8, v0.s[3]
|
|
256
|
+
add x1, x1, x8
|
|
257
|
+
st1 {v2.16b, v3.16b}, [x3], #32
|
|
258
|
+
st1 {v2.16b, v3.16b}, [x4], #32
|
|
259
|
+
b _assign_next
|
|
260
|
+
_hash_assign_with_copy_x4:
|
|
261
|
+
dup v2.2d, x1
|
|
262
|
+
dup v3.2d, x1
|
|
263
|
+
st1 {v2.16b, v3.16b}, [x3], #32
|
|
264
|
+
st1 {v2.16b, v3.16b}, [x4], #32
|
|
265
|
+
|
|
266
|
+
_assign_next:
|
|
267
|
+
subs x5, x5, #4
|
|
268
|
+
cbnz x5, _hash_assign_loop_x4
|
|
269
|
+
|
|
270
|
+
and x5, x2, x9
|
|
271
|
+
cbz x5, _hash_assign_end
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
_hash_assign_loop_x4_rem:
|
|
275
|
+
str x1, [x3], #8
|
|
276
|
+
str x1, [x4], #8
|
|
277
|
+
ldr w8, [x0], #4
|
|
278
|
+
lsl w8, w8, #2
|
|
279
|
+
add x1, x1, x8
|
|
280
|
+
subs x5, x5, #1
|
|
281
|
+
cbnz x5, _hash_assign_loop_x4_rem
|
|
282
|
+
|
|
283
|
+
_hash_assign_end:
|
|
284
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
285
|
+
|
|
286
|
+
.align 4
|
|
287
|
+
mv_x_inc_x4: .short 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00
|
|
288
|
+
mv_y_inc_x4: .short 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00
|
|
289
|
+
mx_x_offset_x4: .short 0x00, 0x04, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00
|
|
290
|
+
|
|
291
|
+
WELS_ASM_AARCH64_FUNC_BEGIN FillQpelLocationByFeatureValue_AArch64_neon
|
|
292
|
+
// void (uint16_t* pFeatureOfBlock, const int32_t kiWidth, const int32_t kiHeight, uint16_t** pFeatureValuePointerList)
|
|
293
|
+
ldr q7, mv_x_inc_x4
|
|
294
|
+
ldr q6, mv_y_inc_x4
|
|
295
|
+
ldr q5, mx_x_offset_x4
|
|
296
|
+
SIGN_EXTENSION x1,w1
|
|
297
|
+
SIGN_EXTENSION x2,w2
|
|
298
|
+
eor v4.16b, v4.16b, v4.16b
|
|
299
|
+
eor v3.16b, v3.16b, v3.16b
|
|
300
|
+
dup v16.2d, x3 // v8->v16
|
|
301
|
+
|
|
302
|
+
_hash_height_loop:
|
|
303
|
+
mov x7, x1
|
|
304
|
+
mov v2.16b, v5.16b //mx_x_offset_x4
|
|
305
|
+
|
|
306
|
+
_hash_width_loop:
|
|
307
|
+
ld1 {v0.d}[0], [x0], #8
|
|
308
|
+
|
|
309
|
+
ushll v0.4s, v0.4h, #3
|
|
310
|
+
uaddw v17.2d, v16.2d, v0.2s
|
|
311
|
+
uaddw2 v18.2d, v16.2d, v0.4s
|
|
312
|
+
zip1 v1.8h, v2.8h, v3.8h
|
|
313
|
+
|
|
314
|
+
umov x4, v17.d[0]
|
|
315
|
+
ldr x5, [x4]
|
|
316
|
+
umov w6, v1.s[0]
|
|
317
|
+
str w6, [x5]
|
|
318
|
+
add x5, x5, #4
|
|
319
|
+
str x5, [x4]
|
|
320
|
+
|
|
321
|
+
umov x4, v17.d[1]
|
|
322
|
+
ldr x5, [x4]
|
|
323
|
+
umov w6, v1.s[1]
|
|
324
|
+
str w6, [x5]
|
|
325
|
+
add x5, x5, #4
|
|
326
|
+
str x5, [x4]
|
|
327
|
+
|
|
328
|
+
umov x4, v18.d[0]
|
|
329
|
+
ldr x5, [x4]
|
|
330
|
+
umov w6, v1.s[2]
|
|
331
|
+
str w6, [x5]
|
|
332
|
+
add x5, x5, #4
|
|
333
|
+
str x5, [x4]
|
|
334
|
+
|
|
335
|
+
umov x4, v18.d[1]
|
|
336
|
+
ldr x5, [x4]
|
|
337
|
+
umov w6, v1.s[3]
|
|
338
|
+
str w6, [x5]
|
|
339
|
+
add x5, x5, #4
|
|
340
|
+
str x5, [x4]
|
|
341
|
+
|
|
342
|
+
add v2.8h, v2.8h, v7.8h
|
|
343
|
+
subs x7, x7, #4
|
|
344
|
+
cbnz x7, _hash_width_loop
|
|
345
|
+
|
|
346
|
+
add v3.8h, v3.8h, v6.8h
|
|
347
|
+
subs x2, x2, #1
|
|
348
|
+
cbnz x2, _hash_height_loop
|
|
349
|
+
WELS_ASM_AARCH64_FUNC_END
|
|
350
|
+
#endif
|
|
@@ -0,0 +1,138 @@
|
|
|
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
|
+
* \file common.h
|
|
33
|
+
*
|
|
34
|
+
* \brief common flag definitions
|
|
35
|
+
*
|
|
36
|
+
* \date 7/6/2009 Created
|
|
37
|
+
*
|
|
38
|
+
*************************************************************************************
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
#ifndef AS264_COMMON_H_
|
|
42
|
+
#define AS264_COMMON_H_
|
|
43
|
+
|
|
44
|
+
/* debug setting for console
|
|
45
|
+
$(TargetPath)
|
|
46
|
+
-iper 60 -lqp 26 -frin 2 -rc 1 -cf 4 -org desktop.bgra -sw 800 -sh 592 -bf desktop.h264
|
|
47
|
+
.\..\..\..\..\bin
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/****************************************************************************
|
|
51
|
+
* Options for algorithm, usually change bitrate
|
|
52
|
+
****************************************************************************/
|
|
53
|
+
#define DISABLE_FMO_FEATURE //
|
|
54
|
+
|
|
55
|
+
/****************************************************************************
|
|
56
|
+
* Options for optimization, not change bitrate
|
|
57
|
+
****************************************************************************/
|
|
58
|
+
//#undef X86_ASM // X86_ASM is included in project preprocessor definitions, undef it when need to disable asm code
|
|
59
|
+
#define SINGLE_REF_FRAME // need to disable it when use multi-reference
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
#if defined(WELS_TESTBED) // for SGE testing
|
|
63
|
+
#define ENABLE_FRAME_DUMP
|
|
64
|
+
|
|
65
|
+
#ifdef FRAME_INFO_OUTPUT
|
|
66
|
+
#undef FRAME_INFO_OUTPUT
|
|
67
|
+
#endif//FRAME_INFO_OUTPUT
|
|
68
|
+
#endif//WELS_TESTBED
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
#if defined(__UNITTEST__) // for unittest
|
|
72
|
+
#ifndef ENABLE_FRAME_DUMP
|
|
73
|
+
#define ENABLE_FRAME_DUMP
|
|
74
|
+
#endif//ENABLE_FRAME_DUMP
|
|
75
|
+
#endif//__UNITTEST__
|
|
76
|
+
|
|
77
|
+
//#define STAT_OUTPUT
|
|
78
|
+
//#define MB_TYPES_CHECK
|
|
79
|
+
//
|
|
80
|
+
//#define FRAME_INFO_OUTPUT
|
|
81
|
+
//#define LAYER_INFO_OUTPUT
|
|
82
|
+
//#define SLICE_INFO_OUTPUT // useful in multiple slice coding track
|
|
83
|
+
//#define MB_TYPES_INFO_OUTPUT
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
/* macros dependencies check */
|
|
87
|
+
//@if !FRAME_INFO_OUTPUT
|
|
88
|
+
#if !defined(FRAME_INFO_OUTPUT)
|
|
89
|
+
|
|
90
|
+
//#if defined(STAT_OUTPUT)
|
|
91
|
+
//#undef STAT_OUTPUT
|
|
92
|
+
//#endif//STAT_OUTPUT
|
|
93
|
+
|
|
94
|
+
#if defined(LAYER_INFO_OUTPUT)
|
|
95
|
+
#undef LAYER_INFO_OUTPUT
|
|
96
|
+
#endif//LAYER_INFO_OUTPUT
|
|
97
|
+
|
|
98
|
+
#if defined(SLICE_INFO_OUTPUT)
|
|
99
|
+
#undef SLICE_INFO_OUTPUT
|
|
100
|
+
#endif//SLICE_INFO_OUTPUT
|
|
101
|
+
|
|
102
|
+
#if defined(MB_TYPES_INFO_OUTPUT)
|
|
103
|
+
#undef MB_TYPES_INFO_OUTPUT
|
|
104
|
+
#endif//MB_TYPES_INFO_OUTPUT
|
|
105
|
+
|
|
106
|
+
#endif//FRAME_INFO_OUTPUT
|
|
107
|
+
|
|
108
|
+
//@if SLICE_INFO_OUTPUT
|
|
109
|
+
#if defined(SLICE_INFO_OUTPUT)
|
|
110
|
+
|
|
111
|
+
#if !defined(FRAME_INFO_OUTPUT)
|
|
112
|
+
#define FRAME_INFO_OUTPUT
|
|
113
|
+
#endif//FRAME_INFO_OUTPUT
|
|
114
|
+
|
|
115
|
+
#if !defined(LAYER_INFO_OUTPUT)
|
|
116
|
+
#define LAYER_INFO_OUTPUT
|
|
117
|
+
#endif//LAYER_INFO_OUTPUT
|
|
118
|
+
|
|
119
|
+
#endif//SLICE_INFO_OUTPUT
|
|
120
|
+
|
|
121
|
+
#if defined(LAYER_INFO_OUTPUT)
|
|
122
|
+
|
|
123
|
+
#if !defined(FRAME_INFO_OUTPUT)
|
|
124
|
+
#define FRAME_INFO_OUTPUT
|
|
125
|
+
#endif//!FRAME_INFO_OUTPUT
|
|
126
|
+
|
|
127
|
+
#endif//LAYER_INFO_OUTPUT
|
|
128
|
+
|
|
129
|
+
//@if MB_TYPES_INFO_OUTPUT
|
|
130
|
+
#if defined(MB_TYPES_INFO_OUTPUT)
|
|
131
|
+
|
|
132
|
+
#if !defined(MB_TYPES_CHECK)
|
|
133
|
+
#define MB_TYPES_CHECK
|
|
134
|
+
#endif//MB_TYPES_CHECK
|
|
135
|
+
#endif//MB_TYPES_INFO_OUTPUT
|
|
136
|
+
|
|
137
|
+
#endif // AS264_COMMON_H_
|
|
138
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
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
|
+
* \file au_set.h
|
|
33
|
+
*
|
|
34
|
+
* \brief Interfaces introduced in Access Unit level based writer
|
|
35
|
+
*
|
|
36
|
+
* \date 05/18/2009 Created
|
|
37
|
+
* 05/21/2009 Added init_sps and init_pps
|
|
38
|
+
*
|
|
39
|
+
*************************************************************************************
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
#ifndef WELS_ACCESS_UNIT_WRITER_H__
|
|
43
|
+
#define WELS_ACCESS_UNIT_WRITER_H__
|
|
44
|
+
|
|
45
|
+
#include "parameter_sets.h"
|
|
46
|
+
#include "paraset_strategy.h"
|
|
47
|
+
#include "param_svc.h"
|
|
48
|
+
#include "utils.h"
|
|
49
|
+
namespace WelsEnc {
|
|
50
|
+
/*!
|
|
51
|
+
*************************************************************************************
|
|
52
|
+
* \brief to write Sequence Parameter Set (SPS)
|
|
53
|
+
*
|
|
54
|
+
* \param pSps SWelsSPS to be wrote
|
|
55
|
+
* \param bs_aux bitstream writer auxiliary
|
|
56
|
+
*
|
|
57
|
+
* \return 0 - successed
|
|
58
|
+
* 1 - failed
|
|
59
|
+
*
|
|
60
|
+
* \note Call it in case EWelsNalUnitType is SPS.
|
|
61
|
+
*************************************************************************************
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
int32_t WelsWriteSpsNal (SWelsSPS* pSps, SBitStringAux* pBitStringAux, int32_t* pSpsIdDelta);
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
/*!
|
|
68
|
+
*************************************************************************************
|
|
69
|
+
* \brief to write SubSet Sequence Parameter Set
|
|
70
|
+
*
|
|
71
|
+
* \param sub_sps subset pSps parsed
|
|
72
|
+
* \param bs_aux bitstream writer auxiliary
|
|
73
|
+
*
|
|
74
|
+
* \return 0 - successed
|
|
75
|
+
* 1 - failed
|
|
76
|
+
*
|
|
77
|
+
* \note Call it in case EWelsNalUnitType is SubSet SPS.
|
|
78
|
+
*************************************************************************************
|
|
79
|
+
*/
|
|
80
|
+
int32_t WelsWriteSubsetSpsSyntax (SSubsetSps* pSubsetSps, SBitStringAux* pBitStringAux , int32_t* pSpsIdDelta);
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
/*!
|
|
84
|
+
*************************************************************************************
|
|
85
|
+
* \brief to write Picture Parameter Set (PPS)
|
|
86
|
+
*
|
|
87
|
+
* \param pPps pPps
|
|
88
|
+
* \param bs_aux bitstream writer auxiliary
|
|
89
|
+
*
|
|
90
|
+
* \return 0 - successed
|
|
91
|
+
* 1 - failed
|
|
92
|
+
*
|
|
93
|
+
* \note Call it in case EWelsNalUnitType is PPS.
|
|
94
|
+
*************************************************************************************
|
|
95
|
+
*/
|
|
96
|
+
int32_t WelsWritePpsSyntax (SWelsPPS* pPps, SBitStringAux* pBitStringAux, IWelsParametersetStrategy* pParametersetStrategy);
|
|
97
|
+
|
|
98
|
+
/*!
|
|
99
|
+
* \brief initialize pSps based on configurable parameters in svc
|
|
100
|
+
* \param pSps SWelsSPS*
|
|
101
|
+
* \param pLayerParam SSpatialLayerConfig dependency layer parameter
|
|
102
|
+
* \param pLayerParamInternal SSpatialLayerInternal*, internal dependency layer parameter
|
|
103
|
+
* \param iSpsId SPS Id
|
|
104
|
+
* \return 0 - successful
|
|
105
|
+
* 1 - failed
|
|
106
|
+
*/
|
|
107
|
+
int32_t WelsInitSps (SWelsSPS* pSps, SSpatialLayerConfig* pLayerParam, SSpatialLayerInternal* pLayerParamInternal,
|
|
108
|
+
const uint32_t kuiIntraPeriod, const int32_t kiNumRefFrame,
|
|
109
|
+
const uint32_t kiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
|
|
110
|
+
const int32_t kiDlayerCount,bool bSVCBaselayer);
|
|
111
|
+
|
|
112
|
+
/*!
|
|
113
|
+
* \brief initialize subset pSps based on configurable parameters in svc
|
|
114
|
+
* \param pSubsetSps SSubsetSps*
|
|
115
|
+
* \param pLayerParam SSpatialLayerConfig dependency layer parameter
|
|
116
|
+
* \param pLayerParamInternal SSpatialLayerInternal*, internal dependency layer parameter
|
|
117
|
+
* \param kiSpsId SPS Id
|
|
118
|
+
* \return 0 - successful
|
|
119
|
+
* 1 - failed
|
|
120
|
+
*/
|
|
121
|
+
int32_t WelsInitSubsetSps (SSubsetSps* pSubsetSps, SSpatialLayerConfig* pLayerParam,
|
|
122
|
+
SSpatialLayerInternal* pLayerParamInternal,
|
|
123
|
+
const uint32_t kuiIntraPeriod, const int32_t kiNumRefFrame,
|
|
124
|
+
const uint32_t kiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
|
|
125
|
+
const int32_t kiDlayerCount);
|
|
126
|
+
|
|
127
|
+
/*!
|
|
128
|
+
* \brief initialize pPps based on configurable parameters and pSps(subset pSps) in svc
|
|
129
|
+
* \param pPps SWelsPPS*
|
|
130
|
+
* \param pSps SWelsSPS*
|
|
131
|
+
* \param pSubsetSps SSubsetSps*
|
|
132
|
+
* \param kbDeblockingFilterPresentFlag bool
|
|
133
|
+
* \param kiPpsId PPS Id
|
|
134
|
+
* \param kbUsingSubsetSps bool
|
|
135
|
+
* \return 0 - successful
|
|
136
|
+
* 1 - failed
|
|
137
|
+
*/
|
|
138
|
+
int32_t WelsInitPps (SWelsPPS* pPps,
|
|
139
|
+
SWelsSPS* pSps,
|
|
140
|
+
SSubsetSps* pSubsetSps,
|
|
141
|
+
const uint32_t kuiPpsId,
|
|
142
|
+
const bool kbDeblockingFilterPresentFlag,
|
|
143
|
+
const bool kbUsingSubsetSps,
|
|
144
|
+
const bool kbEntropyCodingModeFlag);
|
|
145
|
+
|
|
146
|
+
int32_t WelsCheckRefFrameLimitationNumRefFirst (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam);
|
|
147
|
+
int32_t WelsCheckRefFrameLimitationLevelIdcFirst (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam);
|
|
148
|
+
|
|
149
|
+
int32_t WelsAdjustLevel (SSpatialLayerConfig* pSpatialLayer,const SLevelLimits *pCurLevel);
|
|
150
|
+
|
|
151
|
+
}
|
|
152
|
+
#endif//WELS_ACCESS_UNIT_PARSER_H__
|