@scrypted/libav 1.0.179 → 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 +4 -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,350 @@
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_AARCH64
34
+ #include "arm_arch64_common_macro.S"
35
+ //int32_t SumOf8x8SingleBlock_AArch64_neon (uint8_t* pRef, const int32_t kiRefStride);
36
+ WELS_ASM_AARCH64_FUNC_BEGIN SumOf8x8SingleBlock_AArch64_neon
37
+ SIGN_EXTENSION x1,w1
38
+ ld1 {v0.d}[0], [x0], x1
39
+ ld1 {v0.d}[1], [x0], x1
40
+ ld1 {v1.d}[0], [x0], x1
41
+ ld1 {v1.d}[1], [x0], x1
42
+ ld1 {v2.d}[0], [x0], x1
43
+ ld1 {v2.d}[1], [x0], x1
44
+ ld1 {v3.d}[0], [x0], x1
45
+ ld1 {v3.d}[1], [x0]
46
+ uaddlp v0.8h, v0.16b
47
+ uadalp v0.8h, v1.16b
48
+ uadalp v0.8h, v2.16b
49
+ uadalp v0.8h, v3.16b
50
+ uaddlv s0, v0.8h
51
+ mov x0, v0.d[0]
52
+ WELS_ASM_AARCH64_FUNC_END
53
+
54
+ //int32_t SumOf16x16SingleBlock_AArch64_neon (uint8_t* pRef, const int32_t kiRefStride);
55
+ WELS_ASM_AARCH64_FUNC_BEGIN SumOf16x16SingleBlock_AArch64_neon
56
+ SIGN_EXTENSION x1,w1
57
+ ld1 {v0.16b}, [x0], x1
58
+ uaddlp v0.8h, v0.16b
59
+ .rept 15
60
+ ld1 {v1.16b}, [x0], x1
61
+ uadalp v0.8h, v1.16b
62
+ .endr
63
+ uaddlv s0, v0.8h
64
+ mov x0, v0.d[0]
65
+ WELS_ASM_AARCH64_FUNC_END
66
+
67
+ //void SumOf8x8BlockOfFrame_AArch64_neon (uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,
68
+ // const int32_t kiRefStride,
69
+ // uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[]);
70
+ WELS_ASM_AARCH64_FUNC_BEGIN SumOf8x8BlockOfFrame_AArch64_neon
71
+ //(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
72
+ //x5: pTimesOfFeatureValue
73
+ //x4: pFeatureOfBlock
74
+
75
+ SIGN_EXTENSION x1,w1
76
+ SIGN_EXTENSION x2,w2
77
+ SIGN_EXTENSION x3,w3
78
+ mov x8, x0
79
+ mov x6, x1
80
+ add x8, x8, x6
81
+ add x4, x4, x6, lsl #1
82
+
83
+ mov x7, x6
84
+ _width_loop8x8_1:
85
+ subs x0, x8, x7
86
+ ld1 {v0.d}[0], [x0], x3
87
+ ld1 {v0.d}[1], [x0], x3
88
+ ld1 {v1.d}[0], [x0], x3
89
+ ld1 {v1.d}[1], [x0], x3
90
+ ld1 {v2.d}[0], [x0], x3
91
+ ld1 {v2.d}[1], [x0], x3
92
+ ld1 {v3.d}[0], [x0], x3
93
+ ld1 {v3.d}[1], [x0]
94
+ uaddlp v0.8h, v0.16b
95
+ uadalp v0.8h, v1.16b
96
+ uadalp v0.8h, v2.16b
97
+ uadalp v0.8h, v3.16b
98
+ uaddlv s0, v0.8h
99
+
100
+ subs x1, x4, x7, lsl #1
101
+ st1 {v0.h}[0], [x1] // sum -> pFeatureOfBlock[i]
102
+ mov w0, #0
103
+ ins v0.s[1], w0
104
+ mov x0, v0.d[0]
105
+ add x1, x5, x0, lsl #2
106
+ ldr w0, [x1]
107
+ add w0, w0, #1
108
+ str w0, [x1]
109
+ subs x7, x7, #1
110
+ cbnz x7, _width_loop8x8_1
111
+
112
+ add x8, x8, x3
113
+ add x4, x4, x6, lsl #1
114
+ subs x2, x2, #1
115
+ cbz x2, _SumOf8x8BlockOfFrame_AArch64_neon_end
116
+
117
+ _height_loop8x8:
118
+ mov x7, x6
119
+ _width_loop8x8_2:
120
+ subs x0, x8, x7
121
+ subs x1, x4, x7, lsl #1
122
+ subs x9, x1, x6, lsl #1 // last line of pFeatureOfBlock[i]
123
+ ldrh w10, [x9] // sum of last line of pFeatureOfBlock[i]
124
+
125
+ subs x11, x0, x3
126
+ ld1 {v0.d}[1], [x11]
127
+ add x0, x11, x3, lsl #3
128
+ ld1 {v0.d}[0], [x0] //
129
+
130
+ uaddlp v0.8h, v0.16b
131
+ addp v0.8h, v0.8h, v1.8h
132
+ uaddlp v0.4s, v0.8h
133
+ umov w11, v0.s[0]
134
+ umov w12, v0.s[1]
135
+
136
+ subs w10, w10, w12
137
+ mov x0, #0
138
+ add w0, w10, w11
139
+ strh w0, [x1] // sum -> pFeatureOfBlock[i]
140
+ add x1, x5, x0, lsl #2
141
+ ldr w0, [x1]
142
+ add w0, w0, #1
143
+ str w0, [x1]
144
+ subs x7, x7, #1
145
+ cbnz x7, _width_loop8x8_2
146
+
147
+ add x8, x8, x3
148
+ add x4, x4, x6, lsl #1
149
+ subs x2, x2, #1
150
+ cbnz x2, _height_loop8x8
151
+ _SumOf8x8BlockOfFrame_AArch64_neon_end:
152
+ WELS_ASM_AARCH64_FUNC_END
153
+
154
+ WELS_ASM_AARCH64_FUNC_BEGIN SumOf16x16BlockOfFrame_AArch64_neon
155
+ //(uint8_t* pRefPicture, const int32_t kiWidth, const int32_t kiHeight,const int32_t kiRefStride,uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[])
156
+ //x5: pTimesOfFeatureValue
157
+ //x4: pFeatureOfBlock
158
+
159
+ SIGN_EXTENSION x1,w1
160
+ SIGN_EXTENSION x2,w2
161
+ SIGN_EXTENSION x3,w3
162
+ mov x8, x0
163
+ mov x6, x1
164
+ add x8, x8, x6
165
+ add x4, x4, x6, lsl #1
166
+
167
+ mov x7, x6
168
+ _width_loop16x16_1:
169
+ subs x0, x8, x7
170
+ ld1 {v0.16b}, [x0], x3
171
+ uaddlp v0.8h, v0.16b
172
+ .rept 15
173
+ ld1 {v1.16b}, [x0], x3
174
+ uadalp v0.8h, v1.16b
175
+ .endr
176
+ uaddlv s0, v0.8h
177
+
178
+ subs x1, x4, x7, lsl #1
179
+ st1 {v0.h}[0], [x1] // sum -> pFeatureOfBlock[i]
180
+ mov w0, #0
181
+ ins v0.s[1], w0
182
+ mov x0, v0.d[0]
183
+ add x1, x5, x0, lsl #2
184
+ ldr w0, [x1]
185
+ add w0, w0, #1
186
+ str w0, [x1]
187
+ subs x7, x7, #1
188
+ cbnz x7, _width_loop16x16_1
189
+
190
+ add x8, x8, x3
191
+ add x4, x4, x6, lsl #1
192
+ subs x2, x2, #1
193
+ cbz x2, _SumOf16x16BlockOfFrame_AArch64_neon_end
194
+
195
+ _height_loop16x16:
196
+ mov x7, x6
197
+ _width_loop16x16_2:
198
+ subs x0, x8, x7
199
+
200
+ subs x1, x4, x7, lsl #1
201
+ subs x9, x1, x6, lsl #1 // last line of pFeatureOfBlock[i]
202
+ ldrh w10, [x9] // sum of last line of pFeatureOfBlock[i]
203
+
204
+ subs x11, x0, x3
205
+ ld1 {v1.16b}, [x11]
206
+ add x0, x11, x3, lsl #4
207
+ ld1 {v0.16b}, [x0] //
208
+
209
+ uaddlv h0, v0.16b
210
+ uaddlv h1, v1.16b
211
+ umov w11, v0.h[0]
212
+ umov w12, v1.h[0]
213
+
214
+ subs w10, w10, w12
215
+ mov x0, #0
216
+ add w0, w10, w11
217
+ strh w0, [x1] // sum -> pFeatureOfBlock[i]
218
+ add x1, x5, x0, lsl #2
219
+ ldr w0, [x1]
220
+ add w0, w0, #1
221
+ str w0, [x1]
222
+ subs x7, x7, #1
223
+ cbnz x7, _width_loop16x16_2
224
+
225
+ add x8, x8, x3
226
+ add x4, x4, x6, lsl #1
227
+ subs x2, x2, #1
228
+ cbnz x2, _height_loop16x16
229
+ _SumOf16x16BlockOfFrame_AArch64_neon_end:
230
+ WELS_ASM_AARCH64_FUNC_END
231
+
232
+ WELS_ASM_AARCH64_FUNC_BEGIN InitializeHashforFeature_AArch64_neon
233
+ // (uint32_t* pTimesOfFeatureValue, uint16_t* pBuf, const int32_t kiListSize, uint16_t** pLocationOfFeature, uint16_t** pFeatureValuePointerList);
234
+ SIGN_EXTENSION x2,w2
235
+ mov x9, #3
236
+ bic x5, x2, x9
237
+ mov x8, #0
238
+ _hash_assign_loop_x4:
239
+ ld1 {v0.16b}, [x0], #16
240
+ shl v0.4s, v0.4s, #2
241
+ addv s1, v0.4s
242
+ umov w7, v1.s[0]
243
+ cbz w7, _hash_assign_with_copy_x4
244
+
245
+ ins v2.d[0], x1
246
+ umov w8, v0.s[0]
247
+ add x1, x1, x8
248
+ ins v2.d[1], x1
249
+ umov w8, v0.s[1]
250
+ add x1, x1, x8
251
+ ins v3.d[0], x1
252
+ umov w8, v0.s[2]
253
+ add x1, x1, x8
254
+ ins v3.d[1], x1
255
+ umov w8, v0.s[3]
256
+ add x1, x1, x8
257
+ st1 {v2.16b, v3.16b}, [x3], #32
258
+ st1 {v2.16b, v3.16b}, [x4], #32
259
+ b _assign_next
260
+ _hash_assign_with_copy_x4:
261
+ dup v2.2d, x1
262
+ dup v3.2d, x1
263
+ st1 {v2.16b, v3.16b}, [x3], #32
264
+ st1 {v2.16b, v3.16b}, [x4], #32
265
+
266
+ _assign_next:
267
+ subs x5, x5, #4
268
+ cbnz x5, _hash_assign_loop_x4
269
+
270
+ and x5, x2, x9
271
+ cbz x5, _hash_assign_end
272
+
273
+
274
+ _hash_assign_loop_x4_rem:
275
+ str x1, [x3], #8
276
+ str x1, [x4], #8
277
+ ldr w8, [x0], #4
278
+ lsl w8, w8, #2
279
+ add x1, x1, x8
280
+ subs x5, x5, #1
281
+ cbnz x5, _hash_assign_loop_x4_rem
282
+
283
+ _hash_assign_end:
284
+ WELS_ASM_AARCH64_FUNC_END
285
+
286
+ .align 4
287
+ mv_x_inc_x4: .short 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00
288
+ mv_y_inc_x4: .short 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00
289
+ mx_x_offset_x4: .short 0x00, 0x04, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00
290
+
291
+ WELS_ASM_AARCH64_FUNC_BEGIN FillQpelLocationByFeatureValue_AArch64_neon
292
+ // void (uint16_t* pFeatureOfBlock, const int32_t kiWidth, const int32_t kiHeight, uint16_t** pFeatureValuePointerList)
293
+ ldr q7, mv_x_inc_x4
294
+ ldr q6, mv_y_inc_x4
295
+ ldr q5, mx_x_offset_x4
296
+ SIGN_EXTENSION x1,w1
297
+ SIGN_EXTENSION x2,w2
298
+ eor v4.16b, v4.16b, v4.16b
299
+ eor v3.16b, v3.16b, v3.16b
300
+ dup v16.2d, x3 // v8->v16
301
+
302
+ _hash_height_loop:
303
+ mov x7, x1
304
+ mov v2.16b, v5.16b //mx_x_offset_x4
305
+
306
+ _hash_width_loop:
307
+ ld1 {v0.d}[0], [x0], #8
308
+
309
+ ushll v0.4s, v0.4h, #3
310
+ uaddw v17.2d, v16.2d, v0.2s
311
+ uaddw2 v18.2d, v16.2d, v0.4s
312
+ zip1 v1.8h, v2.8h, v3.8h
313
+
314
+ umov x4, v17.d[0]
315
+ ldr x5, [x4]
316
+ umov w6, v1.s[0]
317
+ str w6, [x5]
318
+ add x5, x5, #4
319
+ str x5, [x4]
320
+
321
+ umov x4, v17.d[1]
322
+ ldr x5, [x4]
323
+ umov w6, v1.s[1]
324
+ str w6, [x5]
325
+ add x5, x5, #4
326
+ str x5, [x4]
327
+
328
+ umov x4, v18.d[0]
329
+ ldr x5, [x4]
330
+ umov w6, v1.s[2]
331
+ str w6, [x5]
332
+ add x5, x5, #4
333
+ str x5, [x4]
334
+
335
+ umov x4, v18.d[1]
336
+ ldr x5, [x4]
337
+ umov w6, v1.s[3]
338
+ str w6, [x5]
339
+ add x5, x5, #4
340
+ str x5, [x4]
341
+
342
+ add v2.8h, v2.8h, v7.8h
343
+ subs x7, x7, #4
344
+ cbnz x7, _hash_width_loop
345
+
346
+ add v3.8h, v3.8h, v6.8h
347
+ subs x2, x2, #1
348
+ cbnz x2, _hash_height_loop
349
+ WELS_ASM_AARCH64_FUNC_END
350
+ #endif
@@ -0,0 +1,138 @@
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 common.h
33
+ *
34
+ * \brief common flag definitions
35
+ *
36
+ * \date 7/6/2009 Created
37
+ *
38
+ *************************************************************************************
39
+ */
40
+
41
+ #ifndef AS264_COMMON_H_
42
+ #define AS264_COMMON_H_
43
+
44
+ /* debug setting for console
45
+ $(TargetPath)
46
+ -iper 60 -lqp 26 -frin 2 -rc 1 -cf 4 -org desktop.bgra -sw 800 -sh 592 -bf desktop.h264
47
+ .\..\..\..\..\bin
48
+ */
49
+
50
+ /****************************************************************************
51
+ * Options for algorithm, usually change bitrate
52
+ ****************************************************************************/
53
+ #define DISABLE_FMO_FEATURE //
54
+
55
+ /****************************************************************************
56
+ * Options for optimization, not change bitrate
57
+ ****************************************************************************/
58
+ //#undef X86_ASM // X86_ASM is included in project preprocessor definitions, undef it when need to disable asm code
59
+ #define SINGLE_REF_FRAME // need to disable it when use multi-reference
60
+
61
+
62
+ #if defined(WELS_TESTBED) // for SGE testing
63
+ #define ENABLE_FRAME_DUMP
64
+
65
+ #ifdef FRAME_INFO_OUTPUT
66
+ #undef FRAME_INFO_OUTPUT
67
+ #endif//FRAME_INFO_OUTPUT
68
+ #endif//WELS_TESTBED
69
+
70
+
71
+ #if defined(__UNITTEST__) // for unittest
72
+ #ifndef ENABLE_FRAME_DUMP
73
+ #define ENABLE_FRAME_DUMP
74
+ #endif//ENABLE_FRAME_DUMP
75
+ #endif//__UNITTEST__
76
+
77
+ //#define STAT_OUTPUT
78
+ //#define MB_TYPES_CHECK
79
+ //
80
+ //#define FRAME_INFO_OUTPUT
81
+ //#define LAYER_INFO_OUTPUT
82
+ //#define SLICE_INFO_OUTPUT // useful in multiple slice coding track
83
+ //#define MB_TYPES_INFO_OUTPUT
84
+
85
+
86
+ /* macros dependencies check */
87
+ //@if !FRAME_INFO_OUTPUT
88
+ #if !defined(FRAME_INFO_OUTPUT)
89
+
90
+ //#if defined(STAT_OUTPUT)
91
+ //#undef STAT_OUTPUT
92
+ //#endif//STAT_OUTPUT
93
+
94
+ #if defined(LAYER_INFO_OUTPUT)
95
+ #undef LAYER_INFO_OUTPUT
96
+ #endif//LAYER_INFO_OUTPUT
97
+
98
+ #if defined(SLICE_INFO_OUTPUT)
99
+ #undef SLICE_INFO_OUTPUT
100
+ #endif//SLICE_INFO_OUTPUT
101
+
102
+ #if defined(MB_TYPES_INFO_OUTPUT)
103
+ #undef MB_TYPES_INFO_OUTPUT
104
+ #endif//MB_TYPES_INFO_OUTPUT
105
+
106
+ #endif//FRAME_INFO_OUTPUT
107
+
108
+ //@if SLICE_INFO_OUTPUT
109
+ #if defined(SLICE_INFO_OUTPUT)
110
+
111
+ #if !defined(FRAME_INFO_OUTPUT)
112
+ #define FRAME_INFO_OUTPUT
113
+ #endif//FRAME_INFO_OUTPUT
114
+
115
+ #if !defined(LAYER_INFO_OUTPUT)
116
+ #define LAYER_INFO_OUTPUT
117
+ #endif//LAYER_INFO_OUTPUT
118
+
119
+ #endif//SLICE_INFO_OUTPUT
120
+
121
+ #if defined(LAYER_INFO_OUTPUT)
122
+
123
+ #if !defined(FRAME_INFO_OUTPUT)
124
+ #define FRAME_INFO_OUTPUT
125
+ #endif//!FRAME_INFO_OUTPUT
126
+
127
+ #endif//LAYER_INFO_OUTPUT
128
+
129
+ //@if MB_TYPES_INFO_OUTPUT
130
+ #if defined(MB_TYPES_INFO_OUTPUT)
131
+
132
+ #if !defined(MB_TYPES_CHECK)
133
+ #define MB_TYPES_CHECK
134
+ #endif//MB_TYPES_CHECK
135
+ #endif//MB_TYPES_INFO_OUTPUT
136
+
137
+ #endif // AS264_COMMON_H_
138
+
@@ -0,0 +1,152 @@
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 au_set.h
33
+ *
34
+ * \brief Interfaces introduced in Access Unit level based writer
35
+ *
36
+ * \date 05/18/2009 Created
37
+ * 05/21/2009 Added init_sps and init_pps
38
+ *
39
+ *************************************************************************************
40
+ */
41
+
42
+ #ifndef WELS_ACCESS_UNIT_WRITER_H__
43
+ #define WELS_ACCESS_UNIT_WRITER_H__
44
+
45
+ #include "parameter_sets.h"
46
+ #include "paraset_strategy.h"
47
+ #include "param_svc.h"
48
+ #include "utils.h"
49
+ namespace WelsEnc {
50
+ /*!
51
+ *************************************************************************************
52
+ * \brief to write Sequence Parameter Set (SPS)
53
+ *
54
+ * \param pSps SWelsSPS to be wrote
55
+ * \param bs_aux bitstream writer auxiliary
56
+ *
57
+ * \return 0 - successed
58
+ * 1 - failed
59
+ *
60
+ * \note Call it in case EWelsNalUnitType is SPS.
61
+ *************************************************************************************
62
+ */
63
+
64
+ int32_t WelsWriteSpsNal (SWelsSPS* pSps, SBitStringAux* pBitStringAux, int32_t* pSpsIdDelta);
65
+
66
+
67
+ /*!
68
+ *************************************************************************************
69
+ * \brief to write SubSet Sequence Parameter Set
70
+ *
71
+ * \param sub_sps subset pSps parsed
72
+ * \param bs_aux bitstream writer auxiliary
73
+ *
74
+ * \return 0 - successed
75
+ * 1 - failed
76
+ *
77
+ * \note Call it in case EWelsNalUnitType is SubSet SPS.
78
+ *************************************************************************************
79
+ */
80
+ int32_t WelsWriteSubsetSpsSyntax (SSubsetSps* pSubsetSps, SBitStringAux* pBitStringAux , int32_t* pSpsIdDelta);
81
+
82
+
83
+ /*!
84
+ *************************************************************************************
85
+ * \brief to write Picture Parameter Set (PPS)
86
+ *
87
+ * \param pPps pPps
88
+ * \param bs_aux bitstream writer auxiliary
89
+ *
90
+ * \return 0 - successed
91
+ * 1 - failed
92
+ *
93
+ * \note Call it in case EWelsNalUnitType is PPS.
94
+ *************************************************************************************
95
+ */
96
+ int32_t WelsWritePpsSyntax (SWelsPPS* pPps, SBitStringAux* pBitStringAux, IWelsParametersetStrategy* pParametersetStrategy);
97
+
98
+ /*!
99
+ * \brief initialize pSps based on configurable parameters in svc
100
+ * \param pSps SWelsSPS*
101
+ * \param pLayerParam SSpatialLayerConfig dependency layer parameter
102
+ * \param pLayerParamInternal SSpatialLayerInternal*, internal dependency layer parameter
103
+ * \param iSpsId SPS Id
104
+ * \return 0 - successful
105
+ * 1 - failed
106
+ */
107
+ int32_t WelsInitSps (SWelsSPS* pSps, SSpatialLayerConfig* pLayerParam, SSpatialLayerInternal* pLayerParamInternal,
108
+ const uint32_t kuiIntraPeriod, const int32_t kiNumRefFrame,
109
+ const uint32_t kiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
110
+ const int32_t kiDlayerCount,bool bSVCBaselayer);
111
+
112
+ /*!
113
+ * \brief initialize subset pSps based on configurable parameters in svc
114
+ * \param pSubsetSps SSubsetSps*
115
+ * \param pLayerParam SSpatialLayerConfig dependency layer parameter
116
+ * \param pLayerParamInternal SSpatialLayerInternal*, internal dependency layer parameter
117
+ * \param kiSpsId SPS Id
118
+ * \return 0 - successful
119
+ * 1 - failed
120
+ */
121
+ int32_t WelsInitSubsetSps (SSubsetSps* pSubsetSps, SSpatialLayerConfig* pLayerParam,
122
+ SSpatialLayerInternal* pLayerParamInternal,
123
+ const uint32_t kuiIntraPeriod, const int32_t kiNumRefFrame,
124
+ const uint32_t kiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
125
+ const int32_t kiDlayerCount);
126
+
127
+ /*!
128
+ * \brief initialize pPps based on configurable parameters and pSps(subset pSps) in svc
129
+ * \param pPps SWelsPPS*
130
+ * \param pSps SWelsSPS*
131
+ * \param pSubsetSps SSubsetSps*
132
+ * \param kbDeblockingFilterPresentFlag bool
133
+ * \param kiPpsId PPS Id
134
+ * \param kbUsingSubsetSps bool
135
+ * \return 0 - successful
136
+ * 1 - failed
137
+ */
138
+ int32_t WelsInitPps (SWelsPPS* pPps,
139
+ SWelsSPS* pSps,
140
+ SSubsetSps* pSubsetSps,
141
+ const uint32_t kuiPpsId,
142
+ const bool kbDeblockingFilterPresentFlag,
143
+ const bool kbUsingSubsetSps,
144
+ const bool kbEntropyCodingModeFlag);
145
+
146
+ int32_t WelsCheckRefFrameLimitationNumRefFirst (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam);
147
+ int32_t WelsCheckRefFrameLimitationLevelIdcFirst (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam);
148
+
149
+ int32_t WelsAdjustLevel (SSpatialLayerConfig* pSpatialLayer,const SLevelLimits *pCurLevel);
150
+
151
+ }
152
+ #endif//WELS_ACCESS_UNIT_PARSER_H__