@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,130 @@
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
+ #ifndef ___LD_ST_MACROS___
34
+ #define ___LD_ST_MACROS___
35
+
36
+ #include <string.h>
37
+ #include "typedefs.h"
38
+
39
+ #ifdef __GNUC__
40
+
41
+ struct tagUnaligned_64 {
42
+ uint64_t l;
43
+ } __attribute__ ((packed)) __attribute__ ((may_alias));
44
+ struct tagUnaligned_32 {
45
+ uint32_t l;
46
+ } __attribute__ ((packed)) __attribute__ ((may_alias));
47
+ struct tagUnaligned_16 {
48
+ uint16_t l;
49
+ } __attribute__ ((packed)) __attribute__ ((may_alias));
50
+
51
+ #define LD16(a) (((struct tagUnaligned_16 *) (a))->l)
52
+ #define LD32(a) (((struct tagUnaligned_32 *) (a))->l)
53
+ #define LD64(a) (((struct tagUnaligned_64 *) (a))->l)
54
+
55
+ #define STRUCTA(size, align) struct tagUnaligned_##size##_##align {\
56
+ uint##size##_t l; \
57
+ } __attribute__ ((aligned(align))) __attribute__ ((may_alias))
58
+ STRUCTA (16, 2);
59
+ STRUCTA (32, 2);
60
+ STRUCTA (32, 4);
61
+ STRUCTA (64, 2);
62
+ STRUCTA (64, 4);
63
+ STRUCTA (64, 8);
64
+ //#define _USE_STRUCT_INT_CVT
65
+ //#ifdef _USE_STRUCT_INT_CVT
66
+ #define ST16(a, b) (((struct tagUnaligned_16 *) (a))->l) = (b)
67
+ #define ST32(a, b) (((struct tagUnaligned_32 *) (a))->l) = (b)
68
+ #define ST64(a, b) (((struct tagUnaligned_64 *) (a))->l) = (b)
69
+
70
+ #define LDA(a, size, align) (((struct tagUnaligned_##size##_##align *) (a))->l)
71
+ #define STA(a, b, size, align) (((struct tagUnaligned_##size##_##align *) (a))->l) = (b)
72
+ #define LD16A2(a) LDA(a, 16, 2)
73
+ #define LD32A2(a) LDA(a, 32, 2)
74
+ #define LD32A4(a) LDA(a, 32, 4)
75
+ #define LD64A2(a) LDA(a, 64, 2)
76
+ #define LD64A4(a) LDA(a, 64, 4)
77
+ #define LD64A8(a) LDA(a, 64, 8)
78
+ #define ST16A2(a, b) STA(a, b, 16, 2)
79
+ #define ST32A2(a, b) STA(a, b, 32, 2)
80
+ #define ST32A4(a, b) STA(a, b, 32, 4)
81
+ #define ST64A2(a, b) STA(a, b, 64, 2)
82
+ #define ST64A4(a, b) STA(a, b, 64, 4)
83
+ #define ST64A8(a, b) STA(a, b, 64, 8)
84
+ //#else
85
+ //inline void __ST16(void *dst, uint16_t v) { memcpy(dst, &v, 2); }
86
+ //inline void __ST32(void *dst, uint32_t v) { memcpy(dst, &v, 4); }
87
+ //inline void __ST64(void *dst, uint64_t v) { memcpy(dst, &v, 8); }
88
+ //#endif
89
+
90
+ #else
91
+
92
+ //#define INTD16(a) (*((int16_t*)(a)))
93
+ //#define INTD32(a) (*((int32_t*)(a)))
94
+ //#define INTD64(a) (*((int64_t*)(a)))
95
+
96
+ #define LD16(a) (*((uint16_t*)(a)))
97
+ #define LD32(a) (*((uint32_t*)(a)))
98
+ #define LD64(a) (*((uint64_t*)(a)))
99
+
100
+ #define ST16(a, b) *((uint16_t*)(a)) = (b)
101
+ #define ST32(a, b) *((uint32_t*)(a)) = (b)
102
+ #define ST64(a, b) *((uint64_t*)(a)) = (b)
103
+ #define LD16A2 LD16
104
+ #define LD32A2 LD32
105
+ #define LD32A4 LD32
106
+ #define LD64A2 LD64
107
+ #define LD64A4 LD64
108
+ #define LD64A8 LD64
109
+ #define ST16A2 ST16
110
+ #define ST32A2 ST32
111
+ #define ST32A4 ST32
112
+ #define ST64A2 ST64
113
+ #define ST64A4 ST64
114
+ #define ST64A8 ST64
115
+
116
+ #endif /* !__GNUC__ */
117
+
118
+ #ifndef INTD16
119
+ #define INTD16 LD16
120
+ #endif//INTD16
121
+
122
+ #ifndef INTD32
123
+ #define INTD32 LD32
124
+ #endif//INTD32
125
+
126
+ #ifndef INTD64
127
+ #define INTD64 LD64
128
+ #endif//INTD64
129
+
130
+ #endif//___LD_ST_MACROS___
@@ -0,0 +1,329 @@
1
+ /*!
2
+ * \copy
3
+ * Copyright (c) 2009-2013, Cisco Systems
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions
8
+ * are met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ *
13
+ * * Redistributions in binary form must reproduce the above copyright
14
+ * notice, this list of conditions and the following disclaimer in
15
+ * the documentation and/or other materials provided with the
16
+ * distribution.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ * POSSIBILITY OF SUCH DAMAGE.
30
+ *
31
+ *
32
+ * \file macros.h
33
+ *
34
+ * \brief MACRO based tool utilization
35
+ *
36
+ * \date 3/13/2009 Created
37
+ *
38
+ *************************************************************************************
39
+ */
40
+ #ifndef WELS_MACRO_UTILIZATIONS_H__
41
+ #define WELS_MACRO_UTILIZATIONS_H__
42
+
43
+ #include <math.h>
44
+ #include <assert.h>
45
+ #include <string.h>
46
+ #include "typedefs.h"
47
+
48
+
49
+ /*
50
+ * ENFORCE_STACK_ALIGN_1D: force 1 dimension local data aligned in stack
51
+ * _tp: type
52
+ * _nm: var name
53
+ * _sz: size
54
+ * _al: align bytes
55
+ * auxiliary var: _nm ## _tEmP
56
+ */
57
+ #define ENFORCE_STACK_ALIGN_1D(_tp, _nm, _sz, _al) \
58
+ _tp _nm ## _tEmP[(_sz)+(_al)-1]; \
59
+ _tp *_nm = _nm ## _tEmP + ((_al)-1) - (((uintptr_t)(_nm ## _tEmP + ((_al)-1)) & ((_al)-1))/sizeof(_tp));
60
+
61
+
62
+ #define ENFORCE_STACK_ALIGN_2D(_tp, _nm, _cx, _cy, _al) \
63
+ assert( ((_al) && !((_al) & ((_al) - 1))) && ((_al) >= sizeof(_tp)) ); /*_al should be power-of-2 and >= sizeof(_tp)*/\
64
+ _tp _nm ## _tEmP[(_cx)*(_cy)+(_al)/sizeof(_tp)-1]; \
65
+ _tp *_nm ## _tEmP_al = _nm ## _tEmP + ((_al)/sizeof(_tp)-1); \
66
+ _nm ## _tEmP_al -= (((uintptr_t)_nm ## _tEmP_al & ((_al)-1))/sizeof(_tp)); \
67
+ _tp (*_nm)[(_cy)] = (_tp (*)[(_cy)])_nm ## _tEmP_al;
68
+
69
+
70
+ #if defined(_MSC_VER)
71
+
72
+ #if(_MSC_VER < 1700)
73
+ #define inline __inline
74
+ #endif
75
+
76
+ #define ALIGNED_DECLARE( type, var, n ) __declspec(align(n)) type var
77
+
78
+ #elif defined(__GNUC__)
79
+
80
+ #define ALIGNED_DECLARE( type, var, n ) type var __attribute__((aligned(n)))
81
+ #endif//_MSC_VER
82
+
83
+
84
+ #ifndef WELS_ALIGN
85
+ #define WELS_ALIGN(x, n) (((x)+(n)-1)&~((n)-1))
86
+ #endif//WELS_ALIGN
87
+
88
+
89
+ #if 1 // Alternative implementation of WELS_MAX and WELS_MIN
90
+ #ifndef WELS_MAX
91
+ #define WELS_MAX(x, y) ((x) > (y) ? (x) : (y))
92
+ #endif//WELS_MAX
93
+
94
+ #ifndef WELS_MIN
95
+ #define WELS_MIN(x, y) ((x) < (y) ? (x) : (y))
96
+ #endif//WELS_MIN
97
+ #ifndef WELS_MIN_POSITIVE
98
+ #define WELS_MIN_POSITIVE(x, y) (x >= 0 && y >= 0) ? WELS_MIN(x, y) : WELS_MAX(x, y);
99
+ #endif//WELS_MIN_POSITIVE
100
+ #else // Alternative implementation of WELS_MAX and WELS_MIN
101
+ #ifndef WELS_MAX
102
+ #define WELS_MAX(x, y) ((x) - (((x)-(y))&(((x)-(y))>>31)))
103
+ #endif//WELS_MAX
104
+
105
+ #ifndef WELS_MIN
106
+ #define WELS_MIN(x, y) ((y) + (((x)-(y))&(((x)-(y))>>31)))
107
+ #endif//WELS_MIN
108
+ #endif // Alternative implementation of WELS_MAX and WELS_MIN
109
+
110
+
111
+ #ifndef WELS_CEIL
112
+ #define WELS_CEIL(x) ceil(x) // FIXME: low complexity instead of math library used
113
+ #endif//WELS_CEIL
114
+
115
+ #ifndef WELS_FLOOR
116
+ #define WELS_FLOOR(x) floor(x) // FIXME: low complexity instead of math library used
117
+ #endif//WELS_FLOOR
118
+
119
+ #ifndef WELS_ROUND
120
+ #define WELS_ROUND(x) ((int32_t)(0.5+(x)))
121
+ #endif//WELS_ROUND
122
+
123
+ #ifndef WELS_ROUND64
124
+ #define WELS_ROUND64(x) ((int64_t)(0.5+(x)))
125
+ #endif//WELS_ROUND
126
+
127
+ #ifndef WELS_DIV_ROUND
128
+ #define WELS_DIV_ROUND(x,y) ((int32_t)((y)==0?((x)/((y)+1)):(((y)/2+(x))/(y))))
129
+ #endif//WELS_DIV_ROUND
130
+
131
+ #ifndef WELS_DIV_ROUND64
132
+ #define WELS_DIV_ROUND64(x,y) ((int64_t)((y)==0?((x)/((y)+1)):(((y)/2+(x))/(y))))
133
+ #endif//WELS_DIV_ROUND64
134
+
135
+ #define WELS_NON_ZERO_COUNT_AVERAGE(nC,nA,nB) { \
136
+ nC = nA + nB + 1; \
137
+ nC >>= (uint8_t)( nA != -1 && nB != -1); \
138
+ nC += (uint8_t)(nA == -1 && nB == -1); \
139
+ }
140
+
141
+ static inline int32_t CeilLog2 (int32_t i) {
142
+ int32_t s = 0;
143
+ i--;
144
+ while (i > 0) {
145
+ s++;
146
+ i >>= 1;
147
+ }
148
+ return s;
149
+ }
150
+ /*
151
+ the second path will degrades the performance
152
+ */
153
+ #if 1
154
+ static inline int32_t WelsMedian (int32_t iX, int32_t iY, int32_t iZ) {
155
+ int32_t iMin = iX, iMax = iX;
156
+
157
+ if (iY < iMin)
158
+ iMin = iY;
159
+ else
160
+ iMax = iY;
161
+
162
+ if (iZ < iMin)
163
+ iMin = iZ;
164
+ else if (iZ > iMax)
165
+ iMax = iZ;
166
+
167
+ return (iX + iY + iZ) - (iMin + iMax);
168
+ }
169
+ #else
170
+ static inline int32_t WelsMedian (int32_t iX, int32_t iY, int32_t iZ) {
171
+ int32_t iTmp = (iX - iY) & ((iX - iY) >> 31);
172
+ iX -= iTmp;
173
+ iY += iTmp;
174
+ iY -= (iY - iZ) & ((iY - iZ) >> 31);
175
+ iY += (iX - iY) & ((iX - iY) >> 31);
176
+ return iY;
177
+ }
178
+
179
+ #endif
180
+
181
+ #ifndef NEG_NUM
182
+ //#define NEG_NUM( num ) (-num)
183
+ #define NEG_NUM(iX) (1+(~(iX)))
184
+ #endif// NEG_NUM
185
+
186
+ static inline uint8_t WelsClip1 (int32_t iX) {
187
+ uint8_t uiTmp = (uint8_t) (((iX) & ~255) ? (- (iX) >> 31) : (iX));
188
+ return uiTmp;
189
+ }
190
+
191
+ #ifndef WELS_SIGN
192
+ #define WELS_SIGN(iX) ((int32_t)(iX) >> 31)
193
+ #endif //WELS_SIGN
194
+ #ifndef WELS_ABS
195
+ #if 1
196
+ #define WELS_ABS(iX) ((iX)>0 ? (iX) : -(iX))
197
+ #else
198
+ #define WELS_ABS(iX) ((WELS_SIGN(iX) ^ (int32_t)(iX)) - WELS_SIGN(iX))
199
+ #endif
200
+ #endif //WELS_ABS
201
+
202
+ // WELS_CLIP3
203
+ #ifndef WELS_CLIP3
204
+ #define WELS_CLIP3(iX, iY, iZ) ((iX) < (iY) ? (iY) : ((iX) > (iZ) ? (iZ) : (iX)))
205
+ #endif //WELS_CLIP3
206
+
207
+ template<typename T> T WelsClip3(T iX, T iY, T iZ) {
208
+ if (iX < iY)
209
+ return iY;
210
+ if (iX > iZ)
211
+ return iZ;
212
+ return iX;
213
+ }
214
+
215
+ #define DISALLOW_COPY_AND_ASSIGN(cclass) \
216
+ private: \
217
+ cclass(const cclass &); \
218
+ cclass& operator=(const cclass &);
219
+
220
+ /*
221
+ * Description: to check variable validation and return the specified result
222
+ * iResult: value to be checked
223
+ * iExpected: the expected value
224
+ */
225
+ #ifndef WELS_VERIFY_RETURN_IFNEQ
226
+ #define WELS_VERIFY_RETURN_IFNEQ(iResult, iExpected) \
227
+ if (iResult != iExpected) { \
228
+ return iResult; \
229
+ }
230
+ #endif//#if WELS_VERIFY_RETURN_IF
231
+
232
+ /*
233
+ * Description: to check variable validation and return the specified result
234
+ * iResult: value to be return
235
+ * bCaseIf: negative condition to be verified
236
+ */
237
+ #ifndef WELS_VERIFY_RETURN_IF
238
+ #define WELS_VERIFY_RETURN_IF(iResult, bCaseIf) \
239
+ if (bCaseIf) { \
240
+ return iResult; \
241
+ }
242
+ #endif//#if WELS_VERIFY_RETURN_IF
243
+
244
+ /*
245
+ * Description: to check variable validation and return the specified result
246
+ * with correspoinding process advance.
247
+ * result: value to be return
248
+ * case_if: negative condition to be verified
249
+ * proc: process need perform
250
+ */
251
+ #ifndef WELS_VERIFY_RETURN_PROC_IF
252
+ #define WELS_VERIFY_RETURN_PROC_IF(iResult, bCaseIf, fProc) \
253
+ if (bCaseIf) { \
254
+ fProc; \
255
+ return iResult; \
256
+ }
257
+ #endif//#if WELS_VERIFY_RETURN_PROC_IF
258
+
259
+ static inline int32_t WELS_LOG2 (uint32_t v) {
260
+ int32_t r = 0;
261
+ while (v >>= 1) {
262
+ ++r;
263
+ }
264
+ return r;
265
+
266
+ }
267
+
268
+ #define CLIP3_QP_0_51(q) WELS_CLIP3(q, 0, 51) // ((q) < (0) ? (0) : ((q) > (51) ? (51) : (q)))
269
+ #define CALC_BI_STRIDE(width,bitcount) ((((width * bitcount) + 31) & ~31) >> 3)
270
+
271
+
272
+
273
+
274
+ #ifndef BUTTERFLY1x2
275
+ #define BUTTERFLY1x2(b) (((b)<<8) | (b))
276
+ #endif//BUTTERFLY1x2
277
+
278
+ #ifndef BUTTERFLY2x4
279
+ #define BUTTERFLY2x4(wd) (((uint32_t)(wd)<<16) |(wd))
280
+ #endif//BUTTERFLY2x4
281
+
282
+ #ifndef BUTTERFLY4x8
283
+ #define BUTTERFLY4x8(dw) (((uint64_t)(dw)<<32) | (dw))
284
+ #endif//BUTTERFLY4x8
285
+
286
+ static inline bool WELS_POWER2_IF (uint32_t v) {
287
+ return (v && ! (v & (v - 1)));
288
+ }
289
+
290
+ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
291
+ #define WELS_GCC_UNUSED __attribute__((__unused__))
292
+ #else
293
+ #define WELS_GCC_UNUSED
294
+ #endif
295
+
296
+ inline bool CheckInRangeCloseOpen (const int16_t kiCurrent, const int16_t kiMin, const int16_t kiMax) {
297
+ return ((kiCurrent >= kiMin) && (kiCurrent < kiMax));
298
+ }
299
+
300
+ static inline void WelsSetMemUint32_c (uint32_t* pDst, uint32_t iValue, int32_t iSizeOfData) {
301
+ for (int i = 0; i < iSizeOfData; i++) {
302
+ pDst[i] = iValue;
303
+ }
304
+ }
305
+
306
+ static inline void WelsSetMemUint16_c (uint16_t* pDst, uint16_t iValue, int32_t iSizeOfData) {
307
+ for (int i = 0; i < iSizeOfData; i++) {
308
+ pDst[i] = iValue;
309
+ }
310
+ }
311
+
312
+ inline void WelsSetMemMultiplebytes_c (void* pDst, uint32_t iValue, int32_t iSizeOfData, int32_t iDataLengthOfData) {
313
+ assert (4 == iDataLengthOfData || 2 == iDataLengthOfData || 1 == iDataLengthOfData);
314
+
315
+ // TODO: consider add assembly for these functions
316
+ if (0 != iValue) {
317
+ if (4 == iDataLengthOfData) {
318
+ WelsSetMemUint32_c (static_cast<uint32_t*> (pDst), static_cast<uint32_t> (iValue), iSizeOfData);
319
+ } else if (2 == iDataLengthOfData) {
320
+ WelsSetMemUint16_c (static_cast<uint16_t*> (pDst), static_cast<uint16_t> (iValue), iSizeOfData);
321
+ } else {
322
+ memset (static_cast<uint8_t*> (pDst), static_cast<uint8_t> (iValue), iSizeOfData);
323
+ }
324
+ } else {
325
+ memset (static_cast<uint8_t*> (pDst), 0, iSizeOfData * iDataLengthOfData);
326
+ }
327
+ }
328
+
329
+ #endif//WELS_MACRO_UTILIZATIONS_H__