@scrypted/libav 1.0.181 → 1.0.182

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 (339) hide show
  1. package/package.json +1 -1
  2. package/_openh264install/include/wels/codec_api.h +0 -592
  3. package/_openh264install/include/wels/codec_app_def.h +0 -820
  4. package/_openh264install/include/wels/codec_def.h +0 -216
  5. package/_openh264install/include/wels/codec_ver.h +0 -15
  6. package/_openh264install/lib/libopenh264.a +0 -0
  7. package/_openh264install/lib/pkgconfig/openh264.pc +0 -10
  8. package/openh264/.reviewboardrc +0 -3
  9. package/openh264/.travis.yml +0 -42
  10. package/openh264/CODING_STYLE +0 -8
  11. package/openh264/CONTRIBUTORS +0 -55
  12. package/openh264/LICENSE +0 -23
  13. package/openh264/Makefile +0 -408
  14. package/openh264/README.md +0 -197
  15. package/openh264/RELEASES +0 -467
  16. package/openh264/SECURITY.md +0 -16
  17. package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +0 -431
  18. package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +0 -180
  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 +0 -193
  22. package/openh264/autotest/performanceTest/ios/uiascript.js +0 -19
  23. package/openh264/autotest/performanceTest/parsePerfData.sh +0 -107
  24. package/openh264/autotest/performanceTest/run_perfTest.sh +0 -122
  25. package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +0 -112
  26. package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +0 -167
  27. package/openh264/autotest/unitTest/run_ParseUTxml.sh +0 -70
  28. package/openh264/autotest/unitTest/run_unitTest.sh +0 -98
  29. package/openh264/build.gradle +0 -30
  30. package/openh264/code-coverage.sh +0 -6
  31. package/openh264/codec/api/meson.build +0 -1
  32. package/openh264/codec/api/wels/codec_api.h +0 -592
  33. package/openh264/codec/api/wels/codec_app_def.h +0 -820
  34. package/openh264/codec/api/wels/codec_def.h +0 -216
  35. package/openh264/codec/api/wels/codec_ver.h +0 -15
  36. package/openh264/codec/api/wels/meson.build +0 -9
  37. package/openh264/codec/common/arm/arm_arch_common_macro.S +0 -83
  38. package/openh264/codec/common/arm/copy_mb_neon.S +0 -161
  39. package/openh264/codec/common/arm/deblocking_neon.S +0 -857
  40. package/openh264/codec/common/arm/expand_picture_neon.S +0 -154
  41. package/openh264/codec/common/arm/intra_pred_common_neon.S +0 -82
  42. package/openh264/codec/common/arm/mc_neon.S +0 -2283
  43. package/openh264/codec/common/arm64/arm_aarch64_common.h +0 -85
  44. package/openh264/codec/common/arm64/arm_arch64_common_macro.S +0 -79
  45. package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +0 -202
  46. package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +0 -852
  47. package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +0 -150
  48. package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +0 -58
  49. package/openh264/codec/common/arm64/mc_aarch64_neon.S +0 -2614
  50. package/openh264/codec/common/generate_version.sh +0 -28
  51. package/openh264/codec/common/inc/WelsList.h +0 -287
  52. package/openh264/codec/common/inc/WelsLock.h +0 -97
  53. package/openh264/codec/common/inc/WelsTask.h +0 -75
  54. package/openh264/codec/common/inc/WelsTaskThread.h +0 -83
  55. package/openh264/codec/common/inc/WelsThread.h +0 -106
  56. package/openh264/codec/common/inc/WelsThreadLib.h +0 -151
  57. package/openh264/codec/common/inc/WelsThreadPool.h +0 -124
  58. package/openh264/codec/common/inc/asmdefs_mmi.h +0 -345
  59. package/openh264/codec/common/inc/copy_mb.h +0 -103
  60. package/openh264/codec/common/inc/cpu.h +0 -81
  61. package/openh264/codec/common/inc/cpu_core.h +0 -103
  62. package/openh264/codec/common/inc/crt_util_safe_x.h +0 -104
  63. package/openh264/codec/common/inc/deblocking_common.h +0 -124
  64. package/openh264/codec/common/inc/expand_pic.h +0 -107
  65. package/openh264/codec/common/inc/golomb_common.h +0 -166
  66. package/openh264/codec/common/inc/intra_pred_common.h +0 -86
  67. package/openh264/codec/common/inc/loongson_intrinsics.h +0 -1919
  68. package/openh264/codec/common/inc/ls_defines.h +0 -130
  69. package/openh264/codec/common/inc/macros.h +0 -329
  70. package/openh264/codec/common/inc/mc.h +0 -407
  71. package/openh264/codec/common/inc/measure_time.h +0 -88
  72. package/openh264/codec/common/inc/memory_align.h +0 -116
  73. package/openh264/codec/common/inc/msa_macros.h +0 -2393
  74. package/openh264/codec/common/inc/sad_common.h +0 -139
  75. package/openh264/codec/common/inc/typedefs.h +0 -86
  76. package/openh264/codec/common/inc/utils.h +0 -95
  77. package/openh264/codec/common/inc/version.h +0 -10
  78. package/openh264/codec/common/inc/version_gen.h.template +0 -6
  79. package/openh264/codec/common/inc/welsCodecTrace.h +0 -64
  80. package/openh264/codec/common/inc/wels_common_defs.h +0 -373
  81. package/openh264/codec/common/inc/wels_const_common.h +0 -63
  82. package/openh264/codec/common/loongarch/copy_mb_lsx.c +0 -194
  83. package/openh264/codec/common/loongarch/deblock_lsx.c +0 -1489
  84. package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +0 -112
  85. package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +0 -91
  86. package/openh264/codec/common/loongarch/mc_chroma_lsx.c +0 -192
  87. package/openh264/codec/common/loongarch/mc_horver_lsx.c +0 -654
  88. package/openh264/codec/common/loongarch/satd_sad_lasx.c +0 -568
  89. package/openh264/codec/common/meson.build +0 -84
  90. package/openh264/codec/common/mips/copy_mb_mmi.c +0 -477
  91. package/openh264/codec/common/mips/copy_mb_msa.c +0 -80
  92. package/openh264/codec/common/mips/deblock_mmi.c +0 -2826
  93. package/openh264/codec/common/mips/deblock_msa.c +0 -1024
  94. package/openh264/codec/common/mips/expand_picture_mmi.c +0 -673
  95. package/openh264/codec/common/mips/intra_pred_com_mmi.c +0 -548
  96. package/openh264/codec/common/mips/satd_sad_mmi.c +0 -2154
  97. package/openh264/codec/common/targets.mk +0 -136
  98. package/openh264/codec/common/x86/asm_inc.asm +0 -743
  99. package/openh264/codec/common/x86/cpuid.asm +0 -263
  100. package/openh264/codec/common/x86/dct.asm +0 -1036
  101. package/openh264/codec/common/x86/deblock.asm +0 -848
  102. package/openh264/codec/common/x86/expand_picture.asm +0 -728
  103. package/openh264/codec/common/x86/intra_pred_com.asm +0 -117
  104. package/openh264/codec/common/x86/mb_copy.asm +0 -615
  105. package/openh264/codec/common/x86/mc_chroma.asm +0 -313
  106. package/openh264/codec/common/x86/mc_luma.asm +0 -4490
  107. package/openh264/codec/common/x86/satd_sad.asm +0 -2734
  108. package/openh264/codec/common/x86/vaa.asm +0 -411
  109. package/openh264/codec/console/common/inc/read_config.h +0 -68
  110. package/openh264/codec/console/common/meson.build +0 -12
  111. package/openh264/codec/console/common/targets.mk +0 -20
  112. package/openh264/codec/console/dec/inc/d3d9_utils.h +0 -148
  113. package/openh264/codec/console/dec/meson.build +0 -15
  114. package/openh264/codec/console/dec/targets.mk +0 -20
  115. package/openh264/codec/console/enc/meson.build +0 -9
  116. package/openh264/codec/console/enc/targets.mk +0 -19
  117. package/openh264/codec/console/meson.build +0 -3
  118. package/openh264/codec/decoder/core/arm/block_add_neon.S +0 -129
  119. package/openh264/codec/decoder/core/arm/intra_pred_neon.S +0 -635
  120. package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +0 -131
  121. package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +0 -524
  122. package/openh264/codec/decoder/core/inc/au_parser.h +0 -199
  123. package/openh264/codec/decoder/core/inc/bit_stream.h +0 -62
  124. package/openh264/codec/decoder/core/inc/cabac_decoder.h +0 -111
  125. package/openh264/codec/decoder/core/inc/deblocking.h +0 -118
  126. package/openh264/codec/decoder/core/inc/dec_frame.h +0 -156
  127. package/openh264/codec/decoder/core/inc/dec_golomb.h +0 -344
  128. package/openh264/codec/decoder/core/inc/decode_mb_aux.h +0 -83
  129. package/openh264/codec/decoder/core/inc/decode_slice.h +0 -104
  130. package/openh264/codec/decoder/core/inc/decoder.h +0 -186
  131. package/openh264/codec/decoder/core/inc/decoder_context.h +0 -590
  132. package/openh264/codec/decoder/core/inc/decoder_core.h +0 -206
  133. package/openh264/codec/decoder/core/inc/error_code.h +0 -222
  134. package/openh264/codec/decoder/core/inc/error_concealment.h +0 -68
  135. package/openh264/codec/decoder/core/inc/fmo.h +0 -114
  136. package/openh264/codec/decoder/core/inc/get_intra_predictor.h +0 -191
  137. package/openh264/codec/decoder/core/inc/manage_dec_ref.h +0 -62
  138. package/openh264/codec/decoder/core/inc/mb_cache.h +0 -80
  139. package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +0 -66
  140. package/openh264/codec/decoder/core/inc/mv_pred.h +0 -195
  141. package/openh264/codec/decoder/core/inc/nal_prefix.h +0 -56
  142. package/openh264/codec/decoder/core/inc/nalu.h +0 -79
  143. package/openh264/codec/decoder/core/inc/parameter_sets.h +0 -217
  144. package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +0 -89
  145. package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +0 -137
  146. package/openh264/codec/decoder/core/inc/pic_queue.h +0 -62
  147. package/openh264/codec/decoder/core/inc/picture.h +0 -112
  148. package/openh264/codec/decoder/core/inc/rec_mb.h +0 -104
  149. package/openh264/codec/decoder/core/inc/slice.h +0 -208
  150. package/openh264/codec/decoder/core/inc/vlc_decoder.h +0 -177
  151. package/openh264/codec/decoder/core/inc/wels_common_basis.h +0 -317
  152. package/openh264/codec/decoder/core/inc/wels_const.h +0 -65
  153. package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +0 -170
  154. package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +0 -296
  155. package/openh264/codec/decoder/core/mips/dct_mmi.c +0 -786
  156. package/openh264/codec/decoder/core/x86/dct.asm +0 -72
  157. package/openh264/codec/decoder/core/x86/intra_pred.asm +0 -1456
  158. package/openh264/codec/decoder/meson.build +0 -69
  159. package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +0 -170
  160. package/openh264/codec/decoder/targets.mk +0 -115
  161. package/openh264/codec/encoder/core/arm/intra_pred_neon.S +0 -589
  162. package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +0 -735
  163. package/openh264/codec/encoder/core/arm/memory_neon.S +0 -62
  164. package/openh264/codec/encoder/core/arm/pixel_neon.S +0 -882
  165. package/openh264/codec/encoder/core/arm/reconstruct_neon.S +0 -903
  166. package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +0 -366
  167. package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +0 -505
  168. package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +0 -611
  169. package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +0 -63
  170. package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +0 -621
  171. package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +0 -717
  172. package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +0 -350
  173. package/openh264/codec/encoder/core/inc/as264_common.h +0 -138
  174. package/openh264/codec/encoder/core/inc/au_set.h +0 -152
  175. package/openh264/codec/encoder/core/inc/deblocking.h +0 -92
  176. package/openh264/codec/encoder/core/inc/decode_mb_aux.h +0 -112
  177. package/openh264/codec/encoder/core/inc/dq_map.h +0 -58
  178. package/openh264/codec/encoder/core/inc/encode_mb_aux.h +0 -199
  179. package/openh264/codec/encoder/core/inc/encoder.h +0 -148
  180. package/openh264/codec/encoder/core/inc/encoder_context.h +0 -240
  181. package/openh264/codec/encoder/core/inc/extern.h +0 -124
  182. package/openh264/codec/encoder/core/inc/get_intra_predictor.h +0 -186
  183. package/openh264/codec/encoder/core/inc/mb_cache.h +0 -141
  184. package/openh264/codec/encoder/core/inc/md.h +0 -181
  185. package/openh264/codec/encoder/core/inc/mt_defs.h +0 -91
  186. package/openh264/codec/encoder/core/inc/mv_pred.h +0 -191
  187. package/openh264/codec/encoder/core/inc/nal_encap.h +0 -143
  188. package/openh264/codec/encoder/core/inc/param_svc.h +0 -576
  189. package/openh264/codec/encoder/core/inc/parameter_sets.h +0 -181
  190. package/openh264/codec/encoder/core/inc/paraset_strategy.h +0 -310
  191. package/openh264/codec/encoder/core/inc/picture.h +0 -137
  192. package/openh264/codec/encoder/core/inc/picture_handle.h +0 -66
  193. package/openh264/codec/encoder/core/inc/rc.h +0 -284
  194. package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +0 -148
  195. package/openh264/codec/encoder/core/inc/sample.h +0 -154
  196. package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +0 -127
  197. package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +0 -92
  198. package/openh264/codec/encoder/core/inc/slice.h +0 -212
  199. package/openh264/codec/encoder/core/inc/slice_multi_threading.h +0 -97
  200. package/openh264/codec/encoder/core/inc/stat.h +0 -102
  201. package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +0 -102
  202. package/openh264/codec/encoder/core/inc/svc_enc_frame.h +0 -136
  203. package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +0 -123
  204. package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +0 -82
  205. package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +0 -212
  206. package/openh264/codec/encoder/core/inc/svc_encode_mb.h +0 -63
  207. package/openh264/codec/encoder/core/inc/svc_encode_slice.h +0 -184
  208. package/openh264/codec/encoder/core/inc/svc_mode_decision.h +0 -94
  209. package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +0 -369
  210. package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +0 -70
  211. package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +0 -67
  212. package/openh264/codec/encoder/core/inc/vlc_encoder.h +0 -92
  213. package/openh264/codec/encoder/core/inc/wels_common_basis.h +0 -160
  214. package/openh264/codec/encoder/core/inc/wels_const.h +0 -174
  215. package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +0 -300
  216. package/openh264/codec/encoder/core/inc/wels_preprocess.h +0 -251
  217. package/openh264/codec/encoder/core/inc/wels_task_base.h +0 -79
  218. package/openh264/codec/encoder/core/inc/wels_task_encoder.h +0 -142
  219. package/openh264/codec/encoder/core/inc/wels_task_management.h +0 -135
  220. package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +0 -58
  221. package/openh264/codec/encoder/core/loongarch/dct_lasx.c +0 -452
  222. package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +0 -166
  223. package/openh264/codec/encoder/core/loongarch/quant_lsx.c +0 -153
  224. package/openh264/codec/encoder/core/loongarch/sample_lasx.c +0 -87
  225. package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +0 -104
  226. package/openh264/codec/encoder/core/mips/dct_mmi.c +0 -529
  227. package/openh264/codec/encoder/core/mips/quant_mmi.c +0 -553
  228. package/openh264/codec/encoder/core/mips/score_mmi.c +0 -324
  229. package/openh264/codec/encoder/core/x86/coeff.asm +0 -695
  230. package/openh264/codec/encoder/core/x86/dct.asm +0 -108
  231. package/openh264/codec/encoder/core/x86/intra_pred.asm +0 -1129
  232. package/openh264/codec/encoder/core/x86/matrix_transpose.asm +0 -395
  233. package/openh264/codec/encoder/core/x86/memzero.asm +0 -132
  234. package/openh264/codec/encoder/core/x86/quant.asm +0 -507
  235. package/openh264/codec/encoder/core/x86/sample_sc.asm +0 -1829
  236. package/openh264/codec/encoder/core/x86/score.asm +0 -363
  237. package/openh264/codec/encoder/meson.build +0 -98
  238. package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +0 -129
  239. package/openh264/codec/encoder/targets.mk +0 -146
  240. package/openh264/codec/meson.build +0 -9
  241. package/openh264/codec/processing/interface/IWelsVP.h +0 -310
  242. package/openh264/codec/processing/meson.build +0 -71
  243. package/openh264/codec/processing/targets.mk +0 -117
  244. package/openh264/docs/doxygen/Doxyfile +0 -1865
  245. package/openh264/docs/doxygen/Home.rest +0 -25
  246. package/openh264/docs/doxygen/ISVCDecoder.rest +0 -19
  247. package/openh264/docs/doxygen/ISVCEncoder.rest +0 -16
  248. package/openh264/docs/doxygen/UsageExampleForDecoder.rest +0 -10
  249. package/openh264/docs/doxygen/UsageExampleForEncoder.rest +0 -15
  250. package/openh264/docs/doxygen2rst.py +0 -619
  251. package/openh264/gmpopenh264.info +0 -4
  252. package/openh264/gradlew +0 -172
  253. package/openh264/meson.build +0 -218
  254. package/openh264/meson_options.txt +0 -1
  255. package/openh264/module/RefCounted.h +0 -141
  256. package/openh264/module/gmp-openh264.cpp +0 -1196
  257. package/openh264/module/targets.mk +0 -14
  258. package/openh264/module/task_utils.h +0 -38
  259. package/openh264/module/task_utils.py +0 -207
  260. package/openh264/module/task_utils_generated.h +0 -2087
  261. package/openh264/openh264.def +0 -7
  262. package/openh264/openh264.pc.in +0 -10
  263. package/openh264/openh264.rc +0 -61
  264. package/openh264/openh264.rc.template +0 -61
  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 +0 -1
  280. package/openh264/res/CiscoVT2people_320x192_12fps.yuv +0 -1
  281. package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +0 -3607
  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 +0 -1
  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 +0 -91
  325. package/openh264/settings.gradle +0 -4
  326. package/openh264/subprojects/gtest.wrap +0 -10
  327. package/openh264/testbin/AutoBuild_Windows_VS2008.bat +0 -59
  328. package/openh264/testbin/CmdLineExample.sh +0 -7
  329. package/openh264/testbin/CmdLineReadMe +0 -22
  330. package/openh264/testbin/layer2.cfg +0 -37
  331. package/openh264/testbin/layer2_arbitrary_res.cfg +0 -37
  332. package/openh264/testbin/layer2_vd.cfg +0 -38
  333. package/openh264/testbin/layer2_vd_rc.cfg +0 -38
  334. package/openh264/testbin/welsenc.cfg +0 -71
  335. package/openh264/testbin/welsenc_arbitrary_res.cfg +0 -70
  336. package/openh264/testbin/welsenc_ios.cfg +0 -71
  337. package/openh264/testbin/welsenc_vd_1d.cfg +0 -70
  338. package/openh264/testbin/welsenc_vd_rc.cfg +0 -69
  339. package/openh264/ut.def +0 -2
@@ -1,160 +0,0 @@
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
- //wels_common_basis.h
34
- #ifndef WELS_COMMON_BASIS_H__
35
- #define WELS_COMMON_BASIS_H__
36
-
37
- #include "typedefs.h"
38
- #include "macros.h"
39
-
40
- #include "wels_const.h"
41
-
42
- #include "wels_common_defs.h"
43
-
44
- using namespace WelsCommon;
45
-
46
- namespace WelsEnc {
47
-
48
- typedef int32_t WelsErrorType;
49
-
50
- struct SMVUnitXY { // each 4 Bytes
51
- int16_t iMvX;
52
- int16_t iMvY;
53
- public:
54
- SMVUnitXY& sDeltaMv (const SMVUnitXY& _v0, const SMVUnitXY& _v1) {
55
- iMvX = _v0.iMvX - _v1.iMvX;
56
- iMvY = _v0.iMvY - _v1.iMvY;
57
- return (*this);
58
- };
59
- SMVUnitXY& sAssignMv (const SMVUnitXY& _v0) {
60
- iMvX = _v0.iMvX;
61
- iMvY = _v0.iMvY;
62
- return (*this);
63
- };
64
- };
65
-
66
- typedef struct TagMVComponentUnit { // each LIST_0/LIST_1
67
- SMVUnitXY sMotionVectorCache[5 * 6 - 1]; // Luma only: 5 x 6 - 1 = 29 D-Words
68
- int8_t iRefIndexCache[5 * 6]; // Luma only: 5 x 6 = 30 bytes
69
- } SMVComponentUnit, *PMVComponentUnit;
70
-
71
-
72
- typedef struct TagParaSetOffsetVariable {
73
- int32_t iParaSetIdDelta[MAX_DQ_LAYER_NUM/*+1*/];//mark delta between SPS_ID_in_bs and sps_id_in_encoder, can be minus, for each dq-layer
74
- //need not extra +1 due no MGS and FMO case so far
75
- bool bUsedParaSetIdInBs[MAX_PPS_COUNT]; //mark the used SPS_ID with 1
76
- uint32_t uiNextParaSetIdToUseInBs; //mark the next SPS_ID_in_bs, for all layers
77
- } SParaSetOffsetVariable;
78
-
79
- typedef struct TagParaSetOffset {
80
- //in PS0 design, "sParaSetOffsetVariable" record the previous paras before current IDR, AND NEED to be stacked and recover across IDR
81
- SParaSetOffsetVariable
82
- sParaSetOffsetVariable[PARA_SET_TYPE]; //PARA_SET_TYPE=3; paraset_type = 0: AVC_SPS; =1: Subset_SPS; =2: PPS
83
- //in PSO design, "bPpsIdMappingIntoSubsetsps" uses the current para of current IDR period
84
- bool
85
- bPpsIdMappingIntoSubsetsps[MAX_DQ_LAYER_NUM/*+1*/]; // need not extra +1 due no MGS and FMO case so far
86
-
87
- int32_t iPpsIdList[MAX_DQ_LAYER_NUM][MAX_PPS_COUNT]; //index0: max pps types; index1: for differnt IDRs, if only index0=1, index1 can reach MAX_PPS_COUNT
88
-
89
- #if _DEBUG
90
- int32_t eSpsPpsIdStrategy;
91
- #endif
92
-
93
- uint32_t uiNeededSpsNum;
94
- uint32_t uiNeededSubsetSpsNum;
95
- uint32_t uiNeededPpsNum;
96
-
97
- uint32_t uiInUseSpsNum;
98
- uint32_t uiInUseSubsetSpsNum;
99
- uint32_t uiInUsePpsNum;
100
- } SParaSetOffset;
101
-
102
-
103
-
104
- /* Position Offset structure */
105
- typedef struct TagCropOffset {
106
- int16_t iCropLeft;
107
- int16_t iCropRight;
108
- int16_t iCropTop;
109
- int16_t iCropBottom;
110
- } SCropOffset;
111
-
112
-
113
- /* Transform Type */
114
-
115
- enum ETransType {
116
- T_4x4 = 0,
117
- T_8x8 = 1,
118
- T_16x16 = 2,
119
- T_PCM = 3
120
- };
121
-
122
- enum EMbPosition {
123
- LEFT_MB_POS = 0x01, // A
124
- TOP_MB_POS = 0x02, // B
125
- TOPRIGHT_MB_POS = 0x04, // C
126
- TOPLEFT_MB_POS = 0x08, // D,
127
- RIGHT_MB_POS = 0x10, // add followed four case to reuse when intra up-sample
128
- BOTTOM_MB_POS = 0x20, //
129
- BOTTOMRIGHT_MB_POS = 0x40, //
130
- BOTTOMLEFT_MB_POS = 0x80, //
131
- MB_POS_A = 0x100
132
- };
133
-
134
- /* MB Type & Sub-MB Type */
135
- typedef uint32_t Mb_Type;
136
-
137
- #define MB_LEFT_BIT 0// add to use in intra up-sample
138
- #define MB_TOP_BIT 1
139
- #define MB_TOPRIGHT_BIT 2
140
- #define MB_TOPLEFT_BIT 3
141
- #define MB_RIGHT_BIT 4
142
- #define MB_BOTTOM_BIT 5
143
- #define MB_BTMRIGHT_BIT 6
144
- #define MB_BTMLEFT_BIT 7
145
-
146
- #define MB_TYPE_BACKGROUND 0x00010000 // conditional BG skip_mb
147
-
148
- enum {
149
- Intra4x4 = 0,
150
- Intra16x16 = 1,
151
- Inter16x16 = 2,
152
- Inter16x8 = 3,
153
- Inter8x16 = 4,
154
- Inter8x8 = 5,
155
- PSkip = 6
156
- };
157
-
158
-
159
- }
160
- #endif//WELS_COMMON_BASIS_H__
@@ -1,174 +0,0 @@
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
- //wels_const.h
34
- #ifndef WELS_CONST_H__
35
- #define WELS_CONST_H__
36
-
37
- #include "as264_common.h" // to communicate with specific macros there, 3/18/2010
38
- #include "codec_app_def.h"
39
- #include "wels_const_common.h"
40
-
41
- /* To control number of spatial, quality and temporal layers constraint by application layer? */
42
- #define NUM_SPATIAL_LAYERS_CONSTRAINT
43
- #define NUM_QUALITY_LAYERS_CONSTRAINT
44
-
45
-
46
- #define STATISTICS_LOG_INTERVAL_MS (5000) // output statistics log every 5s
47
-
48
- #define INTRA_4x4_MODE_NUM 8
49
- #define MB_LUMA_CHROMA_BLOCK4x4_NUM 24
50
-
51
- #define MAX_PPS_COUNT_LIMITED 57// limit the max ID of PPS because of known limitation of receiver endpoints
52
- #define MAX_PPS_COUNT (MAX_PPS_COUNT_LIMITED)//in Standard is 256 // Count number of PPS
53
-
54
- #define PARA_SET_TYPE 3 // SPS+PPS
55
- #define PARA_SET_TYPE_AVCSPS 0
56
- #define PARA_SET_TYPE_SUBSETSPS 1
57
- #define PARA_SET_TYPE_PPS 2
58
-
59
- #define MAX_VERTICAL_MV_RANGE 1024 //TODO, for allocate enough memory for transpose
60
- #define MAX_FRAME_RATE 60 // maximal frame rate to support
61
- #define MIN_FRAME_RATE 1 // minimal frame rate need support
62
-
63
- #define MAX_BIT_RATE INT_MAX // maximal bit rate to support
64
- //TODO {Sijia}: 30fps*MaxCPB in level5.1 = 30*240000*1000bits = 7 200 000 000, larger than INT_MAX which is 2147483647, but this is also very big and abnormal number, should figure out a reasonable number after discussion
65
- #define MIN_BIT_RATE 1 // minimal bit rate need support
66
-
67
- #define SVC_QUALITY_BASE_QP 26
68
- #define MAX_SLICEGROUP_IDS 8 // Count number of SSlice Groups
69
- #define MAX_THREADS_NUM 4 // assume to support up to 4 logical cores(threads)
70
-
71
- #define INTPEL_NEEDED_MARGIN (3) // for safe sub-pel MC
72
-
73
- #define I420_PLANES 3
74
-
75
- #define COMPRESS_RATIO_THR (1.0f) //set to size of the original data, which will be large enough considering MinCR
76
-
77
- #if !defined(SSEI_BUFFER_SIZE)
78
- #define SSEI_BUFFER_SIZE 128
79
- #endif//SSEI_BUFFER_SIZE
80
-
81
- #if !defined(SPS_BUFFER_SIZE)
82
- #define SPS_BUFFER_SIZE 32
83
- #endif//SPS_BUFFER_SIZE
84
-
85
- #if !defined(PPS_BUFFER_SIZE)
86
- #define PPS_BUFFER_SIZE 16
87
- #endif//PPS_BUFFER_SIZE
88
-
89
- #if !defined(MAX_MACROBLOCK_SIZE_IN_BYTE)
90
- #define MAX_MACROBLOCK_SIZE_IN_BYTE 400 //3200/8, 3200 is from Annex A.3.1.(n)
91
- #endif
92
-
93
- #define MAX_MACROBLOCK_SIZE_IN_BYTE_x2 (MAX_MACROBLOCK_SIZE_IN_BYTE<<1)
94
-
95
- #if defined(NUM_SPATIAL_LAYERS_CONSTRAINT)
96
- #define MAX_DEPENDENCY_LAYER MAX_SPATIAL_LAYER_NUM // Maximal dependency layer
97
- #else
98
- #define MAX_DEPENDENCY_LAYER 8 // Maximal dependency layer
99
- #endif//NUM_SPATIAL_LAYERS_CONSTRAINT
100
-
101
- //The max temporal level support is equal or less than MAX_TEMPORAL_LAYER_NUM defined @ codec_app_def.h
102
- #define MAX_TEMPORAL_LEVEL MAX_TEMPORAL_LAYER_NUM // Maximal temporal level
103
-
104
- #if defined(NUM_QUALITY_LAYERS_CONSTRAINT)
105
- #define MAX_QUALITY_LEVEL MAX_QUALITY_LAYER_NUM // Maximal quality level
106
- #else
107
- #define MAX_QUALITY_LEVEL 16 // Maximal quality level
108
- #endif//NUM_QUALITY_LAYERS_CONSTRAINT
109
-
110
- #if defined(MAX_GOP_SIZE)
111
- #undef MAX_GOP_SIZE
112
- #endif//MAX_GOP_SIZE
113
- #define MAX_GOP_SIZE (1<<(MAX_TEMPORAL_LEVEL-1))
114
-
115
- #define MAX_SHORT_REF_COUNT (MAX_GOP_SIZE>>1) // 16 in standard, maximal count number of short reference pictures
116
- #define LONG_TERM_REF_NUM 2
117
- #define LONG_TERM_REF_NUM_SCREEN 4
118
- #define MAX_REF_PIC_COUNT 16 // 32 in standard, maximal Short + Long reference pictures
119
- #define MIN_REF_PIC_COUNT 1 // minimal count number of reference pictures, 1 short + 2 key reference based?
120
- #define MAX_MULTI_REF_PIC_COUNT 1 //maximum multi-reference number
121
- //#define TOTAL_REF_MINUS_HALF_GOP 1 // last t0 in last gop
122
- #define MAX_MMCO_COUNT 66
123
-
124
- // adjusted numbers reference picture functionality related definition
125
- #define MAX_REFERENCE_MMCO_COUNT_NUM 4 // adjusted MAX_MMCO_COUNT(66 in standard) definition per encoder design
126
- #define MAX_REFERENCE_REORDER_COUNT_NUM 2 // adjusted MAX_REF_PIC_COUNT(32 in standard) for reference reordering definition per encoder design
127
- #define MAX_REFERENCE_PICTURE_COUNT_NUM_CAMERA (MAX_SHORT_REF_COUNT+LONG_TERM_REF_NUM) // <= MAX_REF_PIC_COUNT, memory saved if <
128
- #define MAX_REFERENCE_PICTURE_COUNT_NUM_SCREEN (MAX_SHORT_REF_COUNT+LONG_TERM_REF_NUM_SCREEN) // <= MAX_REF_PIC_COUNT, memory saved if <
129
-
130
- #define BASE_DEPENDENCY_ID 0
131
- #define MAX_DQ_LAYER_NUM (MAX_DEPENDENCY_LAYER/**MAX_QUALITY_LEVEL*/)
132
-
133
- #define INVALID_ID (-1)
134
-
135
- #define NAL_HEADER_ADD_0X30BYTES 20
136
-
137
- #define SLICE_NUM_EXPAND_COEF 2
138
-
139
- enum {
140
- BLOCK_16x16 = 0,
141
- BLOCK_16x8 = 1,
142
- BLOCK_8x16 = 2,
143
- BLOCK_8x8 = 3,
144
- BLOCK_4x4 = 4,
145
- BLOCK_8x4 = 5,
146
- BLOCK_4x8 = 6,
147
- BLOCK_SIZE_ALL = 7
148
- };
149
-
150
- typedef enum {
151
- RECIEVE_UNKOWN = 0,
152
- RECIEVE_SUCCESS = 1,
153
- RECIEVE_FAILED = 2
154
- } LTR_MARKING_RECEIVE_STATE;
155
-
156
- enum {
157
- CUR_AU_IDX = 0, // index symbol for current access unit
158
- SUC_AU_IDX = 1 // index symbol for successive access unit
159
- };
160
-
161
- enum {
162
- ENC_RETURN_SUCCESS = 0,
163
- ENC_RETURN_MEMALLOCERR = 0x01, //will free memory and uninit
164
- ENC_RETURN_UNSUPPORTED_PARA = 0x02, //unsupported setting
165
- ENC_RETURN_UNEXPECTED = 0x04, //unexpected value
166
- ENC_RETURN_CORRECTED = 0x08, //unexpected value but corrected by encoder
167
- ENC_RETURN_INVALIDINPUT = 0x10, //invalid input
168
- ENC_RETURN_MEMOVERFLOWFOUND = 0x20,
169
- ENC_RETURN_VLCOVERFLOWFOUND = 0x40,
170
- ENC_RETURN_KNOWN_ISSUE = 0x80
171
- };
172
- //TODO: need to complete the return checking in encoder and fill in more types if needed
173
-
174
- #endif//WELS_CONST_H__
@@ -1,300 +0,0 @@
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
- // wels_func_ptr_def.h
34
- #ifndef WELS_ENCODER_FUNCTION_POINTERS_DEFINITION_H_
35
- #define WELS_ENCODER_FUNCTION_POINTERS_DEFINITION_H_
36
-
37
- #include "typedefs.h"
38
- #include "wels_common_basis.h"
39
- #include "svc_enc_macroblock.h"
40
- #include "mb_cache.h"
41
- #include "slice.h"
42
- #include "svc_enc_slice_segment.h"
43
- #include "svc_enc_frame.h"
44
- #include "expand_pic.h"
45
- #include "rc.h"
46
- #include "IWelsVP.h"
47
- #include "mc.h"
48
-
49
- namespace WelsEnc {
50
-
51
- typedef struct TagWelsEncCtx sWelsEncCtx;
52
- typedef struct TagWelsFuncPointerList SWelsFuncPtrList;
53
- typedef struct TagVAAFrameInfo SVAAFrameInfo;
54
-
55
- typedef struct TagWelsME SWelsME;
56
- typedef struct TagWelsMD SWelsMD;
57
-
58
- typedef void (*PSetMemoryZero) (void* pDst, int32_t iSize);
59
- typedef void (*PDctFunc) (int16_t* pDct, uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2);
60
-
61
- typedef void (*PCopyFunc) (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
62
- typedef void (*PIDctFunc) (uint8_t* pRec, int32_t iStride, uint8_t* pPred, int32_t iPredStride, int16_t* pRes);
63
- typedef void (*PDeQuantizationFunc) (int16_t* pRes, const uint16_t* kpQpTable);
64
- typedef void (*PDeQuantizationHadamardFunc) (int16_t* pRes, const uint16_t kuiMF);
65
- typedef int32_t (*PGetNoneZeroCountFunc) (int16_t* pLevel);
66
-
67
- typedef void (*PScanFunc) (int16_t* pLevel, int16_t* pDct);
68
- typedef int32_t (*PCalculateSingleCtrFunc) (int16_t* pDct);
69
-
70
- typedef void (*PTransformHadamard4x4Func) (int16_t* pLumaDc, int16_t* pDct);
71
- typedef void (*PQuantizationFunc) (int16_t* pDct, const int16_t* pFF, const int16_t* pMF);
72
- typedef void (*PQuantizationMaxFunc) (int16_t* pDct, const int16_t* pFF, const int16_t* pMF, int16_t* pMax);
73
- typedef void (*PQuantizationDcFunc) (int16_t* pDct, int16_t iFF, int16_t iMF);
74
- typedef int32_t (*PQuantizationSkipFunc) (int16_t* pDct, int16_t iFF, int16_t iMF);
75
- typedef int32_t (*PQuantizationHadamardFunc) (int16_t* pRes, const int16_t kiFF, int16_t iMF, int16_t* pDct,
76
- int16_t* pBlock);
77
-
78
- typedef void (*PLumaDeblockingLT4Func) (uint8_t* iSampleY, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* iTc);
79
- typedef void (*PLumaDeblockingEQ4Func) (uint8_t* iSampleY, int32_t iStride, int32_t iAlpha, int32_t iBeta);
80
- typedef void (*PChromaDeblockingLT4Func) (uint8_t* iSampleCb, uint8_t* iSampleCr, int32_t iStride, int32_t iAlpha,
81
- int32_t iBeta, int8_t* iTc);
82
- typedef void (*PChromaDeblockingEQ4Func) (uint8_t* iSampleCb, uint8_t* iSampleCr, int32_t iStride, int32_t iAlpha,
83
- int32_t iBeta);
84
- typedef void (*PDeblockingBSCalc) (SWelsFuncPtrList* pFunc, SMB* pCurMb, uint8_t uiBS[2][4][4], Mb_Type uiCurMbType,
85
- int32_t iMbStride, int32_t iLeftFlag, int32_t iTopFlag);
86
- typedef void (*PDeblockingFilterSlice) (SDqLayer* pCurDq, SWelsFuncPtrList* pFunc, SSlice* pSlice);
87
-
88
- typedef struct tagDeblockingFunc {
89
- PLumaDeblockingLT4Func pfLumaDeblockingLT4Ver;
90
- PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Ver;
91
- PLumaDeblockingLT4Func pfLumaDeblockingLT4Hor;
92
- PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Hor;
93
-
94
- PChromaDeblockingLT4Func pfChromaDeblockingLT4Ver;
95
- PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Ver;
96
- PChromaDeblockingLT4Func pfChromaDeblockingLT4Hor;
97
- PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Hor;
98
-
99
- PDeblockingBSCalc pfDeblockingBSCalc;
100
-
101
- PDeblockingFilterSlice pfDeblockingFilterSlice;
102
- } DeblockingFunc;
103
-
104
- typedef void (*PSetNoneZeroCountZeroFunc) (int8_t* pNonZeroCount);
105
-
106
- typedef int32_t (*PIntraFineMdFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SMB* pCurMb, SMbCache* pMbCache);
107
- typedef void (*PInterFineMdFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb, int32_t bestCost);
108
- typedef bool (*PInterMdFirstIntraModeFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SMB* pCurMb, SMbCache* pMbCache);
109
-
110
- typedef void (*PFillInterNeighborCacheFunc) (SMbCache* pMbCache, SMB* pCurMb, int32_t iMbWidth, int8_t* pVaaBgMbFlag);
111
- typedef void (*PAccumulateSadFunc) (uint32_t* pSumDiff, int32_t* pGomForegroundBlockNum, int32_t* iSad8x8,
112
- int8_t* pVaaBgMbFlag);//for RC
113
- typedef bool (*PDynamicSlicingStepBackFunc) (sWelsEncCtx* pEncCtx, SSlice* pSlice, SSliceCtx* pSliceCtx, SMB* pCurMb,
114
- SDynamicSlicingStack* pDynamicSlicingStack); // 2010.8.17
115
-
116
- typedef bool (*PInterMdBackgroundDecisionFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
117
- SMbCache* pMbCache, bool* pKeepPskip);
118
- typedef void (*PMdBackgroundInfoUpdateFunc) (SDqLayer* pCurLayer, SMB* pCurMb, const bool bFlag,
119
- const int32_t kiRefPictureType);
120
-
121
- typedef bool (*PInterMdScrollingPSkipDecisionFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
122
- SMbCache* pMbCache);
123
- typedef void (*PSetScrollingMv) (SVAAFrameInfo* pVaa, SWelsMD* pMd);
124
-
125
- typedef void (*PInterMdFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb, SMbCache* pMbCache);
126
-
127
- typedef int32_t (*PSampleSadSatdCostFunc) (uint8_t*, int32_t, uint8_t*, int32_t);
128
- typedef void (*PSample4SadCostFunc) (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
129
- typedef int32_t (*PIntraPred4x4Combined3Func) (uint8_t*, int32_t, uint8_t*, int32_t, uint8_t*, int32_t*, int32_t,
130
- int32_t, int32_t);
131
- typedef int32_t (*PIntraPred16x16Combined3Func) (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*, int32_t, uint8_t*);
132
- typedef int32_t (*PIntraPred8x8Combined3Func) (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*, int32_t, uint8_t*,
133
- uint8_t*, uint8_t*);
134
-
135
- typedef uint32_t (*PSampleSadHor8Func) (uint8_t*, int32_t, uint8_t*, int32_t, uint16_t*, int32_t*);
136
- typedef void (*PMotionSearchFunc) (SWelsFuncPtrList* pFuncList, SDqLayer* pCurDqLayer, SWelsME* pMe,
137
- SSlice* pSlice);
138
- typedef void (*PSearchMethodFunc) (SWelsFuncPtrList* pFuncList, SWelsME* pMe, SSlice* pSlice, const int32_t kiEncStride,
139
- const int32_t kiRefStride);
140
- typedef void (*PCalculateSatdFunc) (PSampleSadSatdCostFunc pSatd, SWelsME* pMe, const int32_t kiEncStride,
141
- const int32_t kiRefStride);
142
- typedef bool (*PCheckDirectionalMv) (PSampleSadSatdCostFunc pSad, SWelsME* pMe,
143
- const SMVUnitXY ksMinMv, const SMVUnitXY ksMaxMv, const int32_t kiEncStride, const int32_t kiRefStride,
144
- int32_t& iBestSadCost);
145
- typedef void (*PLineFullSearchFunc) (SWelsFuncPtrList* pFuncList, SWelsME* pMe,
146
- uint16_t* pMvdTable,
147
- const int32_t kiEncStride, const int32_t kiRefStride,
148
- const int16_t kiMinMv, const int16_t kiMaxMv,
149
- const bool bVerticalSearch);
150
- typedef void (*PInitializeHashforFeatureFunc) (uint32_t* pTimesOfFeatureValue, uint16_t* pBuf, const int32_t kiListSize,
151
- uint16_t** pLocationOfFeature, uint16_t** pFeatureValuePointerList);
152
- typedef void (*PFillQpelLocationByFeatureValueFunc) (uint16_t* pFeatureOfBlock, const int32_t kiWidth,
153
- const int32_t kiHeight,
154
- uint16_t** pFeatureValuePointerList);
155
- typedef void (*PCalculateBlockFeatureOfFrame) (uint8_t* pRef, const int32_t kiWidth, const int32_t kiHeight,
156
- const int32_t kiRefStride,
157
- uint16_t* pFeatureOfBlock, uint32_t pTimesOfFeatureValue[]);
158
- typedef int32_t (*PCalculateSingleBlockFeature) (uint8_t* pRef, const int32_t kiRefStride);
159
- typedef void (*PUpdateFMESwitch) (SDqLayer* pCurLayer);
160
-
161
- #define MAX_BLOCK_TYPE BLOCK_SIZE_ALL
162
- typedef struct TagSampleDealingFunc {
163
- PSampleSadSatdCostFunc pfSampleSad[MAX_BLOCK_TYPE];
164
- PSampleSadSatdCostFunc pfSampleSatd[MAX_BLOCK_TYPE];
165
- PSample4SadCostFunc pfSample4Sad[MAX_BLOCK_TYPE];
166
- PIntraPred4x4Combined3Func pfIntra4x4Combined3Satd;
167
- PIntraPred16x16Combined3Func pfIntra16x16Combined3Satd;
168
- PIntraPred16x16Combined3Func pfIntra16x16Combined3Sad;
169
- PIntraPred8x8Combined3Func pfIntra8x8Combined3Satd;
170
- PIntraPred8x8Combined3Func pfIntra8x8Combined3Sad;
171
-
172
- PSampleSadSatdCostFunc* pfMdCost;
173
- PSampleSadSatdCostFunc* pfMeCost;
174
- PIntraPred16x16Combined3Func pfIntra16x16Combined3;
175
- PIntraPred8x8Combined3Func pfIntra8x8Combined3;
176
- PIntraPred4x4Combined3Func pfIntra4x4Combined3;
177
- } SSampleDealingFunc;
178
- typedef void (*PGetIntraPredFunc) (uint8_t* pPrediction, uint8_t* pRef, const int32_t kiStride);
179
-
180
- typedef int32_t (*PGetVarianceFromIntraVaaFunc) (uint8_t* pSampelY, const int32_t kiStride);
181
- typedef uint8_t (*PGetMbSignFromInterVaaFunc) (int32_t* pSad8x8);
182
- typedef void (*PUpdateMbMvFunc) (SMVUnitXY* pMvUnit, const SMVUnitXY ksMv);
183
-
184
- typedef bool (*PBuildRefListFunc) (sWelsEncCtx* pCtx, const int32_t iPOC, int32_t iBestLtrRefIdx);
185
- typedef void (*PMarkPicFunc) (sWelsEncCtx* pCtx);
186
- typedef bool (*PUpdateRefListFunc) (sWelsEncCtx* pCtx);
187
- typedef void (*PEndofUpdateRefListFunc) (sWelsEncCtx* pCtx);
188
- typedef void (*PAfterBuildRefListFunc) (sWelsEncCtx* pCtx);
189
-
190
- typedef int32_t (*PCavlcParamCalFunc) (int16_t* pCoff, uint8_t* pRun, int16_t* pLevel, int32_t* pTotalCoeffs,
191
- int32_t iEndIdx);
192
- typedef int32_t (*PWelsSpatialWriteMbSyn) (sWelsEncCtx* pCtx, SSlice* pSlice, SMB* pCurMb);
193
- typedef void (*PStashMBStatus) (SDynamicSlicingStack* pDss, SSlice* pSlice, int32_t iMbSkipRun);
194
- typedef int32_t (*PStashPopMBStatus) (SDynamicSlicingStack* pDss, SSlice* pSlice);
195
- typedef int32_t (*PGetBsPosition)(SSlice *pSlice);
196
- class IWelsParametersetStrategy;
197
-
198
- struct TagWelsFuncPointerList {
199
- SExpandPicFunc sExpandPicFunc;
200
- PFillInterNeighborCacheFunc pfFillInterNeighborCache;
201
-
202
- PGetVarianceFromIntraVaaFunc pfGetVarianceFromIntraVaa;
203
- PGetMbSignFromInterVaaFunc pfGetMbSignFromInterVaa;
204
- PUpdateMbMvFunc pfUpdateMbMv;
205
- PInterMdFirstIntraModeFunc pfFirstIntraMode; //svc_encode_slice.c svc_mode_decision.c svc_base_layer_md.c
206
- PIntraFineMdFunc
207
- pfIntraFineMd; //svc_encode_slice.c svc_mode_decision.c svc_base_layer_md.c
208
- PInterFineMdFunc pfInterFineMd; //svc_encode_slice.c svc_base_layer_md.c
209
- PInterMdFunc pfInterMd;
210
-
211
- PInterMdBackgroundDecisionFunc pfInterMdBackgroundDecision;
212
- PMdBackgroundInfoUpdateFunc pfMdBackgroundInfoUpdate;
213
-
214
- PInterMdScrollingPSkipDecisionFunc pfSCDPSkipDecision;
215
- PSetScrollingMv pfSetScrollingMv;
216
-
217
- SMcFunc sMcFuncs;
218
- SSampleDealingFunc sSampleDealingFuncs;
219
- PGetIntraPredFunc pfGetLumaI16x16Pred[I16_PRED_DC_A];
220
- PGetIntraPredFunc pfGetLumaI4x4Pred[I4_PRED_A];
221
- PGetIntraPredFunc pfGetChromaPred[C_PRED_A];
222
-
223
- PSampleSadHor8Func pfSampleSadHor8[2]; // 1: for 16x16 square; 0: for 8x8 square
224
- PMotionSearchFunc
225
- pfMotionSearch[BLOCK_STATIC_IDC_ALL]; //svc_encode_slice.c svc_mode_decision.c svc_enhance_layer_md.c svc_base_layer_md.c
226
- PSearchMethodFunc pfSearchMethod[BLOCK_SIZE_ALL];
227
- PCalculateSatdFunc pfCalculateSatd;
228
- PCheckDirectionalMv pfCheckDirectionalMv;
229
-
230
- PInitializeHashforFeatureFunc pfInitializeHashforFeature;
231
- PFillQpelLocationByFeatureValueFunc pfFillQpelLocationByFeatureValue;
232
- PCalculateBlockFeatureOfFrame pfCalculateBlockFeatureOfFrame[2];//0 - for 8x8, 1 for 16x16
233
- PCalculateSingleBlockFeature pfCalculateSingleBlockFeature[2];//0 - for 8x8, 1 for 16x16
234
- PLineFullSearchFunc pfVerticalFullSearch;
235
- PLineFullSearchFunc pfHorizontalFullSearch;
236
- PUpdateFMESwitch pfUpdateFMESwitch;
237
-
238
- PCopyFunc pfCopy16x16Aligned; //svc_encode_slice.c svc_mode_decision.c svc_base_layer_md.c
239
- PCopyFunc pfCopy16x16NotAligned; //md.c
240
- PCopyFunc pfCopy8x8Aligned; //svc_encode_slice.c svc_mode_decision.c svc_base_layer_md.c md.c
241
- PCopyFunc pfCopy16x8NotAligned; //for MeRefineFracPixel 16x8 based
242
- PCopyFunc pfCopy8x16Aligned; //for MeRefineFracPixel 8x16 based
243
- PCopyFunc pfCopy4x4; //not sure if aligned or not, need further tune
244
- PCopyFunc pfCopy8x4; //not sure if aligned or not, need further tune
245
- PCopyFunc pfCopy4x8; //not sure if aligned or not, need further tune
246
-
247
- PDctFunc pfDctT4;
248
- PDctFunc pfDctFourT4;
249
-
250
- PCalculateSingleCtrFunc pfCalculateSingleCtr4x4;
251
- PScanFunc pfScan4x4; //DC/AC
252
- PScanFunc pfScan4x4Ac;
253
-
254
- PQuantizationFunc pfQuantization4x4;
255
- PQuantizationFunc pfQuantizationFour4x4;
256
- PQuantizationDcFunc pfQuantizationDc4x4;
257
- PQuantizationMaxFunc pfQuantizationFour4x4Max;
258
- PQuantizationHadamardFunc pfQuantizationHadamard2x2;
259
- PQuantizationSkipFunc pfQuantizationHadamard2x2Skip;
260
-
261
- PTransformHadamard4x4Func pfTransformHadamard4x4Dc;
262
-
263
- PGetNoneZeroCountFunc pfGetNoneZeroCount;
264
-
265
- PDeQuantizationFunc pfDequantization4x4;
266
- PDeQuantizationFunc pfDequantizationFour4x4;
267
- PDeQuantizationHadamardFunc pfDequantizationIHadamard4x4;
268
- PIDctFunc pfIDctFourT4;
269
- PIDctFunc pfIDctT4;
270
- PIDctFunc pfIDctI16x16Dc;
271
-
272
-
273
-
274
- // OPTI: if MT under diff uiSliceMode, need change here
275
- //PDynamicSlicingStepBackFunc dynslc_funcpointer_stepback;//svc_encode_slice.c
276
- //DYNSLC_LNGTH_CRTL dynslc_funcpointer_slcsize_ctrl;
277
-
278
- /* For Deblocking */
279
- DeblockingFunc pfDeblocking;
280
- PSetNoneZeroCountZeroFunc pfSetNZCZero;
281
-
282
- SWelsRcFunc pfRc;
283
- PAccumulateSadFunc pfAccumulateSadForRc;
284
-
285
- PSetMemoryZero pfSetMemZeroSize8; // for size is times to 8
286
- PSetMemoryZero pfSetMemZeroSize64Aligned16; // for size is times of 64, and address is align to 16
287
- PSetMemoryZero pfSetMemZeroSize64; // for size is times of 64, and don't know address is align to 16 or not
288
-
289
- PCavlcParamCalFunc pfCavlcParamCal;
290
- PWelsSpatialWriteMbSyn pfWelsSpatialWriteMbSyn;
291
- PGetBsPosition pfGetBsPosition;
292
- PStashMBStatus pfStashMBStatus;
293
- PStashPopMBStatus pfStashPopMBStatus;
294
-
295
- IWelsParametersetStrategy* pParametersetStrategy;
296
- };
297
-
298
- } //end of namespace WelsEnc {
299
-
300
- #endif//WELS_ENCODER_FUNCTION_POINTERS_DEFINITION_H_