@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,199 @@
|
|
|
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
|
+
* \file au_parser.h
|
|
32
|
+
*
|
|
33
|
+
* \brief Interfaces introduced in Access Unit level based parser
|
|
34
|
+
*
|
|
35
|
+
* \date 03/10/2009 Created
|
|
36
|
+
*
|
|
37
|
+
*************************************************************************************
|
|
38
|
+
*/
|
|
39
|
+
#ifndef WELS_ACCESS_UNIT_PARSER_H__
|
|
40
|
+
#define WELS_ACCESS_UNIT_PARSER_H__
|
|
41
|
+
#include "typedefs.h"
|
|
42
|
+
#include "wels_common_basis.h"
|
|
43
|
+
#include "nal_prefix.h"
|
|
44
|
+
#include "dec_frame.h"
|
|
45
|
+
#include "bit_stream.h"
|
|
46
|
+
#include "parameter_sets.h"
|
|
47
|
+
#include "decoder_context.h"
|
|
48
|
+
|
|
49
|
+
namespace WelsDec {
|
|
50
|
+
|
|
51
|
+
/*!
|
|
52
|
+
*************************************************************************************
|
|
53
|
+
* \brief Start Code Prefix (0x 00 00 00 01) detection
|
|
54
|
+
*
|
|
55
|
+
* \param pBuf bitstream payload buffer
|
|
56
|
+
* \param pOffset offset between NAL rbsp and original bitsteam that
|
|
57
|
+
* start code prefix is seperated from.
|
|
58
|
+
* \param iBufSize count size of buffer
|
|
59
|
+
*
|
|
60
|
+
* \return RBSP buffer of start code prefix exclusive
|
|
61
|
+
*
|
|
62
|
+
* \note N/A
|
|
63
|
+
*************************************************************************************
|
|
64
|
+
*/
|
|
65
|
+
uint8_t* DetectStartCodePrefix (const uint8_t* kpBuf, int32_t* pOffset, int32_t iBufSize);
|
|
66
|
+
|
|
67
|
+
/*!
|
|
68
|
+
*************************************************************************************
|
|
69
|
+
* \brief to parse network abstraction layer unit,
|
|
70
|
+
* escape emulation_prevention_three_byte within it
|
|
71
|
+
former name is parse_nal
|
|
72
|
+
*
|
|
73
|
+
* \param pCtx decoder context
|
|
74
|
+
* \param pNalUnitHeader parsed result of NAL Unit Header to output
|
|
75
|
+
* \param pSrcRbsp bitstream buffer to input
|
|
76
|
+
* \param iSrcRbspLen length size of bitstream buffer payload
|
|
77
|
+
* \param pSrcNal
|
|
78
|
+
* \param iSrcNalLen
|
|
79
|
+
* \param pConsumedBytes consumed bytes during parsing
|
|
80
|
+
*
|
|
81
|
+
* \return decoded bytes payload, might be (pSrcRbsp+1) if no escapes
|
|
82
|
+
*
|
|
83
|
+
* \note N/A
|
|
84
|
+
*************************************************************************************
|
|
85
|
+
*/
|
|
86
|
+
uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeader, uint8_t* pSrcRbsp,
|
|
87
|
+
int32_t iSrcRbspLen, uint8_t* pSrcNal, int32_t iSrcNalLen, int32_t* pConsumedBytes);
|
|
88
|
+
|
|
89
|
+
int32_t ParseNonVclNal (PWelsDecoderContext pCtx, uint8_t* pRbsp, const int32_t kiSrcLen, uint8_t* pSrcNal,
|
|
90
|
+
const int32_t kSrcNalLen);
|
|
91
|
+
|
|
92
|
+
int32_t ParseRefBasePicMarking (PBitStringAux pBs, PRefBasePicMarking pRefBasePicMarking);
|
|
93
|
+
|
|
94
|
+
int32_t ParsePrefixNalUnit (PWelsDecoderContext pCtx, PBitStringAux pBs);
|
|
95
|
+
|
|
96
|
+
bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, const PNalUnit kpLastNal,
|
|
97
|
+
const PSps kpSps);
|
|
98
|
+
bool CheckAccessUnitBoundaryExt (PNalUnitHeaderExt pLastNalHdrExt, PNalUnitHeaderExt pCurNalHeaderExt,
|
|
99
|
+
PSliceHeader pLastSliceHeader, PSliceHeader pCurSliceHeader);
|
|
100
|
+
bool CheckNextAuNewSeq (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, const PSps kpSps);
|
|
101
|
+
|
|
102
|
+
/*!
|
|
103
|
+
*************************************************************************************
|
|
104
|
+
* \brief to parse Sequence Parameter Set (SPS)
|
|
105
|
+
*
|
|
106
|
+
* \param pCtx Decoder context
|
|
107
|
+
* \param pBsAux bitstream reader auxiliary
|
|
108
|
+
* \param pPicWidth picture width current Sps represented
|
|
109
|
+
* \param pPicHeight picture height current Sps represented
|
|
110
|
+
*
|
|
111
|
+
* \return 0 - successed
|
|
112
|
+
* 1 - failed
|
|
113
|
+
*
|
|
114
|
+
* \note Call it in case eNalUnitType is SPS.
|
|
115
|
+
*************************************************************************************
|
|
116
|
+
*/
|
|
117
|
+
int32_t ParseSps (PWelsDecoderContext pCtx, PBitStringAux pBsAux, int32_t* pPicWidth, int32_t* pPicHeight,
|
|
118
|
+
uint8_t* pSrcNal, const int32_t kSrcNalLen);
|
|
119
|
+
|
|
120
|
+
/*!
|
|
121
|
+
*************************************************************************************
|
|
122
|
+
* \brief to parse Picture Parameter Set (PPS)
|
|
123
|
+
*
|
|
124
|
+
* \param pCtx Decoder context
|
|
125
|
+
* \param pPpsList pps list
|
|
126
|
+
* \param pBsAux bitstream reader auxiliary
|
|
127
|
+
*
|
|
128
|
+
* \return 0 - successed
|
|
129
|
+
* 1 - failed
|
|
130
|
+
*
|
|
131
|
+
* \note Call it in case eNalUnitType is PPS.
|
|
132
|
+
*************************************************************************************
|
|
133
|
+
*/
|
|
134
|
+
int32_t ParsePps (PWelsDecoderContext pCtx, PPps pPpsList, PBitStringAux pBsAux, uint8_t* pSrcNal,
|
|
135
|
+
const int32_t kSrcNalLen);
|
|
136
|
+
|
|
137
|
+
/*!
|
|
138
|
+
*************************************************************************************
|
|
139
|
+
* \brief to parse Video Usability Information (VUI) parameter of the SPS
|
|
140
|
+
*
|
|
141
|
+
* \param pCtx Decoder context
|
|
142
|
+
* \param pSps the sps which current Vui parameter belongs to
|
|
143
|
+
* \param pBsAux bitstream reader auxiliary
|
|
144
|
+
*
|
|
145
|
+
* \return 0 - successed
|
|
146
|
+
* 1 - failed
|
|
147
|
+
*
|
|
148
|
+
* \note Call it in case the flag "vui_parameters_present_flag" in sps is true.
|
|
149
|
+
*************************************************************************************
|
|
150
|
+
*/
|
|
151
|
+
int32_t ParseVui (PWelsDecoderContext pCtx, PSps pSps, PBitStringAux pBsAux);
|
|
152
|
+
|
|
153
|
+
/*!
|
|
154
|
+
*************************************************************************************
|
|
155
|
+
* \brief to parse scaling list message payload
|
|
156
|
+
*
|
|
157
|
+
* \param PPS SPS scaling list matrix message to be parsed output
|
|
158
|
+
* \param pBsAux bitstream reader auxiliary
|
|
159
|
+
*
|
|
160
|
+
* \return 0 - successed
|
|
161
|
+
* 1 - failed
|
|
162
|
+
*
|
|
163
|
+
* \note Call it in case scaling matrix present at sps or pps
|
|
164
|
+
*************************************************************************************
|
|
165
|
+
*/
|
|
166
|
+
int32_t SetScalingListValue (uint8_t* pScalingList, int iScalingListNum, bool* bUseDefaultScalingMatrixFlag,
|
|
167
|
+
PBitStringAux pBsAux);
|
|
168
|
+
int32_t ParseScalingList (PSps pSps, PBitStringAux pBs, bool bPPS, const bool kbTrans8x8ModeFlag,
|
|
169
|
+
bool* bScalingListPresentFlag, uint8_t (*iScalingList4x4)[16], uint8_t (*iScalingList8x8)[64]);
|
|
170
|
+
/*!
|
|
171
|
+
*************************************************************************************
|
|
172
|
+
* \brief to parse SEI message payload
|
|
173
|
+
*
|
|
174
|
+
* \param pSei sei message to be parsed output
|
|
175
|
+
* \param pBsAux bitstream reader auxiliary
|
|
176
|
+
*
|
|
177
|
+
* \return 0 - successed
|
|
178
|
+
* 1 - failed
|
|
179
|
+
*
|
|
180
|
+
* \note Call it in case eNalUnitType is NAL_UNIT_SEI.
|
|
181
|
+
*************************************************************************************
|
|
182
|
+
*/
|
|
183
|
+
int32_t ParseSei (void* pSei, PBitStringAux pBsAux); // reserved Sei_Msg type
|
|
184
|
+
|
|
185
|
+
/*!
|
|
186
|
+
*************************************************************************************
|
|
187
|
+
* \brief reset fmo list due to got Sps now
|
|
188
|
+
*
|
|
189
|
+
* \param pCtx decoder context
|
|
190
|
+
*
|
|
191
|
+
* \return count number of fmo context units are reset
|
|
192
|
+
*************************************************************************************
|
|
193
|
+
*/
|
|
194
|
+
int32_t ResetFmoList (PWelsDecoderContext pCtx);
|
|
195
|
+
|
|
196
|
+
} // namespace WelsDec
|
|
197
|
+
|
|
198
|
+
#endif//WELS_ACCESS_UNIT_PARSER_H__
|
|
199
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* \copy
|
|
3
|
+
* Copyright (c) 2004-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
|
+
//bit_stream.h - bit-stream reading and / writing auxiliary data
|
|
34
|
+
#ifndef WELS_BIT_STREAM_H__
|
|
35
|
+
#define WELS_BIT_STREAM_H__
|
|
36
|
+
|
|
37
|
+
#include "typedefs.h"
|
|
38
|
+
#include "wels_common_defs.h"
|
|
39
|
+
#include "golomb_common.h"
|
|
40
|
+
|
|
41
|
+
using namespace WelsCommon;
|
|
42
|
+
|
|
43
|
+
namespace WelsDec {
|
|
44
|
+
|
|
45
|
+
/*!
|
|
46
|
+
* \brief input bits for decoder or initialize bitstream writing in encoder
|
|
47
|
+
*
|
|
48
|
+
* \param pBitString Bit string auxiliary pointer
|
|
49
|
+
* \param kpBuf bit-stream buffer
|
|
50
|
+
* \param kiSize size in bits for decoder; size in bytes for encoder
|
|
51
|
+
*
|
|
52
|
+
* \return size of buffer data in byte; failed in -1 return
|
|
53
|
+
*/
|
|
54
|
+
int32_t DecInitBits (PBitStringAux pBitString, const uint8_t* kpBuf, const int32_t kiSize);
|
|
55
|
+
|
|
56
|
+
int32_t InitReadBits (PBitStringAux pBitString, intX_t iEndOffset);
|
|
57
|
+
|
|
58
|
+
void RBSP2EBSP (uint8_t* pDstBuf, uint8_t* pSrcBuf, const int32_t kiSize);
|
|
59
|
+
|
|
60
|
+
} // namespace WelsDec
|
|
61
|
+
|
|
62
|
+
#endif//WELS_BIT_STREAM_H__
|
|
@@ -0,0 +1,111 @@
|
|
|
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
|
+
* \file cabac_decoder.h
|
|
32
|
+
*
|
|
33
|
+
* \brief Interfaces introduced for cabac decoder
|
|
34
|
+
*
|
|
35
|
+
* \date 10/10/2014 Created
|
|
36
|
+
*
|
|
37
|
+
*************************************************************************************
|
|
38
|
+
*/
|
|
39
|
+
#ifndef WELS_CABAC_DECODER_H__
|
|
40
|
+
#define WELS_CABAC_DECODER_H__
|
|
41
|
+
|
|
42
|
+
#include "decoder_context.h"
|
|
43
|
+
#include "error_code.h"
|
|
44
|
+
#include "wels_common_defs.h"
|
|
45
|
+
namespace WelsDec {
|
|
46
|
+
static const uint8_t g_kRenormTable256[256] = {
|
|
47
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
|
48
|
+
5, 5, 5, 5, 5, 5, 5, 5,
|
|
49
|
+
4, 4, 4, 4, 4, 4, 4, 4,
|
|
50
|
+
4, 4, 4, 4, 4, 4, 4, 4,
|
|
51
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
|
52
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
|
53
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
|
54
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
|
55
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
56
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
57
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
58
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
59
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
60
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
61
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
62
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
|
63
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
64
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
65
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
66
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
67
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
68
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
69
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
70
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
71
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
72
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
73
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
74
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
75
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
76
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
77
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
78
|
+
1, 1, 1, 1, 1, 1, 1, 1
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
//1. CABAC context initialization
|
|
83
|
+
void WelsCabacGlobalInit (PWelsDecoderContext pCabacCtx);
|
|
84
|
+
void WelsCabacContextInit (PWelsDecoderContext pCtx, uint8_t eSliceType, int32_t iCabacInitIdc, int32_t iQp);
|
|
85
|
+
|
|
86
|
+
//2. decoding Engine initialization
|
|
87
|
+
int32_t InitCabacDecEngineFromBS (PWelsCabacDecEngine pDecEngine, SBitStringAux* pBsAux);
|
|
88
|
+
void RestoreCabacDecEngineToBS (PWelsCabacDecEngine pDecEngine, SBitStringAux* pBsAux);
|
|
89
|
+
//3. actual decoding
|
|
90
|
+
int32_t Read32BitsCabac (PWelsCabacDecEngine pDecEngine, uint32_t& uiValue, int32_t& iNumBitsRead);
|
|
91
|
+
int32_t DecodeBinCabac (PWelsCabacDecEngine pDecEngine, PWelsCabacCtx pBinCtx, uint32_t& uiBit);
|
|
92
|
+
int32_t DecodeBypassCabac (PWelsCabacDecEngine pDecEngine, uint32_t& uiBinVal);
|
|
93
|
+
int32_t DecodeTerminateCabac (PWelsCabacDecEngine pDecEngine, uint32_t& uiBinVal);
|
|
94
|
+
|
|
95
|
+
//4. unary parsing
|
|
96
|
+
int32_t DecodeUnaryBinCabac (PWelsCabacDecEngine pDecEngine, PWelsCabacCtx pBinCtx, int32_t iCtxOffset,
|
|
97
|
+
uint32_t& uiSymVal);
|
|
98
|
+
|
|
99
|
+
//5. EXGk parsing
|
|
100
|
+
int32_t DecodeExpBypassCabac (PWelsCabacDecEngine pDecEngine, int32_t iCount, uint32_t& uiSymVal);
|
|
101
|
+
uint32_t DecodeUEGLevelCabac (PWelsCabacDecEngine pDecEngine, PWelsCabacCtx pBinCtx, uint32_t& uiBinVal);
|
|
102
|
+
int32_t DecodeUEGMvCabac (PWelsCabacDecEngine pDecEngine, PWelsCabacCtx pBinCtx, uint32_t iMaxC, uint32_t& uiCode);
|
|
103
|
+
|
|
104
|
+
#define WELS_CABAC_HALF 0x01FE
|
|
105
|
+
#define WELS_CABAC_QUARTER 0x0100
|
|
106
|
+
#define WELS_CABAC_FALSE_RETURN(iErrorInfo) \
|
|
107
|
+
if(iErrorInfo) { \
|
|
108
|
+
return iErrorInfo; \
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
#endif
|
|
@@ -0,0 +1,118 @@
|
|
|
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 deblocking.h
|
|
33
|
+
*
|
|
34
|
+
* \brief Interfaces introduced in frame deblocking filtering
|
|
35
|
+
*
|
|
36
|
+
* \date 05/14/2009 Created
|
|
37
|
+
*
|
|
38
|
+
*************************************************************************************
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
#ifndef WELS_DEBLOCKING_H__
|
|
42
|
+
#define WELS_DEBLOCKING_H__
|
|
43
|
+
|
|
44
|
+
#include "decoder_context.h"
|
|
45
|
+
#include "deblocking_common.h"
|
|
46
|
+
namespace WelsDec {
|
|
47
|
+
|
|
48
|
+
/*!
|
|
49
|
+
* \brief deblocking module initialize
|
|
50
|
+
*
|
|
51
|
+
* \param pf
|
|
52
|
+
* cpu
|
|
53
|
+
*
|
|
54
|
+
* \return NONE
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
void DeblockingInit (PDeblockingFunc pDeblockingFunc, int32_t iCpu);
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/*!
|
|
61
|
+
* \brief deblocking filtering target slice
|
|
62
|
+
*
|
|
63
|
+
* \param dec Wels decoder context
|
|
64
|
+
*
|
|
65
|
+
* \return NONE
|
|
66
|
+
*/
|
|
67
|
+
void WelsDeblockingFilterSlice (PWelsDecoderContext pCtx, PDeblockingFilterMbFunc pDeblockMb);
|
|
68
|
+
|
|
69
|
+
/*!
|
|
70
|
+
* \brief AVC slice init deblocking filtering target layer
|
|
71
|
+
*
|
|
72
|
+
* \in and out param SDeblockingFilter
|
|
73
|
+
* \in and out param iFilterIdc
|
|
74
|
+
*
|
|
75
|
+
* \return NONE
|
|
76
|
+
*/
|
|
77
|
+
void WelsDeblockingInitFilter (PWelsDecoderContext pCtx, SDeblockingFilter& pFilter, int32_t& iFilterIdc);
|
|
78
|
+
|
|
79
|
+
/*!
|
|
80
|
+
* \brief AVC MB deblocking filtering target layer
|
|
81
|
+
*
|
|
82
|
+
* \param DqLayer which has the current location of MB to be deblocked.
|
|
83
|
+
*
|
|
84
|
+
* \return NONE
|
|
85
|
+
*/
|
|
86
|
+
void WelsDeblockingFilterMB (PDqLayer pCurDqLayer, SDeblockingFilter& pFilter, int32_t& iFilterIdc,
|
|
87
|
+
PDeblockingFilterMbFunc pDeblockMb);
|
|
88
|
+
|
|
89
|
+
/*!
|
|
90
|
+
* \brief pixel deblocking filtering
|
|
91
|
+
*
|
|
92
|
+
* \param filter deblocking filter
|
|
93
|
+
* \param pix pixel value
|
|
94
|
+
* \param stride frame stride
|
|
95
|
+
* \param bs boundary strength
|
|
96
|
+
*
|
|
97
|
+
* \return NONE
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
uint32_t DeblockingBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLayer pCurDqLayer, int32_t iEdge,
|
|
101
|
+
int32_t iNeighMb, int32_t iMbXy);
|
|
102
|
+
uint32_t DeblockingBSliceBsMarginalMBAvcbase (PDqLayer pCurDqLayer, int32_t iEdge, int32_t iNeighMb, int32_t iMbXy);
|
|
103
|
+
|
|
104
|
+
int32_t DeblockingAvailableNoInterlayer (PDqLayer pCurDqLayer, int32_t iFilterIdc);
|
|
105
|
+
|
|
106
|
+
void WelsDeblockingMb (PDqLayer pCurDqLayer, PDeblockingFilter pFilter, int32_t iBoundryFlag);
|
|
107
|
+
|
|
108
|
+
inline int8_t* GetPNzc (PDqLayer pCurDqLayer, int32_t iMbXy) {
|
|
109
|
+
if (pCurDqLayer->pDec != NULL && pCurDqLayer->pDec->pNzc != NULL) {
|
|
110
|
+
return pCurDqLayer->pDec->pNzc[iMbXy];
|
|
111
|
+
}
|
|
112
|
+
return pCurDqLayer->pNzc[iMbXy];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
} // namespace WelsDec
|
|
116
|
+
|
|
117
|
+
#endif //WELS_DEBLOCKING_H__
|
|
118
|
+
|
|
@@ -0,0 +1,156 @@
|
|
|
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
|
+
//dec_frame.h
|
|
34
|
+
#ifndef WELS_DEC_FRAME_H__
|
|
35
|
+
#define WELS_DEC_FRAME_H__
|
|
36
|
+
|
|
37
|
+
#include "typedefs.h"
|
|
38
|
+
#include "wels_const.h"
|
|
39
|
+
#include "wels_common_basis.h"
|
|
40
|
+
#include "parameter_sets.h"
|
|
41
|
+
#include "nal_prefix.h"
|
|
42
|
+
#include "slice.h"
|
|
43
|
+
#include "picture.h"
|
|
44
|
+
#include "bit_stream.h"
|
|
45
|
+
#include "fmo.h"
|
|
46
|
+
|
|
47
|
+
namespace WelsDec {
|
|
48
|
+
|
|
49
|
+
///////////////////////////////////DQ Layer level///////////////////////////////////
|
|
50
|
+
typedef struct TagDqLayer SDqLayer;
|
|
51
|
+
typedef SDqLayer* PDqLayer;
|
|
52
|
+
typedef struct TagLayerInfo {
|
|
53
|
+
SNalUnitHeaderExt sNalHeaderExt;
|
|
54
|
+
SSlice sSliceInLayer; // Here Slice identify to Frame on concept
|
|
55
|
+
PSubsetSps pSubsetSps; // current pSubsetSps used, memory alloc in external
|
|
56
|
+
PSps pSps; // current sps based avc used, memory alloc in external
|
|
57
|
+
PPps pPps; // current pps used
|
|
58
|
+
} SLayerInfo, *PLayerInfo;
|
|
59
|
+
/* Layer Representation */
|
|
60
|
+
|
|
61
|
+
struct TagDqLayer {
|
|
62
|
+
SLayerInfo sLayerInfo;
|
|
63
|
+
|
|
64
|
+
PBitStringAux pBitStringAux; // pointer to SBitStringAux
|
|
65
|
+
PFmo pFmo; // Current fmo context pointer used
|
|
66
|
+
uint32_t* pMbType;
|
|
67
|
+
int32_t* pSliceIdc; // using int32_t for slice_idc
|
|
68
|
+
int16_t (*pMv[LIST_A])[MB_BLOCK4x4_NUM][MV_A];
|
|
69
|
+
int16_t (*pMvd[LIST_A])[MB_BLOCK4x4_NUM][MV_A];
|
|
70
|
+
int8_t (*pRefIndex[LIST_A])[MB_BLOCK4x4_NUM];
|
|
71
|
+
int8_t (*pDirect)[MB_BLOCK4x4_NUM];
|
|
72
|
+
bool* pNoSubMbPartSizeLessThan8x8Flag;
|
|
73
|
+
bool* pTransformSize8x8Flag;
|
|
74
|
+
int8_t* pLumaQp;
|
|
75
|
+
int8_t (*pChromaQp)[2];
|
|
76
|
+
int8_t* pCbp;
|
|
77
|
+
uint16_t *pCbfDc;
|
|
78
|
+
int8_t (*pNzc)[24];
|
|
79
|
+
int8_t (*pNzcRs)[24];
|
|
80
|
+
int8_t* pResidualPredFlag;
|
|
81
|
+
int8_t* pInterPredictionDoneFlag;
|
|
82
|
+
bool* pMbCorrectlyDecodedFlag;
|
|
83
|
+
bool* pMbRefConcealedFlag;
|
|
84
|
+
int16_t (*pScaledTCoeff)[MB_COEFF_LIST_SIZE];
|
|
85
|
+
int8_t (*pIntraPredMode)[8]; //0~3 top4x4 ; 4~6 left 4x4; 7 intra16x16
|
|
86
|
+
int8_t (*pIntra4x4FinalMode)[MB_BLOCK4x4_NUM];
|
|
87
|
+
uint8_t *pIntraNxNAvailFlag;
|
|
88
|
+
int8_t* pChromaPredMode;
|
|
89
|
+
//uint8_t (*motion_pred_flag[LIST_A])[MB_PARTITION_SIZE]; // 8x8
|
|
90
|
+
uint32_t (*pSubMbType)[MB_SUB_PARTITION_SIZE];
|
|
91
|
+
int32_t iLumaStride;
|
|
92
|
+
int32_t iChromaStride;
|
|
93
|
+
uint8_t* pPred[3];
|
|
94
|
+
int32_t iMbX;
|
|
95
|
+
int32_t iMbY;
|
|
96
|
+
int32_t iMbXyIndex;
|
|
97
|
+
int32_t iMbWidth; // MB width of this picture, equal to sSps.iMbWidth
|
|
98
|
+
int32_t iMbHeight; // MB height of this picture, equal to sSps.iMbHeight;
|
|
99
|
+
|
|
100
|
+
/* Common syntax elements across all slices of a DQLayer */
|
|
101
|
+
int32_t iSliceIdcBackup;
|
|
102
|
+
uint32_t uiSpsId;
|
|
103
|
+
uint32_t uiPpsId;
|
|
104
|
+
uint32_t uiDisableInterLayerDeblockingFilterIdc;
|
|
105
|
+
int32_t iInterLayerSliceAlphaC0Offset;
|
|
106
|
+
int32_t iInterLayerSliceBetaOffset;
|
|
107
|
+
//SPosOffset sScaledRefLayer;
|
|
108
|
+
int32_t iSliceGroupChangeCycle;
|
|
109
|
+
|
|
110
|
+
PRefPicListReorderSyn pRefPicListReordering;
|
|
111
|
+
PPredWeightTabSyn pPredWeightTable;
|
|
112
|
+
PRefPicMarking pRefPicMarking; // Decoded reference picture marking syntaxs
|
|
113
|
+
PRefBasePicMarking pRefPicBaseMarking;
|
|
114
|
+
|
|
115
|
+
PPicture pRef; // reference picture pointer
|
|
116
|
+
PPicture pDec; // reconstruction picture pointer for layer
|
|
117
|
+
|
|
118
|
+
int16_t iColocMv[2][16][2]; //Colocated MV cache
|
|
119
|
+
int8_t iColocRefIndex[2][16]; //Colocated RefIndex cache
|
|
120
|
+
int8_t iColocIntra[16]; //Colocated Intra cache
|
|
121
|
+
|
|
122
|
+
bool bUseWeightPredictionFlag;
|
|
123
|
+
bool bUseWeightedBiPredIdc;
|
|
124
|
+
bool bStoreRefBasePicFlag; // iCurTid == 0 && iCurQid = 0 && bEncodeKeyPic = 1
|
|
125
|
+
bool bTCoeffLevelPredFlag;
|
|
126
|
+
bool bConstrainedIntraResamplingFlag;
|
|
127
|
+
uint8_t uiRefLayerDqId;
|
|
128
|
+
uint8_t uiRefLayerChromaPhaseXPlus1Flag;
|
|
129
|
+
uint8_t uiRefLayerChromaPhaseYPlus1;
|
|
130
|
+
uint8_t uiLayerDqId; // dq_id of current layer
|
|
131
|
+
bool bUseRefBasePicFlag; // whether reference pic or reference base pic is referred?
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
typedef struct TagGpuAvcLayer {
|
|
135
|
+
SLayerInfo sLayerInfo;
|
|
136
|
+
PBitStringAux pBitStringAux; // pointer to SBitStringAux
|
|
137
|
+
|
|
138
|
+
uint32_t* pMbType;
|
|
139
|
+
int32_t* pSliceIdc; // using int32_t for slice_idc
|
|
140
|
+
int8_t* pLumaQp;
|
|
141
|
+
int8_t* pCbp;
|
|
142
|
+
int8_t (*pNzc)[24];
|
|
143
|
+
int8_t (*pIntraPredMode)[8]; //0~3 top4x4 ; 4~6 left 4x4; 7 intra16x16
|
|
144
|
+
int32_t iMbX;
|
|
145
|
+
int32_t iMbY;
|
|
146
|
+
int32_t iMbXyIndex;
|
|
147
|
+
int32_t iMbWidth; // MB width of this picture, equal to sSps.iMbWidth
|
|
148
|
+
int32_t iMbHeight; // MB height of this picture, equal to sSps.iMbHeight;
|
|
149
|
+
|
|
150
|
+
} SGpuAvcDqLayer, *PGpuAvcDqLayer;
|
|
151
|
+
|
|
152
|
+
///////////////////////////////////////////////////////////////////////
|
|
153
|
+
|
|
154
|
+
} // namespace WelsDec
|
|
155
|
+
|
|
156
|
+
#endif//WELS_DEC_FRAME_H__
|