@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.
Files changed (340) hide show
  1. package/_openh264install/include/wels/codec_api.h +592 -0
  2. package/_openh264install/include/wels/codec_app_def.h +820 -0
  3. package/_openh264install/include/wels/codec_def.h +216 -0
  4. package/_openh264install/include/wels/codec_ver.h +15 -0
  5. package/_openh264install/lib/libopenh264.a +0 -0
  6. package/_openh264install/lib/pkgconfig/openh264.pc +10 -0
  7. package/binding.gyp +3 -0
  8. package/openh264/.reviewboardrc +3 -0
  9. package/openh264/.travis.yml +42 -0
  10. package/openh264/CODING_STYLE +8 -0
  11. package/openh264/CONTRIBUTORS +55 -0
  12. package/openh264/LICENSE +23 -0
  13. package/openh264/Makefile +408 -0
  14. package/openh264/README.md +197 -0
  15. package/openh264/RELEASES +467 -0
  16. package/openh264/SECURITY.md +16 -0
  17. package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +431 -0
  18. package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +180 -0
  19. package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
  20. package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
  21. package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +193 -0
  22. package/openh264/autotest/performanceTest/ios/uiascript.js +19 -0
  23. package/openh264/autotest/performanceTest/parsePerfData.sh +107 -0
  24. package/openh264/autotest/performanceTest/run_perfTest.sh +122 -0
  25. package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +112 -0
  26. package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +167 -0
  27. package/openh264/autotest/unitTest/run_ParseUTxml.sh +70 -0
  28. package/openh264/autotest/unitTest/run_unitTest.sh +98 -0
  29. package/openh264/build.gradle +30 -0
  30. package/openh264/code-coverage.sh +6 -0
  31. package/openh264/codec/api/meson.build +1 -0
  32. package/openh264/codec/api/wels/codec_api.h +592 -0
  33. package/openh264/codec/api/wels/codec_app_def.h +820 -0
  34. package/openh264/codec/api/wels/codec_def.h +216 -0
  35. package/openh264/codec/api/wels/codec_ver.h +15 -0
  36. package/openh264/codec/api/wels/meson.build +9 -0
  37. package/openh264/codec/common/arm/arm_arch_common_macro.S +83 -0
  38. package/openh264/codec/common/arm/copy_mb_neon.S +161 -0
  39. package/openh264/codec/common/arm/deblocking_neon.S +857 -0
  40. package/openh264/codec/common/arm/expand_picture_neon.S +154 -0
  41. package/openh264/codec/common/arm/intra_pred_common_neon.S +82 -0
  42. package/openh264/codec/common/arm/mc_neon.S +2283 -0
  43. package/openh264/codec/common/arm64/arm_aarch64_common.h +85 -0
  44. package/openh264/codec/common/arm64/arm_arch64_common_macro.S +79 -0
  45. package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +202 -0
  46. package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +852 -0
  47. package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +150 -0
  48. package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +58 -0
  49. package/openh264/codec/common/arm64/mc_aarch64_neon.S +2614 -0
  50. package/openh264/codec/common/generate_version.sh +28 -0
  51. package/openh264/codec/common/inc/WelsList.h +287 -0
  52. package/openh264/codec/common/inc/WelsLock.h +97 -0
  53. package/openh264/codec/common/inc/WelsTask.h +75 -0
  54. package/openh264/codec/common/inc/WelsTaskThread.h +83 -0
  55. package/openh264/codec/common/inc/WelsThread.h +106 -0
  56. package/openh264/codec/common/inc/WelsThreadLib.h +151 -0
  57. package/openh264/codec/common/inc/WelsThreadPool.h +124 -0
  58. package/openh264/codec/common/inc/asmdefs_mmi.h +345 -0
  59. package/openh264/codec/common/inc/copy_mb.h +103 -0
  60. package/openh264/codec/common/inc/cpu.h +81 -0
  61. package/openh264/codec/common/inc/cpu_core.h +103 -0
  62. package/openh264/codec/common/inc/crt_util_safe_x.h +104 -0
  63. package/openh264/codec/common/inc/deblocking_common.h +124 -0
  64. package/openh264/codec/common/inc/expand_pic.h +107 -0
  65. package/openh264/codec/common/inc/golomb_common.h +166 -0
  66. package/openh264/codec/common/inc/intra_pred_common.h +86 -0
  67. package/openh264/codec/common/inc/loongson_intrinsics.h +1919 -0
  68. package/openh264/codec/common/inc/ls_defines.h +130 -0
  69. package/openh264/codec/common/inc/macros.h +329 -0
  70. package/openh264/codec/common/inc/mc.h +407 -0
  71. package/openh264/codec/common/inc/measure_time.h +88 -0
  72. package/openh264/codec/common/inc/memory_align.h +116 -0
  73. package/openh264/codec/common/inc/msa_macros.h +2393 -0
  74. package/openh264/codec/common/inc/sad_common.h +139 -0
  75. package/openh264/codec/common/inc/typedefs.h +86 -0
  76. package/openh264/codec/common/inc/utils.h +95 -0
  77. package/openh264/codec/common/inc/version.h +10 -0
  78. package/openh264/codec/common/inc/version_gen.h.template +6 -0
  79. package/openh264/codec/common/inc/welsCodecTrace.h +64 -0
  80. package/openh264/codec/common/inc/wels_common_defs.h +373 -0
  81. package/openh264/codec/common/inc/wels_const_common.h +63 -0
  82. package/openh264/codec/common/loongarch/copy_mb_lsx.c +194 -0
  83. package/openh264/codec/common/loongarch/deblock_lsx.c +1489 -0
  84. package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +112 -0
  85. package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +91 -0
  86. package/openh264/codec/common/loongarch/mc_chroma_lsx.c +192 -0
  87. package/openh264/codec/common/loongarch/mc_horver_lsx.c +654 -0
  88. package/openh264/codec/common/loongarch/satd_sad_lasx.c +568 -0
  89. package/openh264/codec/common/meson.build +84 -0
  90. package/openh264/codec/common/mips/copy_mb_mmi.c +477 -0
  91. package/openh264/codec/common/mips/copy_mb_msa.c +80 -0
  92. package/openh264/codec/common/mips/deblock_mmi.c +2826 -0
  93. package/openh264/codec/common/mips/deblock_msa.c +1024 -0
  94. package/openh264/codec/common/mips/expand_picture_mmi.c +673 -0
  95. package/openh264/codec/common/mips/intra_pred_com_mmi.c +548 -0
  96. package/openh264/codec/common/mips/satd_sad_mmi.c +2154 -0
  97. package/openh264/codec/common/targets.mk +136 -0
  98. package/openh264/codec/common/x86/asm_inc.asm +743 -0
  99. package/openh264/codec/common/x86/cpuid.asm +263 -0
  100. package/openh264/codec/common/x86/dct.asm +1036 -0
  101. package/openh264/codec/common/x86/deblock.asm +848 -0
  102. package/openh264/codec/common/x86/expand_picture.asm +728 -0
  103. package/openh264/codec/common/x86/intra_pred_com.asm +117 -0
  104. package/openh264/codec/common/x86/mb_copy.asm +615 -0
  105. package/openh264/codec/common/x86/mc_chroma.asm +313 -0
  106. package/openh264/codec/common/x86/mc_luma.asm +4490 -0
  107. package/openh264/codec/common/x86/satd_sad.asm +2734 -0
  108. package/openh264/codec/common/x86/vaa.asm +411 -0
  109. package/openh264/codec/console/common/inc/read_config.h +68 -0
  110. package/openh264/codec/console/common/meson.build +12 -0
  111. package/openh264/codec/console/common/targets.mk +20 -0
  112. package/openh264/codec/console/dec/inc/d3d9_utils.h +148 -0
  113. package/openh264/codec/console/dec/meson.build +15 -0
  114. package/openh264/codec/console/dec/targets.mk +20 -0
  115. package/openh264/codec/console/enc/meson.build +9 -0
  116. package/openh264/codec/console/enc/targets.mk +19 -0
  117. package/openh264/codec/console/meson.build +3 -0
  118. package/openh264/codec/decoder/core/arm/block_add_neon.S +129 -0
  119. package/openh264/codec/decoder/core/arm/intra_pred_neon.S +635 -0
  120. package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +131 -0
  121. package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +524 -0
  122. package/openh264/codec/decoder/core/inc/au_parser.h +199 -0
  123. package/openh264/codec/decoder/core/inc/bit_stream.h +62 -0
  124. package/openh264/codec/decoder/core/inc/cabac_decoder.h +111 -0
  125. package/openh264/codec/decoder/core/inc/deblocking.h +118 -0
  126. package/openh264/codec/decoder/core/inc/dec_frame.h +156 -0
  127. package/openh264/codec/decoder/core/inc/dec_golomb.h +344 -0
  128. package/openh264/codec/decoder/core/inc/decode_mb_aux.h +83 -0
  129. package/openh264/codec/decoder/core/inc/decode_slice.h +104 -0
  130. package/openh264/codec/decoder/core/inc/decoder.h +186 -0
  131. package/openh264/codec/decoder/core/inc/decoder_context.h +590 -0
  132. package/openh264/codec/decoder/core/inc/decoder_core.h +206 -0
  133. package/openh264/codec/decoder/core/inc/error_code.h +222 -0
  134. package/openh264/codec/decoder/core/inc/error_concealment.h +68 -0
  135. package/openh264/codec/decoder/core/inc/fmo.h +114 -0
  136. package/openh264/codec/decoder/core/inc/get_intra_predictor.h +191 -0
  137. package/openh264/codec/decoder/core/inc/manage_dec_ref.h +62 -0
  138. package/openh264/codec/decoder/core/inc/mb_cache.h +80 -0
  139. package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +66 -0
  140. package/openh264/codec/decoder/core/inc/mv_pred.h +195 -0
  141. package/openh264/codec/decoder/core/inc/nal_prefix.h +56 -0
  142. package/openh264/codec/decoder/core/inc/nalu.h +79 -0
  143. package/openh264/codec/decoder/core/inc/parameter_sets.h +217 -0
  144. package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +89 -0
  145. package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +137 -0
  146. package/openh264/codec/decoder/core/inc/pic_queue.h +62 -0
  147. package/openh264/codec/decoder/core/inc/picture.h +112 -0
  148. package/openh264/codec/decoder/core/inc/rec_mb.h +104 -0
  149. package/openh264/codec/decoder/core/inc/slice.h +208 -0
  150. package/openh264/codec/decoder/core/inc/vlc_decoder.h +177 -0
  151. package/openh264/codec/decoder/core/inc/wels_common_basis.h +317 -0
  152. package/openh264/codec/decoder/core/inc/wels_const.h +65 -0
  153. package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +170 -0
  154. package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +296 -0
  155. package/openh264/codec/decoder/core/mips/dct_mmi.c +786 -0
  156. package/openh264/codec/decoder/core/x86/dct.asm +72 -0
  157. package/openh264/codec/decoder/core/x86/intra_pred.asm +1456 -0
  158. package/openh264/codec/decoder/meson.build +69 -0
  159. package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +170 -0
  160. package/openh264/codec/decoder/targets.mk +115 -0
  161. package/openh264/codec/encoder/core/arm/intra_pred_neon.S +589 -0
  162. package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +735 -0
  163. package/openh264/codec/encoder/core/arm/memory_neon.S +62 -0
  164. package/openh264/codec/encoder/core/arm/pixel_neon.S +882 -0
  165. package/openh264/codec/encoder/core/arm/reconstruct_neon.S +903 -0
  166. package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +366 -0
  167. package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +505 -0
  168. package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +611 -0
  169. package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +63 -0
  170. package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +621 -0
  171. package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +717 -0
  172. package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +350 -0
  173. package/openh264/codec/encoder/core/inc/as264_common.h +138 -0
  174. package/openh264/codec/encoder/core/inc/au_set.h +152 -0
  175. package/openh264/codec/encoder/core/inc/deblocking.h +92 -0
  176. package/openh264/codec/encoder/core/inc/decode_mb_aux.h +112 -0
  177. package/openh264/codec/encoder/core/inc/dq_map.h +58 -0
  178. package/openh264/codec/encoder/core/inc/encode_mb_aux.h +199 -0
  179. package/openh264/codec/encoder/core/inc/encoder.h +148 -0
  180. package/openh264/codec/encoder/core/inc/encoder_context.h +240 -0
  181. package/openh264/codec/encoder/core/inc/extern.h +124 -0
  182. package/openh264/codec/encoder/core/inc/get_intra_predictor.h +186 -0
  183. package/openh264/codec/encoder/core/inc/mb_cache.h +141 -0
  184. package/openh264/codec/encoder/core/inc/md.h +181 -0
  185. package/openh264/codec/encoder/core/inc/mt_defs.h +91 -0
  186. package/openh264/codec/encoder/core/inc/mv_pred.h +191 -0
  187. package/openh264/codec/encoder/core/inc/nal_encap.h +143 -0
  188. package/openh264/codec/encoder/core/inc/param_svc.h +576 -0
  189. package/openh264/codec/encoder/core/inc/parameter_sets.h +181 -0
  190. package/openh264/codec/encoder/core/inc/paraset_strategy.h +310 -0
  191. package/openh264/codec/encoder/core/inc/picture.h +137 -0
  192. package/openh264/codec/encoder/core/inc/picture_handle.h +66 -0
  193. package/openh264/codec/encoder/core/inc/rc.h +284 -0
  194. package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +148 -0
  195. package/openh264/codec/encoder/core/inc/sample.h +154 -0
  196. package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +127 -0
  197. package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +92 -0
  198. package/openh264/codec/encoder/core/inc/slice.h +212 -0
  199. package/openh264/codec/encoder/core/inc/slice_multi_threading.h +97 -0
  200. package/openh264/codec/encoder/core/inc/stat.h +102 -0
  201. package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +102 -0
  202. package/openh264/codec/encoder/core/inc/svc_enc_frame.h +136 -0
  203. package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +123 -0
  204. package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +82 -0
  205. package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +212 -0
  206. package/openh264/codec/encoder/core/inc/svc_encode_mb.h +63 -0
  207. package/openh264/codec/encoder/core/inc/svc_encode_slice.h +184 -0
  208. package/openh264/codec/encoder/core/inc/svc_mode_decision.h +94 -0
  209. package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +369 -0
  210. package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +70 -0
  211. package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +67 -0
  212. package/openh264/codec/encoder/core/inc/vlc_encoder.h +92 -0
  213. package/openh264/codec/encoder/core/inc/wels_common_basis.h +160 -0
  214. package/openh264/codec/encoder/core/inc/wels_const.h +174 -0
  215. package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +300 -0
  216. package/openh264/codec/encoder/core/inc/wels_preprocess.h +251 -0
  217. package/openh264/codec/encoder/core/inc/wels_task_base.h +79 -0
  218. package/openh264/codec/encoder/core/inc/wels_task_encoder.h +142 -0
  219. package/openh264/codec/encoder/core/inc/wels_task_management.h +135 -0
  220. package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +58 -0
  221. package/openh264/codec/encoder/core/loongarch/dct_lasx.c +452 -0
  222. package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +166 -0
  223. package/openh264/codec/encoder/core/loongarch/quant_lsx.c +153 -0
  224. package/openh264/codec/encoder/core/loongarch/sample_lasx.c +87 -0
  225. package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +104 -0
  226. package/openh264/codec/encoder/core/mips/dct_mmi.c +529 -0
  227. package/openh264/codec/encoder/core/mips/quant_mmi.c +553 -0
  228. package/openh264/codec/encoder/core/mips/score_mmi.c +324 -0
  229. package/openh264/codec/encoder/core/x86/coeff.asm +695 -0
  230. package/openh264/codec/encoder/core/x86/dct.asm +108 -0
  231. package/openh264/codec/encoder/core/x86/intra_pred.asm +1129 -0
  232. package/openh264/codec/encoder/core/x86/matrix_transpose.asm +395 -0
  233. package/openh264/codec/encoder/core/x86/memzero.asm +132 -0
  234. package/openh264/codec/encoder/core/x86/quant.asm +507 -0
  235. package/openh264/codec/encoder/core/x86/sample_sc.asm +1829 -0
  236. package/openh264/codec/encoder/core/x86/score.asm +363 -0
  237. package/openh264/codec/encoder/meson.build +98 -0
  238. package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +129 -0
  239. package/openh264/codec/encoder/targets.mk +146 -0
  240. package/openh264/codec/meson.build +9 -0
  241. package/openh264/codec/processing/interface/IWelsVP.h +310 -0
  242. package/openh264/codec/processing/meson.build +71 -0
  243. package/openh264/codec/processing/targets.mk +117 -0
  244. package/openh264/docs/doxygen/Doxyfile +1865 -0
  245. package/openh264/docs/doxygen/Home.rest +25 -0
  246. package/openh264/docs/doxygen/ISVCDecoder.rest +19 -0
  247. package/openh264/docs/doxygen/ISVCEncoder.rest +16 -0
  248. package/openh264/docs/doxygen/UsageExampleForDecoder.rest +10 -0
  249. package/openh264/docs/doxygen/UsageExampleForEncoder.rest +15 -0
  250. package/openh264/docs/doxygen2rst.py +619 -0
  251. package/openh264/gmpopenh264.info +4 -0
  252. package/openh264/gradlew +172 -0
  253. package/openh264/meson.build +218 -0
  254. package/openh264/meson_options.txt +1 -0
  255. package/openh264/module/RefCounted.h +141 -0
  256. package/openh264/module/gmp-openh264.cpp +1196 -0
  257. package/openh264/module/targets.mk +14 -0
  258. package/openh264/module/task_utils.h +38 -0
  259. package/openh264/module/task_utils.py +207 -0
  260. package/openh264/module/task_utils_generated.h +2087 -0
  261. package/openh264/openh264.def +7 -0
  262. package/openh264/openh264.pc.in +10 -0
  263. package/openh264/openh264.rc +61 -0
  264. package/openh264/openh264.rc.template +61 -0
  265. package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
  266. package/openh264/res/BA1_FT_C.264 +0 -0
  267. package/openh264/res/BA1_Sony_D.jsv +0 -0
  268. package/openh264/res/BAMQ1_JVC_C.264 +0 -0
  269. package/openh264/res/BAMQ2_JVC_C.264 +0 -0
  270. package/openh264/res/BANM_MW_D.264 +0 -0
  271. package/openh264/res/BASQP1_Sony_C.jsv +0 -0
  272. package/openh264/res/BA_MW_D.264 +0 -0
  273. package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
  274. package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
  275. package/openh264/res/CI1_FT_B.264 +0 -0
  276. package/openh264/res/CI_MW_D.264 +0 -0
  277. package/openh264/res/CVFC1_Sony_C.jsv +0 -0
  278. package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
  279. package/openh264/res/CiscoVT2people_160x96_6fps.yuv +1 -0
  280. package/openh264/res/CiscoVT2people_320x192_12fps.yuv +1 -0
  281. package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +3607 -0
  282. package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
  283. package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
  284. package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
  285. package/openh264/res/Error_I_P.264 +0 -0
  286. package/openh264/res/LS_SVA_D.264 +0 -0
  287. package/openh264/res/MIDR_MW_D.264 +0 -0
  288. package/openh264/res/MPS_MW_A.264 +0 -0
  289. package/openh264/res/MR1_BT_A.h264 +0 -0
  290. package/openh264/res/MR1_MW_A.264 +0 -0
  291. package/openh264/res/MR2_MW_A.264 +0 -0
  292. package/openh264/res/MR2_TANDBERG_E.264 +0 -0
  293. package/openh264/res/NL1_Sony_D.jsv +0 -0
  294. package/openh264/res/NLMQ1_JVC_C.264 +0 -0
  295. package/openh264/res/NLMQ2_JVC_C.264 +0 -0
  296. package/openh264/res/NRF_MW_E.264 +0 -0
  297. package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
  298. package/openh264/res/SVA_BA1_B.264 +0 -0
  299. package/openh264/res/SVA_BA2_D.264 +0 -0
  300. package/openh264/res/SVA_Base_B.264 +0 -0
  301. package/openh264/res/SVA_CL1_E.264 +0 -0
  302. package/openh264/res/SVA_FM1_E.264 +0 -0
  303. package/openh264/res/SVA_NL1_B.264 +0 -0
  304. package/openh264/res/SVA_NL2_E.264 +0 -0
  305. package/openh264/res/SarVui.264 +0 -0
  306. package/openh264/res/Static.264 +0 -0
  307. package/openh264/res/Static_152_100.yuv +1 -0
  308. package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
  309. package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
  310. package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
  311. package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
  312. package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
  313. package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
  314. package/openh264/res/Zhling_1280x720.264 +0 -0
  315. package/openh264/res/jm_1080p_allslice.264 +0 -0
  316. package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
  317. package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
  318. package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
  319. package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
  320. package/openh264/res/test_qcif_cabac.264 +0 -0
  321. package/openh264/res/test_scalinglist_jm.264 +0 -0
  322. package/openh264/res/test_vd_1d.264 +0 -0
  323. package/openh264/res/test_vd_rc.264 +0 -0
  324. package/openh264/run_Test.sh +91 -0
  325. package/openh264/settings.gradle +4 -0
  326. package/openh264/subprojects/gtest.wrap +10 -0
  327. package/openh264/testbin/AutoBuild_Windows_VS2008.bat +59 -0
  328. package/openh264/testbin/CmdLineExample.sh +7 -0
  329. package/openh264/testbin/CmdLineReadMe +22 -0
  330. package/openh264/testbin/layer2.cfg +37 -0
  331. package/openh264/testbin/layer2_arbitrary_res.cfg +37 -0
  332. package/openh264/testbin/layer2_vd.cfg +38 -0
  333. package/openh264/testbin/layer2_vd_rc.cfg +38 -0
  334. package/openh264/testbin/welsenc.cfg +71 -0
  335. package/openh264/testbin/welsenc_arbitrary_res.cfg +70 -0
  336. package/openh264/testbin/welsenc_ios.cfg +71 -0
  337. package/openh264/testbin/welsenc_vd_1d.cfg +70 -0
  338. package/openh264/testbin/welsenc_vd_rc.cfg +69 -0
  339. package/openh264/ut.def +2 -0
  340. 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
+