@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,366 @@
1
+ /*!
2
+ * \copy
3
+ * Copyright (c) 2013, Cisco Systems
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions
8
+ * are met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ *
13
+ * * Redistributions in binary form must reproduce the above copyright
14
+ * notice, this list of conditions and the following disclaimer in
15
+ * the documentation and/or other materials provided with the
16
+ * distribution.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ * POSSIBILITY OF SUCH DAMAGE.
30
+ *
31
+ */
32
+
33
+ #ifdef HAVE_NEON
34
+ #include "arm_arch_common_macro.S"
35
+
36
+
37
+ WELS_ASM_FUNC_BEGIN SumOf8x8SingleBlock_neon
38
+ vld1.64 {d0}, [r0], r1
39
+ vld1.64 {d1}, [r0], r1
40
+ vld1.64 {d2}, [r0], r1
41
+ vld1.64 {d3}, [r0], r1
42
+ vld1.64 {d4}, [r0], r1
43
+ vld1.64 {d5}, [r0], r1
44
+ vld1.64 {d6}, [r0], r1
45
+ vld1.64 {d7}, [r0]
46
+ vpaddl.u8 q0, q0
47
+ vpadal.u8 q0, q1
48
+ vpadal.u8 q0, q2
49
+ vpadal.u8 q0, q3
50
+
51
+ vpaddl.u16 q0, q0
52
+ vpadd.i32 d0, d1
53
+ vpadd.i32 d0, d0
54
+ vmov r0, r1, d0
55
+ WELS_ASM_FUNC_END
56
+
57
+
58
+ WELS_ASM_FUNC_BEGIN SumOf16x16SingleBlock_neon
59
+ vld1.64 {q0}, [r0], r1
60
+ vpaddl.u8 q0, q0
61
+ .rept 15
62
+ vld1.64 {q1}, [r0], r1
63
+ vpadal.u8 q0, q1
64
+ .endr
65
+ vpaddl.u16 q0, q0
66
+ vpadd.i32 d0, d1
67
+ vpadd.i32 d0, d0
68
+ vmov r0, r1, d0
69
+ WELS_ASM_FUNC_END
70
+
71
+
72
+ WELS_ASM_FUNC_BEGIN SumOf8x8BlockOfFrame_neon
73
+ //(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
74
+ stmdb sp!, {r4-r12}
75
+ ldr r5, [sp, #40] //pTimesOfFeatureValue
76
+ ldr r4, [sp, #36] //pFeatureOfBlock
77
+
78
+ mov r8, r0
79
+ mov r6, r1
80
+ add r8, r6
81
+ add r4, r4, r6, lsl #1
82
+
83
+ mov r7, r6
84
+ _width_loop8x8_1:
85
+ subs r0, r8, r7
86
+ vld1.64 {d0}, [r0], r3
87
+ vld1.64 {d1}, [r0], r3
88
+ vld1.64 {d2}, [r0], r3
89
+ vld1.64 {d3}, [r0], r3
90
+ vld1.64 {d4}, [r0], r3
91
+ vld1.64 {d5}, [r0], r3
92
+ vld1.64 {d6}, [r0], r3
93
+ vld1.64 {d7}, [r0]
94
+
95
+ vpaddl.u8 q0, q0
96
+ vpadal.u8 q0, q1
97
+ vpadal.u8 q0, q2
98
+ vpadal.u8 q0, q3
99
+ vpaddl.u16 q0, q0
100
+ vpadd.i32 d0, d1
101
+ vpadd.i32 d0, d0
102
+
103
+ subs r1, r4, r7, lsl #1
104
+ vst1.16 {d0[0]}, [r1] // sum -> pFeatureOfBlock[i]
105
+ vmov r0, r1, d0
106
+ add r1, r5, r0, lsl #2
107
+ ldr r0, [r1]
108
+ add r0, #1
109
+ str r0, [r1]
110
+
111
+ subs r7, #1
112
+ bne _width_loop8x8_1
113
+
114
+ add r8, r3
115
+ add r4, r4, r6, lsl #1
116
+ subs r2, #1
117
+ beq _SumOf8x8BlockOfFrame_end
118
+
119
+
120
+ _height_loop8x8:
121
+ mov r7, r6
122
+ _width_loop8x8_2:
123
+ subs r0, r8, r7
124
+ subs r1, r4, r7, lsl #1
125
+
126
+ subs r9, r1, r6, lsl #1 // last line of pFeatureOfBlock[i]
127
+ ldrh r10, [r9] // sum of last line of pFeatureOfBlock[i]
128
+
129
+ subs r11, r0, r3
130
+ vld1.64 {d1}, [r11]
131
+ add r0, r11, r3, lsl #3
132
+ vld1.64 {d0}, [r0] //
133
+
134
+ vpaddl.u8 q0, q0
135
+ vpadd.u16 d0, d0, d1
136
+ vpaddl.u16 d0, d0
137
+ vmov r11, r12, d0
138
+ subs r10, r12
139
+ add r0, r10, r11
140
+
141
+ strh r0, [r1] // sum -> pFeatureOfBlock[i]
142
+
143
+ add r1, r5, r0, lsl #2
144
+ ldr r0, [r1]
145
+ add r0, #1
146
+ str r0, [r1]
147
+ subs r7, #1
148
+ bne _width_loop8x8_2
149
+
150
+ add r8, r3
151
+ add r4, r4, r6, lsl #1
152
+ subs r2, #1
153
+ bne _height_loop8x8
154
+ _SumOf8x8BlockOfFrame_end:
155
+ ldmia sp!, {r4-r12}
156
+ WELS_ASM_FUNC_END
157
+
158
+ WELS_ASM_FUNC_BEGIN SumOf16x16BlockOfFrame_neon
159
+ //(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
160
+ stmdb sp!, {r4-r12}
161
+ ldr r5, [sp, #40] //pTimesOfFeatureValue
162
+ ldr r4, [sp, #36] //pFeatureOfBlock
163
+
164
+ mov r8, r0
165
+ mov r6, r1
166
+ add r8, r6
167
+ add r4, r4, r6, lsl #1
168
+
169
+ mov r7, r6
170
+ _width_loop16x16_1:
171
+ subs r0, r8, r7
172
+ vld1.64 {q0}, [r0], r3
173
+ vpaddl.u8 q0, q0
174
+ .rept 15
175
+ vld1.64 {q1}, [r0], r3
176
+ vpadal.u8 q0, q1
177
+ .endr
178
+ vpaddl.u16 q0, q0
179
+ vpadd.i32 d0, d1
180
+ vpadd.i32 d0, d0
181
+
182
+ subs r1, r4, r7, lsl #1
183
+ vst1.16 {d0[0]}, [r1] // sum -> pFeatureOfBlock[i]
184
+ vmov r0, r1, d0
185
+ add r1, r5, r0, lsl #2
186
+ ldr r0, [r1]
187
+ add r0, #1
188
+ str r0, [r1]
189
+
190
+ subs r7, #1
191
+ bne _width_loop16x16_1
192
+ add r8, r3
193
+ add r4, r4, r6, lsl #1
194
+ subs r2, #1
195
+ beq _SumOf16x16BlockOfFrame_neon_end
196
+
197
+ _height_loop16x16:
198
+ mov r7, r6
199
+ _width_loop16x16_2:
200
+ subs r0, r8, r7
201
+ subs r1, r4, r7, lsl #1
202
+ subs r9, r1, r6, lsl #1 // last line of pFeatureOfBlock[i]
203
+ ldrh r10, [r9] // sum of last line of pFeatureOfBlock[i]
204
+
205
+ subs r11, r0, r3
206
+ vld1.64 {q1}, [r11]
207
+ add r0, r11, r3, lsl #4
208
+ vld1.64 {q0}, [r0] //
209
+
210
+ vpaddl.u8 q0, q0
211
+ vpaddl.u8 q1, q1
212
+ vpadd.u16 d0, d0, d1
213
+ vpadd.u16 d1, d2, d3
214
+ vpadd.u16 d0, d0, d1
215
+ vpaddl.u16 d0, d0
216
+
217
+ vmov r11, r12, d0
218
+ subs r10, r12
219
+ add r0, r10, r11
220
+
221
+ strh r0, [r1] // sum -> pFeatureOfBlock[i]
222
+ add r1, r5, r0, lsl #2
223
+ ldr r0, [r1]
224
+ add r0, #1
225
+ str r0, [r1]
226
+
227
+ subs r7, #1
228
+ bne _width_loop16x16_2
229
+
230
+ add r8, r3
231
+ add r4, r4, r6, lsl #1
232
+ subs r2, #1
233
+ bne _height_loop16x16
234
+ _SumOf16x16BlockOfFrame_neon_end:
235
+ ldmia sp!, {r4-r12}
236
+ WELS_ASM_FUNC_END
237
+
238
+ WELS_ASM_FUNC_BEGIN InitializeHashforFeature_neon
239
+ // (uint32_t* pTimesOfFeatureValue, uint16_t* pBuf, const int32_t kiListSize, uint16_t** pLocationOfFeature, uint16_t** pFeatureValuePointerList);
240
+ stmdb sp!, {r4-r7}
241
+ ldr r4, [sp, #16] //pFeatureValuePointerList
242
+ bic r5, r2, #3
243
+ _hash_assign_loop_x4:
244
+ vld1.64 {q0}, [r0]!
245
+ vshl.u32 q0, q0, #2
246
+ vceq.u32 q1, q0, #0
247
+ vand.i32 d2, d2, d3
248
+ vmov r6, r7, d2
249
+ and r6, r6, r7
250
+ cmp r6, #0xffffffff
251
+ beq _hash_assign_with_copy_x4
252
+
253
+ veor q1, q1
254
+ vext.32 q2, q1, q0, #3
255
+ vext.32 q3, q1, q0, #2
256
+ vext.32 q4, q1, q0, #1
257
+ vadd.u32 q0, q0, q2
258
+ vadd.u32 q0, q0, q3
259
+ vadd.u32 q0, q0, q4
260
+ vext.32 q2, q1, q0, #3
261
+ vdup.32 q3, r1
262
+ vadd.u32 q2, q2, q3
263
+ vst1.64 {q2}, [r3]!
264
+ vst1.64 {q2}, [r4]!
265
+ vmov.32 r6, d1[1]
266
+ add r1, r1, r6
267
+ b _assign_next
268
+
269
+ _hash_assign_with_copy_x4:
270
+ vdup.32 q2, r1
271
+ vst1.64 {q2}, [r3]!
272
+ vst1.64 {q2}, [r4]!
273
+
274
+ _assign_next:
275
+ subs r5, r5, #4
276
+ bne _hash_assign_loop_x4
277
+
278
+ and r5, r2, #3
279
+ cmp r5, #0
280
+ beq _hash_assign_end
281
+ _hash_assign_loop_x4_rem:
282
+ str r1, [r3], #4
283
+ str r1, [r4], #4
284
+ ldr r7, [r0], #4
285
+ lsl r7, r7, #2
286
+ add r1, r1, r7
287
+ subs r5, r5, #1
288
+ bne _hash_assign_loop_x4_rem
289
+ _hash_assign_end:
290
+
291
+ ldmia sp!, {r4-r7}
292
+ WELS_ASM_FUNC_END
293
+
294
+ .align 4
295
+ mv_x_inc_x4: .short 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00
296
+ mv_y_inc_x4: .short 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00
297
+ mx_x_offset_x4: .short 0x00, 0x04, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00
298
+
299
+ WELS_ASM_FUNC_BEGIN FillQpelLocationByFeatureValue_neon
300
+ // void (uint16_t* pFeatureOfBlock, const int32_t kiWidth, const int32_t kiHeight, uint16_t** pFeatureValuePointerList)
301
+ stmdb sp!, {r4-r8}
302
+ vpush {q4-q7}
303
+ adr r7, mv_x_inc_x4
304
+ vld1.64 {q7}, [r7]
305
+ adr r7, mv_y_inc_x4
306
+ vld1.64 {q6}, [r7]
307
+ adr r7, mx_x_offset_x4
308
+ vld1.64 {q5}, [r7]
309
+ veor q4, q4
310
+ veor q3, q3
311
+ vdup.32 q8, r3
312
+ _hash_height_loop:
313
+ mov r7, r1
314
+ vmov q2, q5 //mx_x_offset_x4
315
+ _hash_width_loop:
316
+ vld1.64 {d0}, [r0]!
317
+ vshll.u16 q0, d0, #2
318
+ vadd.u32 q0, q8
319
+ vmov q1, q2
320
+ vmov q4, q3
321
+ vzip.16 q1, q4
322
+
323
+ vmov.32 r4, d0[0]
324
+ ldr r5, [r4]
325
+ vmov.32 r6, d2[0]
326
+ str r6, [r5]
327
+ add r5, r5, #4
328
+ pld [r5] // cache miss?
329
+ str r5, [r4]
330
+
331
+ vmov.32 r4, d0[1]
332
+ ldr r5, [r4]
333
+ vmov.32 r6, d2[1]
334
+ str r6, [r5]
335
+ add r5, r5, #4
336
+ pld [r5] // cache miss?
337
+ str r5, [r4]
338
+
339
+ vmov.32 r4, d1[0]
340
+ ldr r5, [r4]
341
+ vmov.32 r6, d3[0]
342
+ str r6, [r5]
343
+ add r5, r5, #4
344
+ pld [r5] // cache miss?
345
+ str r5, [r4]
346
+
347
+ vmov.32 r4, d1[1]
348
+ ldr r5, [r4]
349
+ vmov.32 r6, d3[1]
350
+ str r6, [r5]
351
+ add r5, r5, #4
352
+ pld [r5] // cache miss?
353
+ str r5, [r4]
354
+
355
+ vadd.u16 q2, q2, q7
356
+ subs r7, #4
357
+ bne _hash_width_loop
358
+
359
+ vadd.u16 q3, q3, q6
360
+ subs r2, #1
361
+ bne _hash_height_loop
362
+
363
+ vpop {q4-q7}
364
+ ldmia sp!, {r4-r8}
365
+ WELS_ASM_FUNC_END
366
+ #endif