@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,193 @@
1
+ #!/bin/bash
2
+
3
+ ##############################################################
4
+ #Build ios test ref app
5
+
6
+ #set the default configuration
7
+ CODEC_TEST_IOS_ARCH="armv7 armv7s arm64"
8
+ CODEC_TEST_IOS_PLATFORM="iphoneos"
9
+ CODEC_TEST_IOS_DEBUG_RELEASE="Release"
10
+ CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
11
+
12
+
13
+ buildXcodeProject()
14
+ {
15
+ xcodebuild ARCHS="${CODEC_TEST_IOS_ARCH}" VALID_ARCHS="${CODEC_TEST_IOS_ARCH}" ONLY_ACTIVE_ARCH=YES -project $1 -target $2 -configuration $3 -sdk ${CODEC_TEST_IOS_PLATFORM} clean build
16
+
17
+ if [ $? -eq 0 ]; then
18
+ echo "build $1 $3 successfully"
19
+ else
20
+ echo "build $1 $3 fail"
21
+ exit 1
22
+ fi
23
+ }
24
+
25
+
26
+
27
+ iosPerformanceTest()
28
+ {
29
+
30
+ if [ $# -gt 2 ]; then
31
+ echo "Please use command $0 [enc/dec] [release/debug]"
32
+ exit 1
33
+ fi
34
+
35
+ for PARAM in $*; do
36
+ if [ "enc" = "${PARAM}" ]; then
37
+ CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/encDemo.xcodeproj"
38
+ CODEC_TEST_IOS_PROJECT_NAME="encDemo"
39
+ CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/build"
40
+ CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
41
+ CODEC_TEST_IOS_APP_ID="cisco.encDemo"
42
+ CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../EncoderPerfTestRes
43
+ CODEC_TEST_LOG="encPerf"
44
+ elif [ "dec" = "${PARAM}" ]; then
45
+ CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/demo.xcodeproj/"
46
+ CODEC_TEST_IOS_PROJECT_NAME="demo"
47
+ CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/build"
48
+ CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
49
+ CODEC_TEST_IOS_APP_ID="hf.cisco.demo"
50
+ CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../DecoderPerfTestRes
51
+ CODEC_TEST_LOG="decPerf"
52
+ elif [ "release" = "${PARAM}" ]; then
53
+ CODEC_TEST_IOS_DEBUG_RELEASE="Release"
54
+ CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
55
+ elif [ "debug" = "${PARAM}" ]; then
56
+ CODEC_TEST_IOS_DEBUG_RELEASE="Debug"
57
+ CODEC_TEST_IOS_REPORT_SUBFOLDER="debug"
58
+ else
59
+ echo parameters are illegal!!!, please have a check.
60
+ exit 1
61
+ fi
62
+ done
63
+
64
+ echo "Codec test will run on ${CODEC_TEST_IOS_PLATFORM} with ${CODEC_TEST_IOS_DEBUG_RELEASE}"
65
+ buildXcodeProject ${CODEC_TEST_XCODE_PROJECT_NAME} ${CODEC_TEST_IOS_PROJECT_NAME} ${CODEC_TEST_IOS_DEBUG_RELEASE} ${CODEC_TEST_IOS_PLATFORM}
66
+
67
+
68
+
69
+
70
+ ##############run on ios devices#########################
71
+ # for real device
72
+ if [ ! -d ${CODEC_TEST_IOS_APP} ] ; then
73
+ echo "${CODEC_TEST_IOS_APP} is not found"
74
+ exit 1
75
+ else
76
+ echo "Find app ${CODEC_TEST_IOS_APP}"
77
+ fi
78
+
79
+ #ensure instruments not runing
80
+ echo "Try to kill the runing instruments"
81
+ pids_str=`ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`
82
+ instruments_pids="${pids_str//,/ }"
83
+ for pid in ${instruments_pids}; do
84
+ echo "Found instruments ${pid}. Killing..."
85
+ kill -9 ${pid} && wait ${pid} &> /dev/null
86
+ done
87
+
88
+
89
+
90
+ DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
91
+ if [ "${DEVICES}#" == "#" ]
92
+ then
93
+ echo "Can not find any connected device! please check device is connected to MAC!"
94
+ exit 1
95
+ else
96
+ rand=`date +%s`
97
+ for DEVICE_ID in ${DEVICES}
98
+ do
99
+ echo "Try to run on device:${DEVICE_ID}"
100
+
101
+ #Encoder YUV file too large
102
+ if [ ${ENCDEC} = "enc" ]
103
+ then
104
+ #For limited devices space
105
+ BAKRES=${CODEC_TEST_RES}_bak
106
+ mv ${CODEC_TEST_RES} ${BAKRES}
107
+ mkdir -p ${CODEC_TEST_RES}
108
+ CODEC_CASE=`ls ${BAKRES}`
109
+ echo ${CODEC_CASE}
110
+ for CASE in ${CODEC_CASE}
111
+ do
112
+ echo ${CASE}
113
+ cp -r ${BAKRES}/${CASE} ${CODEC_TEST_RES}/.
114
+
115
+
116
+ #uninstall the application from device to remove the last result
117
+ ./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
118
+ if [ $? -ne 0 ]; then
119
+ echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
120
+ fi
121
+ #install the application
122
+ ./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
123
+ if [ $? -ne 0 ]; then
124
+ echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
125
+ exit 1
126
+ fi
127
+
128
+ ./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
129
+ instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
130
+ #copy to report folder
131
+ ./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
132
+ if [ $? -ne 0 ]; then
133
+ echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
134
+ exit 1
135
+ fi
136
+ cat ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log>>${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}.log
137
+ rm -f ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
138
+ rm -rf ${CODEC_TEST_RES}/${CASE}
139
+ done
140
+ rm -rf ${CODEC_TEST_RES}
141
+ mv ${BAKRES} ${CODEC_TEST_RES}
142
+ #Enough spaces
143
+ else
144
+ #uninstall the application from device to remove the last result
145
+ ./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
146
+ if [ $? -ne 0 ]; then
147
+ echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
148
+ fi
149
+ #install the application
150
+ ./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
151
+ if [ $? -ne 0 ]; then
152
+ echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
153
+ exit 1
154
+ fi
155
+
156
+ ./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
157
+ instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
158
+ #copy to report folder
159
+ ./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
160
+ if [ $? -ne 0 ]; then
161
+ echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
162
+ exit 1
163
+ fi
164
+
165
+
166
+ fi
167
+ done
168
+
169
+ fi
170
+ }
171
+
172
+ AUTO_TEST_IOS_PATH=`pwd`
173
+ AUTO_TEST_SRC_PATH="../../.."
174
+ CODEC_TEST_IOS_REPORT_PATH="${AUTO_TEST_IOS_PATH}/report"
175
+ if [ ! -d ${CODEC_TEST_IOS_REPORT_PATH} ]
176
+ then
177
+ mkdir -p ${CODEC_TEST_IOS_REPORT_PATH}
178
+ fi
179
+
180
+ ENCDEC=$1
181
+ #start to get encoder/decoder performance data,default run the xcode with release
182
+ iosPerformanceTest $ENCDEC release
183
+
184
+ if [ $? -ne 0 ]; then
185
+ echo "Running $ENCDEC demo to get encoder performance is failed!"
186
+ exit 1
187
+ else
188
+ echo Finished $ENCDEC performance test on ios devices
189
+ echo the test result is generated at ./ios/report/xx.loGbash parsePerfData.sh
190
+ echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxIOS $ENCDEC Endxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
191
+ fi
192
+ #TODO:according to the trace of instruments to do some analysis
193
+ #find ./ -name *.trace -exec rm -rf {} \;
@@ -0,0 +1,19 @@
1
+ UIATarget.onAlert = function onAlert(alert){
2
+
3
+ UIALogger.logMessage("In Alert!");
4
+ title = alert.name();
5
+ if (title && title.indexOf("Microphone") !== -1) {
6
+ UIALogger.logMessage("Alert with title '" + title + "' encountered!");
7
+ var buttons = alert.buttons();
8
+ var buttonCount = buttons.length;
9
+
10
+ if (buttonCount > 0) {
11
+ var acceptButton = buttons[buttonCount - 1];
12
+ acceptButton.tap(); // last button is accept
13
+ }
14
+ return true; //forbid the default cancel processing
15
+ }
16
+ return false; //using the default cancel processing
17
+ }
18
+ var target = UIATarget.localTarget();
19
+ target.delay(6000);
@@ -0,0 +1,107 @@
1
+ #!/bin/bash
2
+
3
+ #usage runGetPerformanceInfo ${PerformanceLogFile}
4
+ runGetPerformanceInfo_openh264()
5
+ {
6
+
7
+ if [ ! $# -eq 2 ]
8
+ then
9
+ echo "not enough parameters!"
10
+ echo "usage: ${0} [android/ios] ${PerformanceLogFile}"
11
+ return 1
12
+ fi
13
+
14
+ local PerformanceLogFile=$2
15
+ local FileName=""
16
+ local Width=""
17
+ local Height=""
18
+ local Frames=""
19
+ local FPS=""
20
+ local EncodeTime=""
21
+ if [ $1 = "android" ]
22
+ then seperatorNum=3
23
+ else
24
+ seperatorNum=2
25
+ fi
26
+
27
+ while read line
28
+ do
29
+ if [[ $line =~ "enc yuv file" ]]
30
+ then
31
+ FileName=`echo $line | awk 'BEGIN {FS="enc yuv file"} {print $2}'`
32
+ FileName=`echo $FileName | awk 'BEGIN {FS=":"} {print $2}'`
33
+ fi
34
+ if [[ $line =~ "Width" ]]
35
+ then
36
+ Width=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
37
+ fi
38
+ if [[ $line =~ "Height" ]]
39
+ then
40
+ Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
41
+ fi
42
+ if [[ $line =~ "Frames" ]]
43
+ then
44
+ Frames=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
45
+ fi
46
+ if [[ $line =~ "FPS" ]]
47
+ then
48
+ FPS=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
49
+ FPS=`echo $FPS | awk 'BEGIN {FS="fps"} {print $1}'`
50
+ echo "${FileName},"${Width}x${Height}",${Frames},${FPS}"
51
+ fi
52
+
53
+ if [[ $line =~ "encode time" ]]
54
+ then
55
+ EncodeTime=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
56
+ fi
57
+ if [[ $line =~ "height" ]]
58
+ then
59
+ Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
60
+ fi
61
+ if [[ $line =~ "H264 source file name" ]]
62
+ then
63
+ FileName=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
64
+ if [ $1 = "ios" ]
65
+ then
66
+ FileName=`echo $FileName | awk -F"DecoderPerfTestRes" '{print $2}'`
67
+ FileName=`echo $FileName | awk -F"/" '{print $2}'`
68
+ else
69
+ FileName=`echo $FileName | awk -F"/" '{print $4}'`
70
+ fi
71
+ fi
72
+
73
+ done <${PerformanceLogFile}
74
+
75
+
76
+ }
77
+ AUTO_TEST_RESULT_PATH="./TestResultCSV/"
78
+
79
+
80
+ parseLogToCSV()
81
+ {
82
+ if [ $# -ne 1 ]
83
+ then echo "Please input $0 [android/ios]"
84
+ fi
85
+ if [ $* = "android" ]
86
+ then
87
+ Result_log_path="./android/report/"
88
+ suffix=android
89
+ dos2unix ${Result_log_path}*.*
90
+ else
91
+ Result_log_path="./ios/report/"
92
+ suffix=ios
93
+ fi
94
+ Result_log=`ls ${Result_log_path}`
95
+
96
+ for log in ${Result_log}
97
+ do
98
+ PerformFile=`echo $log |awk -F"." '{print $1}'`
99
+ PerformFile=${PerformFile}_${suffix}.csv
100
+ #inital perfermance file
101
+ echo "$log,,,">>${AUTO_TEST_RESULT_PATH}${PerformFile}
102
+ echo "YUV,Resolution,Encodedframes,FPS">>${AUTO_TEST_RESULT_PATH}${PerformFile}
103
+ runGetPerformanceInfo_openh264 ${suffix} ${Result_log_path}${log}>>${AUTO_TEST_RESULT_PATH}${PerformFile}
104
+ done
105
+ }
106
+ parseLogToCSV android
107
+ parseLogToCSV ios
@@ -0,0 +1,122 @@
1
+ #!bin/bash
2
+ IOS=1
3
+ ANDROID=1
4
+ ENC=1
5
+ DEC=1
6
+ AUTO_TEST_PATH=`pwd`
7
+
8
+ #Judge to run the test on which kind of mobile
9
+ if [ $# -eq 0 ];then
10
+ echo Default testing will run on android and ios devices meanwhile
11
+ else
12
+ for params in $*; do
13
+ if [ $params = "ios" ];then
14
+ echo Running the test just on ios devices
15
+ ANDROID=0
16
+ elif [ $params = "android" ];then
17
+ echo Running the test just on android devices
18
+ IOS=0
19
+ elif [ $params = "enc" ];then
20
+ echo Running the encoder performance test
21
+ DEC=0
22
+ elif [ $params = "dec" ];then
23
+ echo Running the decoder performance test
24
+ ENC=0
25
+ else
26
+ echo parameters are illegal!!!, ${0} [ios/android] [enc/dec]
27
+ exit 1
28
+ fi
29
+ done
30
+ fi
31
+
32
+ #Prepare encoder resources
33
+ if [ ${ENC} = "1" ]
34
+ then
35
+ if [ ! -d ./EncoderPerTestRes ]
36
+ then
37
+ mkdir -p ./EncoderPerfTestRes
38
+ fi
39
+ if [ "#`ls ./EncoderPerfTestRes`" = "#" ]
40
+ then
41
+ echo put yuv and cfg file into ./EncoderPerfTest folder as
42
+ echo case_720p
43
+ echo case_720p/welsenc.cfg
44
+ echo case_720p/layer2.cfg
45
+ echo case_720p/yuv
46
+ echo case_720p/yuv/xxx1.yuv
47
+ echo case_720p/yuv/xxx2.yuv
48
+ echo case_360p
49
+ echo case_360p/welsenc.cfg
50
+ echo ......
51
+ else
52
+ #Run the encoder performance test
53
+ if [ ${IOS} = "1" ]
54
+ then
55
+ echo xxxxxxxxxxxxxxxxIOS ENC Startxxxxxxxxxxxxxxxxxx
56
+ echo Run the Encoder performance test on ios devices
57
+ cd ./ios
58
+ bash run_AutoTest_ios.sh enc
59
+ cd ${AUTO_TEST_PATH}
60
+ fi
61
+
62
+ if [ ${ANDROID} = "1" ]
63
+ then
64
+ echo xxxxxxxxxxxxxxAndroid ENC Startxxxxxxxxxxxxxxxxxxxx
65
+ echo Run the Encoder performance test on android devices
66
+ cd ./android
67
+ bash run_AutoTest_android.sh enc
68
+ cd ${AUTO_TEST_PATH}
69
+ fi
70
+ fi
71
+ fi
72
+
73
+ #Prepare decoder resources
74
+ if [ ${DEC} = "1" ]
75
+ then
76
+ if [ ! -d ./DecoderPerfTestRes ]
77
+ then
78
+ mkdir -p ./DecoderPerfTestRes
79
+ fi
80
+
81
+ if [ "#`ls ./DecoderPerfTestRes`" = "#" ]
82
+ then
83
+ echo put decoded bitstreams into such folder as
84
+ echo xxx1.264
85
+ echo xxx2.264
86
+ echo ........
87
+ else
88
+ #Run the decoder performance test
89
+ if [ ${IOS} = "1" ]
90
+ then
91
+ echo xxxxxxxxxxxxxxxxIOS DEC Startxxxxxxxxxxxxxxxxxx
92
+ echo Run the Decoder performance test on ios devices
93
+ cd ./ios
94
+ bash run_AutoTest_ios.sh dec
95
+ cd ${AUTO_TEST_PATH}
96
+ fi
97
+
98
+ if [ ${ANDROID} = "1" ]
99
+ then
100
+ echo xxxxxxxxxxxxxxAndroid DEC Startxxxxxxxxxxxxxxxxxxxx
101
+ echo Run the Decoder performance test on android devices
102
+ cd ./android
103
+ bash run_AutoTest_android.sh dec
104
+ cd ${AUTO_TEST_PATH}
105
+ fi
106
+ fi
107
+ fi
108
+
109
+ #TODO:NOW just generate csv file to display performance data
110
+ cd ${AUTO_TEST_PATH}
111
+ if [[ "#`ls ./ios/report`" == "#" && "#`ls ./android/report`" == "#" ]]
112
+ then
113
+ echo There is nothing result log generated at ios or android devices
114
+ else
115
+ echo Start to generate test result csv file
116
+ #Test result
117
+ mkdir -p ./TestResultCSV
118
+ bash parsePerfData.sh
119
+ echo The csv file locate ./TestResultCSV/xxx.csv
120
+ fi
121
+
122
+
@@ -0,0 +1,112 @@
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
+ if [ ! -d ${AUTO_TEST_RES_PATH} ]
7
+ then
8
+ mkdir -p ${AUTO_TEST_RES_PATH}
9
+ else
10
+ echo "Will delete those outdate xml in the report"
11
+ rm -f ${AUTO_TEST_RES_PATH}/*.xml
12
+ fi
13
+ #Prepare android build enviroment
14
+ echo please set the enviroment variable as:
15
+ echo export ANDROID_HOME="path of android sdk"
16
+ echo export ANDROID_NDK_HOME="path of android ndk"
17
+ ANDROID_SDK_PATH=${ANDROID_HOME}
18
+ ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
19
+ ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
20
+
21
+ if [ "#${ANDROID_SDK_PATH}" = "#" ]
22
+ then
23
+ echo Please set ANDROID_HOME with the path of Android SDK
24
+ exit 1
25
+ fi
26
+ if [ "#${ANDROID_NDK_PATH}" = "#" ]
27
+ then
28
+ echo Please set ANDROID_NDK_HOME with the path of Android NDK
29
+ exit 1
30
+ fi
31
+ #make build
32
+ cd ${AUTO_TEST_SRC_PATH}
33
+ find ./ -name *.o -exec rm -f {} \;
34
+ find ./ -name *.d -exec rm -f {} \;
35
+ make clean
36
+ make $ANDROID_MAKE_PARAMS test
37
+
38
+ if [ $? -ne 0 ]
39
+ then
40
+ echo Build error,check with the trace of make
41
+ exit 1
42
+ fi
43
+
44
+ #find apk
45
+ echo Start to find unittest apk
46
+ apk_name=`find ./ -name MainActivity-debug.apk`
47
+ if [ "#${apk_name}" = "#" ]
48
+ then
49
+ echo Fail to find encoder APK.
50
+ exit 1
51
+ fi
52
+
53
+ #prepare devices
54
+ ADB=${ANDROID_SDK_PATH}/platform-tools/adb
55
+
56
+ #get devices
57
+ devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
58
+ if [ "#$devices" = "#" ];then
59
+ echo "Have not any android devices."
60
+ exit 1
61
+ fi
62
+
63
+ #run apk
64
+ run_apk() {
65
+ local apk=$1;
66
+ local rand=` date +%s`
67
+ apk_id="com.cisco.codec.unittest"
68
+ apk_main="com.cisco.codec.unittest/.MainActivity"
69
+ test_path="/sdcard/welsenc"
70
+ log_grep_params="welsenc"
71
+ test_res=./res
72
+ xml_file="sdcard/codec_unittest.xml"
73
+ for dev in $devices; do
74
+ #dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
75
+ report_file=${AUTO_TEST_RES_PATH}/codec_unittest_${dev}_${rand}.xml
76
+ $ADB -s $dev uninstall ${apk_id}
77
+ $ADB -s $dev install -r ${apk}
78
+ #TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
79
+ echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
80
+ $ADB -s $dev push ${test_res} /sdcard/res
81
+ $ADB -s $dev shell am start --es path "$xml_file" -n ${apk_main}
82
+ # check whetehr the app is finished every 2 sec
83
+ for (( ; ; )); do
84
+ $ADB -s $dev shell ps | grep ${apk_id}
85
+ if [ $? -ne 0 ]; then
86
+ sleep 2
87
+ $ADB -s $dev shell ps | grep ${apk_id}
88
+ [ $? -ne 0 ] && break
89
+ fi
90
+ sleep 2
91
+ done
92
+
93
+ # kill logcat
94
+ $ADB -s $dev pull ${xml_file} ${report_file}
95
+ #delete the res
96
+ $ADB -s $dev shell rm -rf ${xml_file}
97
+ $ADB -s $dev shell rm -rf /sdcard/res
98
+ done
99
+ }
100
+ for apk in ${apk_name};do
101
+ run_apk $apk;
102
+ if [ $? -ne 0 ]
103
+ then
104
+ echo There is something wrong happened when run ${apk_name}
105
+ exit 1
106
+ else
107
+ echo Finished unit test on android
108
+ echo The test result is at ./android/report/xxx.xml
109
+ echo xxxxxxxxxxxxxxxAndroid unittest Endxxxxxxxxxxxxxxxx
110
+ fi
111
+ done
112
+