@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,240 @@
|
|
|
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 encoder_context.h
|
|
33
|
+
*
|
|
34
|
+
* \brief Main pData to be operated over Wels encoder all modules
|
|
35
|
+
*
|
|
36
|
+
* \date 2/4/2009 Created
|
|
37
|
+
*
|
|
38
|
+
*************************************************************************************
|
|
39
|
+
*/
|
|
40
|
+
#ifndef WELS_ENCODER_CONTEXT_H__
|
|
41
|
+
#define WELS_ENCODER_CONTEXT_H__
|
|
42
|
+
|
|
43
|
+
#include <stdio.h>
|
|
44
|
+
#include "typedefs.h"
|
|
45
|
+
#include "param_svc.h"
|
|
46
|
+
#include "nal_encap.h"
|
|
47
|
+
#include "picture.h"
|
|
48
|
+
#include "paraset_strategy.h"
|
|
49
|
+
#include "dq_map.h"
|
|
50
|
+
#include "stat.h"
|
|
51
|
+
#include "macros.h"
|
|
52
|
+
#include "rc.h"
|
|
53
|
+
#include "as264_common.h"
|
|
54
|
+
#include "wels_preprocess.h"
|
|
55
|
+
#include "wels_func_ptr_def.h"
|
|
56
|
+
#include "crt_util_safe_x.h"
|
|
57
|
+
#include "utils.h"
|
|
58
|
+
|
|
59
|
+
#include "mt_defs.h" // for multiple threadin,
|
|
60
|
+
#include "WelsThreadLib.h"
|
|
61
|
+
#include "wels_task_management.h"
|
|
62
|
+
|
|
63
|
+
namespace WelsEnc {
|
|
64
|
+
|
|
65
|
+
class IWelsTaskManage;
|
|
66
|
+
class IWelsReferenceStrategy;
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* reference list for each quality layer in SVC
|
|
70
|
+
*/
|
|
71
|
+
typedef struct TagRefList {
|
|
72
|
+
SPicture* pShortRefList[1 + MAX_SHORT_REF_COUNT]; // reference list 0 - int16_t
|
|
73
|
+
SPicture* pLongRefList[1 + MAX_REF_PIC_COUNT]; // reference list 1 - int32_t
|
|
74
|
+
SPicture* pNextBuffer;
|
|
75
|
+
SPicture* pRef[1 + MAX_REF_PIC_COUNT]; // plus 1 for swap intend
|
|
76
|
+
uint8_t uiShortRefCount;
|
|
77
|
+
uint8_t uiLongRefCount; // dependend on pRef pic module
|
|
78
|
+
} SRefList;
|
|
79
|
+
|
|
80
|
+
typedef struct TagLTRState {
|
|
81
|
+
// LTR mark feedback
|
|
82
|
+
uint32_t uiLtrMarkState; // LTR mark state, indicate whether there is a LTR mark feedback unsolved
|
|
83
|
+
int32_t iLtrMarkFbFrameNum;// the unsolved LTR mark feedback, the marked iFrameNum feedback from decoder
|
|
84
|
+
|
|
85
|
+
// LTR used as recovery reference
|
|
86
|
+
int32_t iLastRecoverFrameNum; // reserve the last LTR or IDR recover iFrameNum
|
|
87
|
+
int32_t iLastCorFrameNumDec; // reserved the last correct position in decoder side, use to select valid LTR to recover or to decide the LTR mark validation
|
|
88
|
+
int32_t iCurFrameNumInDec; // current iFrameNum in decoder side, use to select valid LTR to recover or to decide the LTR mark validation
|
|
89
|
+
|
|
90
|
+
// LTR mark
|
|
91
|
+
int32_t iLTRMarkMode; // direct mark or delay mark
|
|
92
|
+
int32_t iLTRMarkSuccessNum; //successful marked num, for mark mode switch
|
|
93
|
+
int32_t iCurLtrIdx;// current int32_t term reference index to mark
|
|
94
|
+
int32_t iLastLtrIdx[MAX_TEMPORAL_LAYER_NUM];
|
|
95
|
+
int32_t iSceneLtrIdx;// related to Scene LTR, used by screen content
|
|
96
|
+
|
|
97
|
+
uint32_t uiLtrMarkInterval;// the interval from the last int32_t term pRef mark
|
|
98
|
+
|
|
99
|
+
bool bLTRMarkingFlag; //decide whether current frame marked as LTR
|
|
100
|
+
bool bLTRMarkEnable; //when LTR is confirmed and the interval is no smaller than the marking period
|
|
101
|
+
bool bReceivedT0LostFlag; // indicate whether a t0 lost feedback is recieved, for LTR recovery
|
|
102
|
+
} SLTRState;
|
|
103
|
+
|
|
104
|
+
typedef struct TagSpatialPicIndex {
|
|
105
|
+
SPicture* pSrc; // I420 based and after color space converted
|
|
106
|
+
int32_t iDid; // dependency id
|
|
107
|
+
} SSpatialPicIndex;
|
|
108
|
+
|
|
109
|
+
typedef struct TagStrideTables {
|
|
110
|
+
int32_t* pStrideDecBlockOffset[MAX_DEPENDENCY_LAYER][2]; // [iDid][tid==0][24 x 4]: luma+chroma= 24 x 4
|
|
111
|
+
int32_t* pStrideEncBlockOffset[MAX_DEPENDENCY_LAYER]; // [iDid][24 x 4]: luma+chroma= 24 x 4
|
|
112
|
+
int16_t* pMbIndexX[MAX_DEPENDENCY_LAYER]; // [iDid][iMbX]: map for iMbX in each spatial layer coding
|
|
113
|
+
int16_t* pMbIndexY[MAX_DEPENDENCY_LAYER]; // [iDid][iMbY]: map for iMbY in each spatial layer coding
|
|
114
|
+
} SStrideTables;
|
|
115
|
+
|
|
116
|
+
typedef struct TagWelsEncCtx {
|
|
117
|
+
SLogContext sLogCtx;
|
|
118
|
+
// Input
|
|
119
|
+
SWelsSvcCodingParam* pSvcParam; // SVC parameter, WelsSVCParamConfig in svc_param_settings.h
|
|
120
|
+
|
|
121
|
+
int32_t* pSadCostMb;
|
|
122
|
+
/* MVD cost tables for Inter MB */
|
|
123
|
+
int32_t iMvRange;
|
|
124
|
+
uint16_t* pMvdCostTable; //[52]; // adaptive to spatial layers
|
|
125
|
+
int32_t iMvdCostTableSize; //the size of above table
|
|
126
|
+
int32_t iMvdCostTableStride; //the stride of above table
|
|
127
|
+
SMVUnitXY*
|
|
128
|
+
pMvUnitBlock4x4; // (*pMvUnitBlock4x4[2])[MB_BLOCK4x4_NUM]; // for store each 4x4 blocks' mv unit, the two swap after different d layer
|
|
129
|
+
int8_t*
|
|
130
|
+
pRefIndexBlock4x4; // (*pRefIndexBlock4x4[2])[MB_BLOCK8x8_NUM]; // for store each 4x4 blocks' pRef index, the two swap after different d layer
|
|
131
|
+
int8_t* pNonZeroCountBlocks; // (*pNonZeroCountBlocks)[MB_LUMA_CHROMA_BLOCK4x4_NUM];
|
|
132
|
+
int8_t*
|
|
133
|
+
pIntra4x4PredModeBlocks; // (*pIntra4x4PredModeBlocks)[INTRA_4x4_MODE_NUM]; //last byte is not used; the first 4 byte is for the bottom 12,13,14,15 4x4 block intra mode, and 3 byte for (3,7,11)
|
|
134
|
+
|
|
135
|
+
SMB** ppMbListD; // [MAX_DEPENDENCY_LAYER];
|
|
136
|
+
SStrideTables* pStrideTab; // stride tables for internal coding used
|
|
137
|
+
SWelsFuncPtrList* pFuncList;
|
|
138
|
+
|
|
139
|
+
SSliceThreading* pSliceThreading;
|
|
140
|
+
IWelsTaskManage* pTaskManage; //was planning to put it under CWelsH264SVCEncoder but it may be updated (lock/no lock) when param is changed
|
|
141
|
+
IWelsReferenceStrategy* pReferenceStrategy;
|
|
142
|
+
|
|
143
|
+
// pointers
|
|
144
|
+
SPicture* pEncPic; // pointer to current picture to be encoded
|
|
145
|
+
SPicture* pDecPic; // pointer to current picture being reconstructed
|
|
146
|
+
SPicture* pRefPic; // pointer to current reference picture
|
|
147
|
+
|
|
148
|
+
SDqLayer* pCurDqLayer; // DQ layer context used to being encoded currently, for reference base layer to refer: pCurDqLayer->pRefLayer if applicable
|
|
149
|
+
SDqLayer** ppDqLayerList; // overall DQ layers encoded for storage
|
|
150
|
+
|
|
151
|
+
SRefList** ppRefPicListExt; // reference picture list for SVC
|
|
152
|
+
SPicture* pRefList0[16];
|
|
153
|
+
SLTRState* pLtr;//[MAX_DEPENDENCY_LAYER];
|
|
154
|
+
bool bCurFrameMarkedAsSceneLtr;
|
|
155
|
+
// Derived
|
|
156
|
+
|
|
157
|
+
EWelsSliceType eSliceType; // currently coding slice type
|
|
158
|
+
EWelsNalUnitType eNalType; // NAL type
|
|
159
|
+
EWelsNalRefIdc eNalPriority; // NAL_Reference_Idc currently
|
|
160
|
+
EWelsNalRefIdc eLastNalPriority[MAX_DEPENDENCY_LAYER]; // NAL_Reference_Idc in last frame
|
|
161
|
+
uint8_t iNumRef0;
|
|
162
|
+
|
|
163
|
+
uint8_t uiDependencyId; // Idc of dependecy layer to be coded
|
|
164
|
+
uint8_t uiTemporalId; // Idc of temporal layer to be coded
|
|
165
|
+
bool bNeedPrefixNalFlag; // whether add prefix nal
|
|
166
|
+
|
|
167
|
+
// Rate control routine
|
|
168
|
+
SWelsSvcRc* pWelsSvcRc;
|
|
169
|
+
bool bCheckWindowStatusRefreshFlag;
|
|
170
|
+
int64_t iCheckWindowStartTs;
|
|
171
|
+
int64_t iCheckWindowCurrentTs;
|
|
172
|
+
int32_t iCheckWindowInterval;
|
|
173
|
+
int32_t iCheckWindowIntervalShift;
|
|
174
|
+
bool bCheckWindowShiftResetFlag;
|
|
175
|
+
int32_t iGlobalQp; // global qp
|
|
176
|
+
|
|
177
|
+
// VAA
|
|
178
|
+
SVAAFrameInfo* pVaa; // VAA information of reference
|
|
179
|
+
CWelsPreProcess* pVpp;
|
|
180
|
+
|
|
181
|
+
SWelsSPS* pSpsArray; // MAX_SPS_COUNT by standard compatible
|
|
182
|
+
SWelsSPS* pSps;
|
|
183
|
+
SWelsPPS* pPPSArray; // MAX_PPS_COUNT by standard compatible
|
|
184
|
+
SWelsPPS* pPps;
|
|
185
|
+
/* SVC only */
|
|
186
|
+
SSubsetSps* pSubsetArray; // MAX_SPS_COUNT by standard compatible
|
|
187
|
+
SSubsetSps* pSubsetSps;
|
|
188
|
+
int32_t iSpsNum; // number of pSps used
|
|
189
|
+
int32_t iSubsetSpsNum; // number of pSps used
|
|
190
|
+
int32_t iPpsNum; // number of pPps used
|
|
191
|
+
|
|
192
|
+
// Output
|
|
193
|
+
SWelsEncoderOutput* pOut; // for NAL raw pData (need allocating memory for sNalList internal)
|
|
194
|
+
uint8_t* pFrameBs; // restoring bitstream pBuffer of all NALs in a frame
|
|
195
|
+
int32_t iFrameBsSize; // count size of frame bs in bytes allocated
|
|
196
|
+
int32_t iPosBsBuffer; // current writing position of frame bs pBuffer
|
|
197
|
+
|
|
198
|
+
SSpatialPicIndex sSpatialIndexMap[MAX_DEPENDENCY_LAYER];
|
|
199
|
+
int32_t iSliceBufferSize[MAX_DEPENDENCY_LAYER];
|
|
200
|
+
|
|
201
|
+
bool bRefOfCurTidIsLtr[MAX_DEPENDENCY_LAYER][MAX_TEMPORAL_LEVEL];
|
|
202
|
+
// uint16_t uiIdrPicId; // IDR picture id: [0, 65535], this one is used for LTR
|
|
203
|
+
int32_t iMaxSliceCount;// maximal count number of slices for all layers observation
|
|
204
|
+
int16_t iActiveThreadsNum; // number of threads active so far
|
|
205
|
+
|
|
206
|
+
/*
|
|
207
|
+
* DQ layer idc map for svc encoding, might be a better scheme than that of design before,
|
|
208
|
+
* can aware idc of referencing layer and that idc of successive layer to be coded
|
|
209
|
+
*/
|
|
210
|
+
/* SVC only */
|
|
211
|
+
SDqIdc* pDqIdcMap; // overall DQ map of full scalability in specific frame (All full D/T/Q layers involved) // pDqIdcMap[dq_index] for each SDqIdc pData
|
|
212
|
+
|
|
213
|
+
SParaSetOffset sPSOVector;
|
|
214
|
+
SParaSetOffset* pPSOVector;
|
|
215
|
+
CMemoryAlign* pMemAlign;
|
|
216
|
+
|
|
217
|
+
#if defined(STAT_OUTPUT)
|
|
218
|
+
// overall stat pData, refer to SStatData in stat.h, in case avc to use stat[0][0]
|
|
219
|
+
SStatData sStatData [ MAX_DEPENDENCY_LAYER ] [ MAX_QUALITY_LEVEL ];
|
|
220
|
+
SStatSliceInfo sPerInfo;
|
|
221
|
+
#endif//STAT_OUTPUT
|
|
222
|
+
|
|
223
|
+
//related to Statistics
|
|
224
|
+
int64_t uiStartTimestamp;
|
|
225
|
+
SEncoderStatistics sEncoderStatistics[MAX_DEPENDENCY_LAYER];
|
|
226
|
+
int32_t iStatisticsLogInterval;
|
|
227
|
+
int64_t iLastStatisticsLogTs;
|
|
228
|
+
|
|
229
|
+
int32_t iEncoderError;
|
|
230
|
+
WELS_MUTEX mutexEncoderError;
|
|
231
|
+
bool bDeliveryFlag;
|
|
232
|
+
SStateCtx sWelsCabacContexts[4][WELS_QP_MAX + 1][WELS_CONTEXT_COUNT];
|
|
233
|
+
#ifdef ENABLE_FRAME_DUMP
|
|
234
|
+
bool bDependencyRecFlag[MAX_DEPENDENCY_LAYER];
|
|
235
|
+
#endif
|
|
236
|
+
int64_t uiLastTimestamp;
|
|
237
|
+
uint8_t* pDynamicBsBuffer[MAX_THREADS_NUM];
|
|
238
|
+
} sWelsEncCtx/*, *PWelsEncCtx*/;
|
|
239
|
+
}
|
|
240
|
+
#endif//sWelsEncCtx_H__
|
|
@@ -0,0 +1,124 @@
|
|
|
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 extern.h
|
|
33
|
+
*
|
|
34
|
+
* \brief extern interfaces between core and plus of wels encoder
|
|
35
|
+
*
|
|
36
|
+
* \date 4/21/2009 Created
|
|
37
|
+
*
|
|
38
|
+
*************************************************************************************
|
|
39
|
+
*/
|
|
40
|
+
#if !defined(WELS_ENCODER_EXTERN_H__)
|
|
41
|
+
#define WELS_ENCODER_EXTERN_H__
|
|
42
|
+
|
|
43
|
+
#include "typedefs.h"
|
|
44
|
+
#include "encoder_context.h"
|
|
45
|
+
|
|
46
|
+
namespace WelsEnc {
|
|
47
|
+
|
|
48
|
+
/*!
|
|
49
|
+
* \brief initialize source picture body
|
|
50
|
+
* \param kpSrc SSourcePicture*
|
|
51
|
+
* \param kiCsp internal csp format
|
|
52
|
+
* \param kiWidth widht of picture in pixels
|
|
53
|
+
* \param kiHeight height of picture in pixels
|
|
54
|
+
* \return successful - 0; otherwise none 0 for failed
|
|
55
|
+
*/
|
|
56
|
+
int32_t InitPic (const void* kpSrc, const int32_t kiCsp, const int32_t kiWidth, const int32_t kiHeight);
|
|
57
|
+
|
|
58
|
+
/*
|
|
59
|
+
* SVC core encoder external interfaces
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/*!
|
|
63
|
+
* \brief validate checking in parameter configuration
|
|
64
|
+
* \pParam pParam SWelsSvcCodingParam*
|
|
65
|
+
* \return successful - 0; otherwise none 0 for failed
|
|
66
|
+
*/
|
|
67
|
+
int32_t ParamValidationExt (SLogContext* pCtx, SWelsSvcCodingParam* pParam);
|
|
68
|
+
|
|
69
|
+
// GOM based RC related for uiSliceNum decision
|
|
70
|
+
void GomValidCheck (const int32_t kiMbWidth, const int32_t kiMbHeight, int32_t* pSliceNum);
|
|
71
|
+
|
|
72
|
+
/*!
|
|
73
|
+
* \brief initialize Wels avc encoder core library
|
|
74
|
+
* \param ppCtx sWelsEncCtx**
|
|
75
|
+
* \param para SWelsSvcCodingParam*
|
|
76
|
+
* \return successful - 0; otherwise none 0 for failed
|
|
77
|
+
*/
|
|
78
|
+
int32_t WelsInitEncoderExt (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pPara, SLogContext* pLogCtx,
|
|
79
|
+
SExistingParasetList* pExistingParasetList);
|
|
80
|
+
|
|
81
|
+
/*!
|
|
82
|
+
* \brief uninitialize Wels encoder core library
|
|
83
|
+
* \param pEncCtx sWelsEncCtx*
|
|
84
|
+
* \return none
|
|
85
|
+
*/
|
|
86
|
+
void WelsUninitEncoderExt (sWelsEncCtx** ppCtx);
|
|
87
|
+
|
|
88
|
+
/*!
|
|
89
|
+
* \brief core svc encoding process
|
|
90
|
+
*
|
|
91
|
+
* \param h sWelsEncCtx*, encoder context
|
|
92
|
+
* \param pFbi FrameBSInfo*
|
|
93
|
+
* \param kpSrcPic Source picture
|
|
94
|
+
* \return EFrameType (videoFrameTypeIDR/videoFrameTypeI/videoFrameTypeP)
|
|
95
|
+
*/
|
|
96
|
+
int32_t WelsEncoderEncodeExt (sWelsEncCtx*, SFrameBSInfo* pFbi, const SSourcePicture* kpSrcPic);
|
|
97
|
+
|
|
98
|
+
int32_t WelsEncoderEncodeParameterSets (sWelsEncCtx* pCtx, void* pDst);
|
|
99
|
+
|
|
100
|
+
/*
|
|
101
|
+
* Force coding IDR as follows
|
|
102
|
+
*/
|
|
103
|
+
int32_t ForceCodingIDR (sWelsEncCtx* pCtx,int32_t iLayerId);
|
|
104
|
+
|
|
105
|
+
/*!
|
|
106
|
+
* \brief Wels SVC encoder parameters adjustment
|
|
107
|
+
* SVC adjustment results in new requirement in memory blocks adjustment
|
|
108
|
+
*/
|
|
109
|
+
int32_t WelsBitRateVerification(SLogContext* pLogCtx,SSpatialLayerConfig* pLayerParam,int32_t iLayerId);
|
|
110
|
+
int32_t WelsEncoderParamAdjust (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pNew);
|
|
111
|
+
void WelsEncoderApplyFrameRate (SWelsSvcCodingParam* pParam);
|
|
112
|
+
int32_t WelsEncoderApplyBitRate (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam, int32_t iLayer);
|
|
113
|
+
int32_t WelsEncoderApplyBitVaryRang(SLogContext* pLogCtx, SWelsSvcCodingParam* pParam, int32_t iRang);
|
|
114
|
+
int32_t WelsEncoderApplyLTR (SLogContext* pLogCtx, sWelsEncCtx** ppCtx, SLTRConfig* pLTRValue);
|
|
115
|
+
int32_t DynSliceRealloc(sWelsEncCtx* pCtx,SFrameBSInfo* pFrameBsInfo,SLayerBSInfo* pLayerBsInfo);
|
|
116
|
+
int32_t FilterLTRRecoveryRequest (sWelsEncCtx* pCtx, SLTRRecoverRequest* pLTRRecoverRequest);
|
|
117
|
+
void CheckProfileSetting (SLogContext* pLogCtx,SWelsSvcCodingParam* pParam,int32_t iLayer, EProfileIdc uiProfileIdc);
|
|
118
|
+
void CheckLevelSetting (SLogContext* pLogCtx,SWelsSvcCodingParam* pParam,int32_t iLayer, ELevelIdc uiLevelIdc);
|
|
119
|
+
void CheckReferenceNumSetting (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam,int32_t iNumRef);
|
|
120
|
+
void FilterLTRMarkingFeedback (sWelsEncCtx* pCtx, SLTRMarkingFeedback* pLTRMarkingFeedback);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
#endif//WELS_ENCODER_CALLBACK_H__
|
|
124
|
+
|
|
@@ -0,0 +1,186 @@
|
|
|
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 get_intra_predictor.h
|
|
33
|
+
*
|
|
34
|
+
* \brief interfaces for get intra predictor about 16x16, 4x4, chroma.
|
|
35
|
+
*
|
|
36
|
+
* \date 4/2/2009 Created
|
|
37
|
+
*
|
|
38
|
+
*************************************************************************************
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
#ifndef GET_INTRA_PREDICTOR_H
|
|
42
|
+
#define GET_INTRA_PREDICTOR_H
|
|
43
|
+
|
|
44
|
+
#include "typedefs.h"
|
|
45
|
+
#include "wels_func_ptr_def.h"
|
|
46
|
+
|
|
47
|
+
namespace WelsEnc {
|
|
48
|
+
void WelsI4x4LumaPredV_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
49
|
+
void WelsI4x4LumaPredH_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
50
|
+
void WelsI4x4LumaPredDc_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
51
|
+
void WelsI4x4LumaPredDcLeft_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
52
|
+
void WelsI4x4LumaPredDcTop_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
53
|
+
void WelsI4x4LumaPredDcNA_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
54
|
+
|
|
55
|
+
void WelsI4x4LumaPredDDL_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
56
|
+
void WelsI4x4LumaPredDDLTop_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
57
|
+
void WelsI4x4LumaPredDDR_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
58
|
+
|
|
59
|
+
void WelsI4x4LumaPredVR_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
60
|
+
void WelsI4x4LumaPredHD_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
61
|
+
void WelsI4x4LumaPredVL_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
62
|
+
void WelsI4x4LumaPredVLTop_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
63
|
+
void WelsI4x4LumaPredHU_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
void WelsIChromaPredV_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
67
|
+
void WelsIChromaPredH_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
68
|
+
void WelsIChromaPredPlane_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
69
|
+
void WelsIChromaPredDc_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
70
|
+
void WelsIChromaPredDcLeft_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
71
|
+
void WelsIChromaPredDcTop_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
72
|
+
void WelsIChromaPredDcNA_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
73
|
+
|
|
74
|
+
void WelsI16x16ChromaPredVer (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
75
|
+
void WelsI16x16ChromaPredHor (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
76
|
+
|
|
77
|
+
void WelsI16x16LumaPredPlane_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
78
|
+
void WelsI16x16LumaPredDc_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
79
|
+
void WelsI16x16LumaPredDcLeft_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
80
|
+
void WelsI16x16LumaPredDcTop_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
81
|
+
void WelsI16x16LumaPredDcNA_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
82
|
+
|
|
83
|
+
#if defined(__cplusplus)
|
|
84
|
+
extern "C" {
|
|
85
|
+
#endif//__cplusplus
|
|
86
|
+
|
|
87
|
+
#if defined(X86_ASM)
|
|
88
|
+
void WelsFillingPred8to16_mmx (uint8_t* pPred, uint8_t* pValue);
|
|
89
|
+
void WelsFillingPred8x2to16_mmx (uint8_t* pPred, uint8_t* pValue);
|
|
90
|
+
void WelsFillingPred1to16_mmx (uint8_t* pPred, const uint8_t kuiValue);
|
|
91
|
+
void WelsFillingPred8x2to16_sse2 (uint8_t* pPred, uint8_t* pValue);
|
|
92
|
+
void WelsFillingPred1to16_sse2 (uint8_t* pPred, const uint8_t kuiValue);
|
|
93
|
+
|
|
94
|
+
//for intra-prediction ASM functions
|
|
95
|
+
void WelsI16x16LumaPredDc_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
96
|
+
void WelsI16x16LumaPredPlane_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
97
|
+
|
|
98
|
+
void WelsIChromaPredH_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
99
|
+
void WelsIChromaPredV_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
100
|
+
void WelsIChromaPredDc_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
101
|
+
void WelsIChromaPredPlane_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
102
|
+
|
|
103
|
+
void WelsI4x4LumaPredV_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
104
|
+
void WelsI4x4LumaPredH_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
105
|
+
void WelsI4x4LumaPredDc_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
106
|
+
void WelsI4x4LumaPredDDL_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
107
|
+
void WelsI4x4LumaPredDDR_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
108
|
+
void WelsI4x4LumaPredVR_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
109
|
+
void WelsI4x4LumaPredHD_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
110
|
+
void WelsI4x4LumaPredVL_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
111
|
+
void WelsI4x4LumaPredHU_mmx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
112
|
+
#endif//X86_ASM
|
|
113
|
+
|
|
114
|
+
#if defined(HAVE_NEON)
|
|
115
|
+
void WelsI16x16LumaPredDc_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
116
|
+
void WelsI16x16LumaPredPlane_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
117
|
+
|
|
118
|
+
void WelsI4x4LumaPredV_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
119
|
+
void WelsI4x4LumaPredH_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
120
|
+
void WelsI4x4LumaPredDDL_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
121
|
+
void WelsI4x4LumaPredDDR_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
122
|
+
void WelsI4x4LumaPredVL_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
123
|
+
void WelsI4x4LumaPredVR_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
124
|
+
void WelsI4x4LumaPredHU_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
125
|
+
void WelsI4x4LumaPredHD_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
126
|
+
|
|
127
|
+
void WelsIChromaPredV_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
128
|
+
void WelsIChromaPredH_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
129
|
+
void WelsIChromaPredDc_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
130
|
+
void WelsIChromaPredPlane_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
131
|
+
#endif//HAVE_NEON
|
|
132
|
+
|
|
133
|
+
#if defined(HAVE_NEON_AARCH64)
|
|
134
|
+
void WelsI16x16LumaPredDc_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
135
|
+
void WelsI16x16LumaPredPlane_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
136
|
+
void WelsI16x16LumaPredDcTop_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
137
|
+
void WelsI16x16LumaPredDcLeft_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
138
|
+
|
|
139
|
+
void WelsI4x4LumaPredH_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
140
|
+
void WelsI4x4LumaPredDDL_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
141
|
+
void WelsI4x4LumaPredDDLTop_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
142
|
+
void WelsI4x4LumaPredVL_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
143
|
+
void WelsI4x4LumaPredVLTop_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
144
|
+
void WelsI4x4LumaPredVR_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
145
|
+
void WelsI4x4LumaPredHU_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
146
|
+
void WelsI4x4LumaPredHD_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
147
|
+
void WelsI4x4LumaPredDc_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
148
|
+
void WelsI4x4LumaPredDcTop_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
149
|
+
|
|
150
|
+
void WelsIChromaPredV_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
151
|
+
void WelsIChromaPredH_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
152
|
+
void WelsIChromaPredDc_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
153
|
+
void WelsIChromaPredPlane_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
154
|
+
void WelsIChromaPredDcTop_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
155
|
+
#endif//HAVE_NEON_AARCH64
|
|
156
|
+
|
|
157
|
+
#if defined(HAVE_MMI)
|
|
158
|
+
void WelsI16x16LumaPredDc_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
159
|
+
void WelsI16x16LumaPredPlane_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
160
|
+
|
|
161
|
+
void WelsIChromaPredH_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
162
|
+
void WelsIChromaPredV_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
163
|
+
void WelsIChromaPredDc_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
164
|
+
void WelsIChromaPredPlane_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
165
|
+
#endif//HAVE_MMI
|
|
166
|
+
|
|
167
|
+
#if defined(HAVE_LSX)
|
|
168
|
+
void WelsI16x16LumaPredPlane_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
169
|
+
#endif//HAVE_LSX
|
|
170
|
+
|
|
171
|
+
#if defined(HAVE_LASX)
|
|
172
|
+
void WelsIChromaPredV_lasx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
173
|
+
void WelsIChromaPredH_lasx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
174
|
+
void WelsIChromaPredDc_lasx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
|
175
|
+
#endif//HAVE_LASX
|
|
176
|
+
|
|
177
|
+
#if defined(__cplusplus)
|
|
178
|
+
}
|
|
179
|
+
#endif//__cplusplus
|
|
180
|
+
|
|
181
|
+
void WelsInitIntraPredFuncs (SWelsFuncPtrList* pFuncList, const uint32_t kuiCpuFlag);
|
|
182
|
+
|
|
183
|
+
}
|
|
184
|
+
#endif //GET_INTRA_PREDICTOR_H
|
|
185
|
+
|
|
186
|
+
|