@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,431 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#*******************************************************************
|
|
3
|
+
# brief: multi-encoders comparision for openh264
|
|
4
|
+
# (one given sequence only)
|
|
5
|
+
# comparision almong encoders in \$TestEncoderList
|
|
6
|
+
#
|
|
7
|
+
# more detail, please refer to runUsage() and runBrief()
|
|
8
|
+
#
|
|
9
|
+
# date: 2015-12-16
|
|
10
|
+
#*******************************************************************
|
|
11
|
+
|
|
12
|
+
runUsage()
|
|
13
|
+
{
|
|
14
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
15
|
+
echo " Usage: "
|
|
16
|
+
echo " --$0 \$TestPicW \$TestPicH \$TestEncoderList"
|
|
17
|
+
echo ""
|
|
18
|
+
echo " --example:"
|
|
19
|
+
echo " $0 1280 720 h264enc_master h264enc_target1 h264enc_target2 "
|
|
20
|
+
echo ""
|
|
21
|
+
echo " Pre-test:"
|
|
22
|
+
echo " --1) copy welsenc.cfg from ./openh264/testbin/ to current dir"
|
|
23
|
+
echo " --2) set test YUV path in welsenc.cfg "
|
|
24
|
+
echo " --3) copy layer0.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
|
25
|
+
echo " --4) copy layer1.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
|
26
|
+
echo " --5) copy layer2.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
|
27
|
+
echo " --6) copy layer3.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
|
28
|
+
echo " layer0.cfg~layer3.cfg are used for multi-layers test cases"
|
|
29
|
+
echo ""
|
|
30
|
+
echo " --7) generate at least one encoder, "
|
|
31
|
+
echo " eg. h264enc_master----master branch as benchmark codec"
|
|
32
|
+
echo " h264enc_target----your branch CodecChanged as target codec"
|
|
33
|
+
echo ""
|
|
34
|
+
echo " --8) copy all tests codec to folder ./Encoder"
|
|
35
|
+
echo " --9) run below command line:"
|
|
36
|
+
echo " $0 \$TestPicW \$TestPicH \$TestEncoderList"
|
|
37
|
+
echo ""
|
|
38
|
+
echo " Post-test:"
|
|
39
|
+
echo " --1) temp cases log will be output in ./Trace-AllTestData"
|
|
40
|
+
echo " --2) all comparision data parsed from log files will be output to "
|
|
41
|
+
echo " related .csv file under ./Trace-AllTestData "
|
|
42
|
+
echo ""
|
|
43
|
+
echo " example:"
|
|
44
|
+
echo " --comparison almong h264enc_master h264enc_target1 h264enc_target2"
|
|
45
|
+
echo " for Zhuling_1280x720.yuv"
|
|
46
|
+
echo ""
|
|
47
|
+
echo " --run command as below:"
|
|
48
|
+
echo " $0 1280 720 h264enc_master h264enc_target1 h264enc_target2 "
|
|
49
|
+
echo ""
|
|
50
|
+
echo " --get final result files(.csv) under ./Trace-AllTestData"
|
|
51
|
+
echo ""
|
|
52
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
runBrief()
|
|
56
|
+
{
|
|
57
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
58
|
+
echo " brief:"
|
|
59
|
+
echo ""
|
|
60
|
+
echo " encoder veision comparision "
|
|
61
|
+
echo " --comparision almong encoders in \$TestEncoderList"
|
|
62
|
+
echo " --please generate at least one encoder and copy to folder ./Encoder"
|
|
63
|
+
echo " --script will run all test cases for each test encoder"
|
|
64
|
+
echo " and generate related trace log files for each encoder"
|
|
65
|
+
echo " --script will parse and extact data based on keyword from trace log file"
|
|
66
|
+
echo " and output to related .csv files for all encoder"
|
|
67
|
+
echo " --the test outout file will be put under ./Trace-AllTestData"
|
|
68
|
+
echo ""
|
|
69
|
+
echo " test cases:"
|
|
70
|
+
echo " --add more cases in function runGlobleInit()"
|
|
71
|
+
echo " --add new argument with for loop like rc. etc in function "
|
|
72
|
+
echo " runAllEncodeCasesAndGenerateLog()"
|
|
73
|
+
echo ""
|
|
74
|
+
echo " new data:"
|
|
75
|
+
echo " --currently only memory usage, you can add new data for your comparision"
|
|
76
|
+
echo " --need to add related data parse in function runParseTraceLog()"
|
|
77
|
+
echo ""
|
|
78
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
runPrompt()
|
|
82
|
+
{
|
|
83
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
84
|
+
echo ""
|
|
85
|
+
echo " ------Test completed!--------"
|
|
86
|
+
echo ""
|
|
87
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
88
|
+
echo " "
|
|
89
|
+
echo " --Total ${iTotalCaseNum} cases run for encoders: ${aEncoderList[@]}"
|
|
90
|
+
echo ""
|
|
91
|
+
echo " --Statistic files for comparision are list as below:"
|
|
92
|
+
echo " ${MemoryUsageStatic}"
|
|
93
|
+
echo ""
|
|
94
|
+
echo " --trace log files can be found under:"
|
|
95
|
+
echo " ${LogDir}"
|
|
96
|
+
echo ""
|
|
97
|
+
echo -e "\033[32m ********************************************************************* \033[0m"
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
runGlobleInit()
|
|
101
|
+
{
|
|
102
|
+
CurrenDir=`pwd`
|
|
103
|
+
LogDir="${CurrenDir}/Trace-AllTestData"
|
|
104
|
+
EncoderDir="${CurrenDir}/Encoder"
|
|
105
|
+
|
|
106
|
+
if [ ! -d ${LogDir} ]
|
|
107
|
+
then
|
|
108
|
+
mkdir ${LogDir}
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
LogFile="Log_EncTraceInfo.log"
|
|
113
|
+
MemoryUsageStatic="${LogDir}/MemoryUsage.csv"
|
|
114
|
+
TempEncoderList=""
|
|
115
|
+
for((i=0; i<${#aEncoderList[@]}; i++))
|
|
116
|
+
do
|
|
117
|
+
if [ -z "${TempEncoderList}" ]
|
|
118
|
+
then
|
|
119
|
+
TempEncoderList="${aEncoderList[$i]},"
|
|
120
|
+
else
|
|
121
|
+
TempEncoderList="${TempEncoderList} ${aEncoderList[$i]},"
|
|
122
|
+
fi
|
|
123
|
+
done
|
|
124
|
+
|
|
125
|
+
let "iTotalCaseNum=0"
|
|
126
|
+
let "MemoryUsage = 0"
|
|
127
|
+
echo "LogDir is ${LogDir}"
|
|
128
|
+
echo "MemoryUsageStatic file is ${MemoryUsageStatic}"
|
|
129
|
+
echo "SpatialLayerNum, ThreadNum, SliceMode, SliceNum, SlicMbNum, ${TempEncoderList}" >${MemoryUsageStatic}
|
|
130
|
+
|
|
131
|
+
echo "LogDir is ${LogDir}"
|
|
132
|
+
echo "MemoryUsageStatic file is ${MemoryUsageStatic}"
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
let "iTraceLevel=4"
|
|
136
|
+
let "iFrameToBeEncoded = 32"
|
|
137
|
+
let "iMaxNalSize=0"
|
|
138
|
+
#you can add more test case like rc, gop size, et.
|
|
139
|
+
#and add "for loop" in function runAllEncodeCasesAndGenerateLog()
|
|
140
|
+
aSpatialLayerNum=(1 2 3 4 )
|
|
141
|
+
aThreadIdc=(1 4)
|
|
142
|
+
aSliceMode=(0 1 2 3)
|
|
143
|
+
aSliceNum=(0 8 16 32)
|
|
144
|
+
aSliceMbNum=(0 960)
|
|
145
|
+
|
|
146
|
+
Encoder=""
|
|
147
|
+
sEncoderCommand=""
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
runCheck()
|
|
151
|
+
{
|
|
152
|
+
if [ ! -d ${EncoderDir} ]
|
|
153
|
+
then
|
|
154
|
+
echo "encoder folder does not exist, please following below command to copy encoder to test folder--./Encoder"
|
|
155
|
+
echo " mkdir Encoder"
|
|
156
|
+
echo " cp \${AllVersionEncoders} ./Encoder "
|
|
157
|
+
exit 1
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
let "bEncoderFlag = 0"
|
|
161
|
+
echo "aEncoderList is ${aEncoderList[@]} "
|
|
162
|
+
for file in ${aEncoderList[@]}
|
|
163
|
+
do
|
|
164
|
+
if [ -x ${EncoderDir}/${file} ]
|
|
165
|
+
then
|
|
166
|
+
let "bEncoderFlag = 1"
|
|
167
|
+
fi
|
|
168
|
+
done
|
|
169
|
+
|
|
170
|
+
if [ ${bEncoderFlag} -eq 0 ]
|
|
171
|
+
then
|
|
172
|
+
echo "no encoder under test folder, please following below command to copy encoder to test folder--./Encoder"
|
|
173
|
+
echo " cp \${AllVersionEncoders} ./Encoder "
|
|
174
|
+
echo " chmod u+x ./Encoder/* "
|
|
175
|
+
exit 1
|
|
176
|
+
fi
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
runGenerateSpatialLayerResolution()
|
|
181
|
+
{
|
|
182
|
+
SpatialLayerNum=$1
|
|
183
|
+
if [ -z "${SpatialLayerNum}" ]
|
|
184
|
+
then
|
|
185
|
+
let "SpatialLayerNum =1"
|
|
186
|
+
fi
|
|
187
|
+
|
|
188
|
+
let "PicW_L0= PicW / 8"
|
|
189
|
+
let "PicW_L1= PicW / 4"
|
|
190
|
+
let "PicW_L2= PicW / 2"
|
|
191
|
+
let "PicW_L3= PicW"
|
|
192
|
+
|
|
193
|
+
let "PicH_L0= PicH / 8"
|
|
194
|
+
let "PicH_L1= PicH / 4"
|
|
195
|
+
let "PicH_L2= PicH / 2"
|
|
196
|
+
let "PicH_L3= PicH"
|
|
197
|
+
|
|
198
|
+
if [ ${SpatialLayerNum} -eq 1 ]
|
|
199
|
+
then
|
|
200
|
+
aPicW=( ${PicW_L3} 0 0 0 )
|
|
201
|
+
aPicH=( ${PicH_L3} 0 0 0 )
|
|
202
|
+
|
|
203
|
+
elif [ ${SpatialLayerNum} -eq 2 ]
|
|
204
|
+
then
|
|
205
|
+
aPicW=( ${PicW_L2} ${PicW_L3} 0 0 )
|
|
206
|
+
aPicH=( ${PicH_L2} ${PicH_L3} 0 0 )
|
|
207
|
+
|
|
208
|
+
elif [ ${SpatialLayerNum} -eq 3 ]
|
|
209
|
+
then
|
|
210
|
+
aPicW=( ${PicW_L1} ${PicW_L2} ${PicW_L3} 0 )
|
|
211
|
+
aPicH=( ${PicH_L1} ${PicH_L2} ${PicH_L3} 0 )
|
|
212
|
+
|
|
213
|
+
elif [ ${SpatialLayerNum} -eq 4 ]
|
|
214
|
+
then
|
|
215
|
+
aPicW=( ${PicW_L0} ${PicW_L1} ${PicW_L2} ${PicW_L3} )
|
|
216
|
+
aPicH=( ${PicH_L0} ${PicH_L1} ${PicH_L2} ${PicH_L3} )
|
|
217
|
+
fi
|
|
218
|
+
|
|
219
|
+
echo "*************************************************************************"
|
|
220
|
+
echo " ${SpatialLayerNum} layers spactial resolution for ${PicW}x${PicH} are:"
|
|
221
|
+
echo ""
|
|
222
|
+
echo " aPicW is ${aPicW[@]}"
|
|
223
|
+
echo " aPicH is ${aPicH[@]}"
|
|
224
|
+
echo "*************************************************************************"
|
|
225
|
+
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
#parse data from encoder trace log
|
|
229
|
+
#you can add more key word to extract data from log file
|
|
230
|
+
runParseTraceLog()
|
|
231
|
+
{
|
|
232
|
+
TempLogFile=$1
|
|
233
|
+
let "MemoryUsage = 0"
|
|
234
|
+
|
|
235
|
+
echo "*****************************************"
|
|
236
|
+
echo "parsing trace log file"
|
|
237
|
+
echo "log file name is ${TempLogFile}"
|
|
238
|
+
echo "*****************************************"
|
|
239
|
+
|
|
240
|
+
if [ ! -e ${TempLogFile} ]
|
|
241
|
+
then
|
|
242
|
+
echo "LogFile ${TempLogFile} does not exist, please double check!"
|
|
243
|
+
return 1
|
|
244
|
+
fi
|
|
245
|
+
|
|
246
|
+
MemUsageInLog=""
|
|
247
|
+
while read line
|
|
248
|
+
do
|
|
249
|
+
if [[ "${line}" =~ "overall memory usage" ]]
|
|
250
|
+
then
|
|
251
|
+
#[OpenH264] this = 0x0x7fa4d2c04c30, Info:WelsInitEncoderExt() exit, overall memory usage: 40907254 bytes
|
|
252
|
+
MemUsageInLog=(`echo $line | awk 'BEGIN {FS="usage:"} {print $2}' `)
|
|
253
|
+
fi
|
|
254
|
+
|
|
255
|
+
# you can add more key word to extract data from log file
|
|
256
|
+
# e.g.: bit rate, fps, encoder time, psnr etc.
|
|
257
|
+
# add script block like:
|
|
258
|
+
# ****************************************************
|
|
259
|
+
# if [[ "${line}" =~ "KeyWordYouWantToSearch" ]]
|
|
260
|
+
# then
|
|
261
|
+
# $line in log file which contain data you want
|
|
262
|
+
# DataYouWant=(`echo $line | awk 'BEGIN {FS="keywordYourSearch"} {print $2}' `)
|
|
263
|
+
# fi
|
|
264
|
+
# ****************************************************
|
|
265
|
+
|
|
266
|
+
done < ${TempLogFile}
|
|
267
|
+
|
|
268
|
+
let "MemoryUsage = ${MemUsageInLog}"
|
|
269
|
+
echo "MemoryUsage is ${MemoryUsage}"
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
runEncodeOneCase()
|
|
273
|
+
{
|
|
274
|
+
#encoding process
|
|
275
|
+
echo "------------------------------------------------------"
|
|
276
|
+
echo "${Encoder} welsenc.cfg ${sEncoderCommand}" >${LogFile}
|
|
277
|
+
${Encoder} welsenc.cfg ${sEncoderCommand} 2>>${LogFile}
|
|
278
|
+
${Encoder} welsenc.cfg ${sEncoderCommand} >>${LogFile}
|
|
279
|
+
echo "------------------------------------------------------"
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
runAllEncodeCasesAndGenerateLog()
|
|
283
|
+
{
|
|
284
|
+
|
|
285
|
+
echo "aSpatialLayerNum is ${aSpatialLayerNum[@]}"
|
|
286
|
+
echo "aThreadIdc is ${aThreadIdc[@]}"
|
|
287
|
+
echo "aSliceMode is ${aSliceMode[@]}"
|
|
288
|
+
echo "aSliceNum is ${aSliceNum[@]}"
|
|
289
|
+
echo "aSliceMbNum is ${aSliceMbNum[@]}"
|
|
290
|
+
|
|
291
|
+
sEncoderCommand1="-lconfig 0 layer0.cfg -lconfig 1 layer1.cfg -lconfig 2 layer2.cfg -lconfig 3 layer3.cfg"
|
|
292
|
+
TempMemoryUsage=""
|
|
293
|
+
OtherDataYouWant=""
|
|
294
|
+
TempTestCase=""
|
|
295
|
+
let "CaseNum=1"
|
|
296
|
+
for iSLayerNum in ${aSpatialLayerNum[@]}
|
|
297
|
+
do
|
|
298
|
+
for iThreadNum in ${aThreadIdc[@]}
|
|
299
|
+
do
|
|
300
|
+
for iSliceMode in ${aSliceMode[@]}
|
|
301
|
+
do
|
|
302
|
+
for iSliceNum in ${aSliceNum[@]}
|
|
303
|
+
do
|
|
304
|
+
#raster slice mb mode, slice-mb-num =0, switch to row-mb-mode
|
|
305
|
+
if [ ${iSliceMode} -eq 2 ]
|
|
306
|
+
then
|
|
307
|
+
aSliceMbNum=(0 960)
|
|
308
|
+
else
|
|
309
|
+
aSliceMbNum=(960)
|
|
310
|
+
fi
|
|
311
|
+
|
|
312
|
+
for iSlicMbNum in ${aSliceMbNum[@]}
|
|
313
|
+
do
|
|
314
|
+
TempMemoryUsage=""
|
|
315
|
+
#for cases output to statistic file
|
|
316
|
+
TempTestCase="${iSLayerNum}, ${iThreadNum}, ${iSliceMode}, ${iSliceNum}, ${iSlicMbNum}"
|
|
317
|
+
|
|
318
|
+
for eEncoder in ${aEncoderList[@]}
|
|
319
|
+
do
|
|
320
|
+
Encoder=${EncoderDir}/${eEncoder}
|
|
321
|
+
if [ -x ${Encoder} ]
|
|
322
|
+
then
|
|
323
|
+
|
|
324
|
+
if [ ${iSliceMode} -eq 3 ]
|
|
325
|
+
then
|
|
326
|
+
iMaxNalSize=1000
|
|
327
|
+
else
|
|
328
|
+
iMaxNalSize=0
|
|
329
|
+
fi
|
|
330
|
+
|
|
331
|
+
runGenerateSpatialLayerResolution ${iSLayerNum}
|
|
332
|
+
|
|
333
|
+
sEncoderCommand2="-slcmd 0 ${iSliceMode} -slcmd 1 ${iSliceMode} -slcmd 2 ${iSliceMode} -slcmd 3 ${iSliceMode}"
|
|
334
|
+
sEncoderCommand3="-slcnum 0 ${iSliceNum} -slcnum 1 ${iSliceNum} -slcnum 2 ${iSliceNum} -slcnum 3 ${iSliceNum}"
|
|
335
|
+
sEncoderCommand4="-slcmbnum 0 ${iSlicMbNum} -slcmbnum 1 ${iSlicMbNum} -slcmbnum 2 ${iSlicMbNum} -slcmbnum 3 ${iSlicMbNum} "
|
|
336
|
+
|
|
337
|
+
sEncoderCommand5="-trace ${iTraceLevel} -numl ${iSLayerNum} -thread ${iThreadNum} -nalsize ${iMaxNalSize}"
|
|
338
|
+
|
|
339
|
+
sEncoderCommand6="-dw 0 ${aPicW[0]} -dw 1 ${aPicW[1]} -dw 2 ${aPicW[2]} -dw 3 ${aPicW[3]}"
|
|
340
|
+
sEncoderCommand7="-dh 0 ${aPicH[0]} -dh 1 ${aPicH[1]} -dh 2 ${aPicH[2]} -dh 3 ${aPicH[3]}"
|
|
341
|
+
|
|
342
|
+
sEncoderCommand="-frms ${iFrameToBeEncoded} ${sEncoderCommand1} ${sEncoderCommand2} ${sEncoderCommand3} ${sEncoderCommand4} ${sEncoderCommand5} ${sEncoderCommand6} ${sEncoderCommand7}"
|
|
343
|
+
|
|
344
|
+
LogFile="${LogDir}/${CaseNum}_LogInfo_iSLNum_${iSLayerNum}_ThrNum_${iThreadNum}_SlcM_${iSliceMode}_SlcN_${iSliceNum}_${eEncoder}.log"
|
|
345
|
+
|
|
346
|
+
echo "Encode command is: "
|
|
347
|
+
echo "${Encoder} welsenc.cfg ${sEncoderCommand}"
|
|
348
|
+
echo ""
|
|
349
|
+
echo "log file is ${LogFile}"
|
|
350
|
+
|
|
351
|
+
#encode one case
|
|
352
|
+
runEncodeOneCase
|
|
353
|
+
|
|
354
|
+
#parse trace log
|
|
355
|
+
runParseTraceLog ${LogFile}
|
|
356
|
+
|
|
357
|
+
#data extracted from log
|
|
358
|
+
#you can add new data here like rc, fps , etc.
|
|
359
|
+
echo "memory usage is ${MemoryUsage}"
|
|
360
|
+
if [ -z ${TempMemoryUsage} ]
|
|
361
|
+
then
|
|
362
|
+
TempMemoryUsage="${MemoryUsage},"
|
|
363
|
+
else
|
|
364
|
+
TempMemoryUsage="${TempMemoryUsage} ${MemoryUsage},"
|
|
365
|
+
fi
|
|
366
|
+
echo "TempMemoryUsage is ${TempMemoryUsage}"
|
|
367
|
+
fi
|
|
368
|
+
done
|
|
369
|
+
|
|
370
|
+
#output memory usage for all encoders
|
|
371
|
+
echo "${TempTestCase}, ${TempMemoryUsage}, ${OtherDataYouWant}" >>${MemoryUsageStatic}
|
|
372
|
+
let " CaseNum ++"
|
|
373
|
+
let "iTotalCaseNum ++"
|
|
374
|
+
|
|
375
|
+
done
|
|
376
|
+
|
|
377
|
+
done
|
|
378
|
+
|
|
379
|
+
done
|
|
380
|
+
|
|
381
|
+
done
|
|
382
|
+
|
|
383
|
+
done
|
|
384
|
+
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
runMain()
|
|
389
|
+
{
|
|
390
|
+
runGlobleInit
|
|
391
|
+
runCheck
|
|
392
|
+
runAllEncodeCasesAndGenerateLog
|
|
393
|
+
runPrompt
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
#*************************************************************
|
|
397
|
+
if [ $# -lt 3 ]
|
|
398
|
+
then
|
|
399
|
+
runUsage
|
|
400
|
+
runBrief
|
|
401
|
+
exit 1
|
|
402
|
+
fi
|
|
403
|
+
|
|
404
|
+
declare -a aEncoderList
|
|
405
|
+
declare -a aParamList
|
|
406
|
+
|
|
407
|
+
aParamList=( $@ )
|
|
408
|
+
ParamNum=$#
|
|
409
|
+
|
|
410
|
+
PicW=${aParamList[0]}
|
|
411
|
+
PicH=${aParamList[1]}
|
|
412
|
+
|
|
413
|
+
for((i=2;i<$#;i++))
|
|
414
|
+
do
|
|
415
|
+
echo "encoder is ${aParamList[$i]}"
|
|
416
|
+
aEncoderList="${aEncoderList} ${aParamList[$i]}"
|
|
417
|
+
done
|
|
418
|
+
aEncoderList=(${aEncoderList})
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
echo -e "\033[32m ********************************* \033[0m"
|
|
422
|
+
echo ""
|
|
423
|
+
echo " --num parameters is ${ParamNum} "
|
|
424
|
+
echo " --input parameters are:"
|
|
425
|
+
echo " $0 $@"
|
|
426
|
+
echo ""
|
|
427
|
+
echo -e "\033[32m ********************************* \033[0m"
|
|
428
|
+
|
|
429
|
+
runMain
|
|
430
|
+
#*************************************************************
|
|
431
|
+
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
AUTO_TEST_ANDROID_PATH=`pwd`
|
|
4
|
+
AUTO_TEST_SRC_PATH="../../../"
|
|
5
|
+
AUTO_TEST_RES_PATH="${AUTO_TEST_ANDROID_PATH}/report"
|
|
6
|
+
mkdir -p ${AUTO_TEST_RES_PATH}
|
|
7
|
+
#Prepare android build enviroment
|
|
8
|
+
echo please set the enviroment variable as:
|
|
9
|
+
echo export ANDROID_HOME="path of android sdk"
|
|
10
|
+
echo export ANDROID_NDK_HOME="path of android ndk"
|
|
11
|
+
ANDROID_SDK_PATH=${ANDROID_HOME}
|
|
12
|
+
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
|
|
13
|
+
ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
|
|
14
|
+
|
|
15
|
+
if [ "#${ANDROID_SDK_PATH}" = "#" ]
|
|
16
|
+
then
|
|
17
|
+
echo Please set ANDROID_HOME with the path of Android SDK
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
if [ "#${ANDROID_NDK_PATH}" = "#" ]
|
|
21
|
+
then
|
|
22
|
+
echo Please set ANDROID_NDK_HOME with the path of Android NDK
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
#make build
|
|
26
|
+
cd ${AUTO_TEST_SRC_PATH}
|
|
27
|
+
find ./ -name *.o -exec rm -f {} \;
|
|
28
|
+
find ./ -name *.d -exec rm -f {} \;
|
|
29
|
+
make $ANDROID_MAKE_PARAMS
|
|
30
|
+
|
|
31
|
+
if [ $? -ne 0 ]
|
|
32
|
+
then
|
|
33
|
+
echo Build error,check with the trace of make
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
ENCDEC=$1
|
|
38
|
+
#find apk
|
|
39
|
+
if [ ${ENCDEC} = "enc" ]
|
|
40
|
+
then
|
|
41
|
+
echo Start to find enc apk
|
|
42
|
+
apk_name=`find ./ -name WelsEncTest-debug.apk`
|
|
43
|
+
if [ "#${apk_name}" = "#" ]
|
|
44
|
+
then
|
|
45
|
+
echo Fail to find encoder APK.
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
else
|
|
49
|
+
echo Start to find dec apk
|
|
50
|
+
apk_name=`find ./ -name WelsDecTest-debug.apk`
|
|
51
|
+
if [ "#${apk_name}" = "#" ]
|
|
52
|
+
then
|
|
53
|
+
echo Fail to find decoder APK.
|
|
54
|
+
exit 1
|
|
55
|
+
fi
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
#prepare devices
|
|
59
|
+
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
|
|
60
|
+
|
|
61
|
+
#get devices
|
|
62
|
+
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
|
|
63
|
+
if [ "#$devices" = "#" ];then
|
|
64
|
+
echo "Have not any android devices."
|
|
65
|
+
exit 1
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
#run apk
|
|
69
|
+
run_apk() {
|
|
70
|
+
local apk=$1;
|
|
71
|
+
local rand=` date +%s`
|
|
72
|
+
|
|
73
|
+
if [[ "${apk}" =~ "WelsDecTest-debug.apk" ]]
|
|
74
|
+
then
|
|
75
|
+
apk_id="com.wels.dec"
|
|
76
|
+
apk_main="com.wels.dec/.WelsDecTest"
|
|
77
|
+
test_path="/sdcard/welsdec"
|
|
78
|
+
log_grep_params="welsdec"
|
|
79
|
+
test_res=${AUTO_TEST_ANDROID_PATH}/../DecoderPerfTestRes
|
|
80
|
+
report_file=${AUTO_TEST_RES_PATH}/decPerf
|
|
81
|
+
|
|
82
|
+
fi
|
|
83
|
+
if [[ "${apk}" =~ "WelsEncTest-debug.apk" ]]
|
|
84
|
+
then
|
|
85
|
+
apk_id="com.wels.enc"
|
|
86
|
+
apk_main="com.wels.enc/.WelsEncTest"
|
|
87
|
+
test_path="/sdcard/welsenc"
|
|
88
|
+
log_grep_params="welsenc"
|
|
89
|
+
test_res=${AUTO_TEST_ANDROID_PATH}/../EncoderPerfTestRes
|
|
90
|
+
report_file=${AUTO_TEST_RES_PATH}/encPerf
|
|
91
|
+
fi
|
|
92
|
+
space="limit"
|
|
93
|
+
for dev in $devices; do
|
|
94
|
+
dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
|
|
95
|
+
$ADB -s $dev uninstall ${apk_id}
|
|
96
|
+
$ADB -s $dev install -r ${apk}
|
|
97
|
+
#TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
|
|
98
|
+
#echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
|
|
99
|
+
#push resources
|
|
100
|
+
#For limited devices space
|
|
101
|
+
if [ ${space} = "limit" ]
|
|
102
|
+
then
|
|
103
|
+
test_res_bak=${test_res}_bak
|
|
104
|
+
mv ${test_res} ${test_res_bak}
|
|
105
|
+
mkdir -p ${test_res}
|
|
106
|
+
test_case=`ls ${test_res_bak}`
|
|
107
|
+
for case in ${test_case}
|
|
108
|
+
do
|
|
109
|
+
echo ${case}
|
|
110
|
+
cp -r ${test_res_bak}/${case} ${test_res}/.
|
|
111
|
+
$ADB -s $dev push ${test_res} ${test_path}
|
|
112
|
+
#before start logcat,kill logcat
|
|
113
|
+
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
|
114
|
+
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
|
115
|
+
$ADB -s $dev logcat -c
|
|
116
|
+
$ADB -s $dev logcat |grep ${log_grep_params} >>${report_file}_${dev}_${rand}.log &
|
|
117
|
+
$ADB -s $dev shell am start -n ${apk_main}
|
|
118
|
+
# check whetehr the app is finished every 2 sec
|
|
119
|
+
for (( ; ; )); do
|
|
120
|
+
$ADB -s $dev shell ps | grep ${apk_id}
|
|
121
|
+
if [ $? -ne 0 ]; then
|
|
122
|
+
sleep 2
|
|
123
|
+
$ADB -s $dev shell ps | grep ${apk_id}
|
|
124
|
+
[ $? -ne 0 ] && break
|
|
125
|
+
fi
|
|
126
|
+
sleep 2
|
|
127
|
+
done
|
|
128
|
+
|
|
129
|
+
# kill logcat
|
|
130
|
+
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
|
131
|
+
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
|
132
|
+
|
|
133
|
+
#delete the res
|
|
134
|
+
$ADB -s $dev shell rm -rf ${test_path}
|
|
135
|
+
rm -rf ${test_res}/${case}
|
|
136
|
+
done
|
|
137
|
+
rm -rf ${test_res}
|
|
138
|
+
mv ${test_res_bak} ${test_res}
|
|
139
|
+
else
|
|
140
|
+
$ADB -s $dev push ${test_res} ${test_path}
|
|
141
|
+
#before start logcat,kill logcat
|
|
142
|
+
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
|
143
|
+
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
|
144
|
+
$ADB -s $dev logcat -c
|
|
145
|
+
$ADB -s $dev logcat |grep ${log_grep_params} >${report_file}_${dev}_${rand}.log &
|
|
146
|
+
$ADB -s $dev shell am start -n ${apk_main}
|
|
147
|
+
# check whetehr the app is finished every 2 sec
|
|
148
|
+
for (( ; ; )); do
|
|
149
|
+
$ADB -s $dev shell ps | grep ${apk_id}
|
|
150
|
+
if [ $? -ne 0 ]; then
|
|
151
|
+
sleep 2
|
|
152
|
+
$ADB -s $dev shell ps | grep ${apk_idi}
|
|
153
|
+
[ $? -ne 0 ] && break
|
|
154
|
+
fi
|
|
155
|
+
sleep 2
|
|
156
|
+
done
|
|
157
|
+
|
|
158
|
+
# kill logcat
|
|
159
|
+
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
|
160
|
+
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
|
161
|
+
|
|
162
|
+
#delete the res
|
|
163
|
+
$ADB -s $dev shell rm -rf ${test_path}
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
done
|
|
167
|
+
}
|
|
168
|
+
for apk in ${apk_name};do
|
|
169
|
+
run_apk $apk;
|
|
170
|
+
if [ $? -ne 0 ]
|
|
171
|
+
then
|
|
172
|
+
echo There is something wrong happened when run ${apk_name}
|
|
173
|
+
exit 1
|
|
174
|
+
else
|
|
175
|
+
echo Finished $ENCDEC performance test on android
|
|
176
|
+
echo The test result is at ./android/report/xxx.log
|
|
177
|
+
echo xxxxxxxxxxxxxxxAndroid $ENCDEC Endxxxxxxxxxxxxxxxx
|
|
178
|
+
fi
|
|
179
|
+
done
|
|
180
|
+
|
|
Binary file
|
|
Binary file
|