@scrypted/libav 1.0.181 → 1.0.183

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,592 +0,0 @@
1
- /*!
2
- *@page License
3
- *
4
- * \copy
5
- * Copyright (c) 2013, Cisco Systems
6
- * All rights reserved.
7
- *
8
- * Redistribution and use in source and binary forms, with or without
9
- * modification, are permitted provided that the following conditions
10
- * are met:
11
- *
12
- * * Redistributions of source code must retain the above copyright
13
- * notice, this list of conditions and the following disclaimer.
14
- *
15
- * * Redistributions in binary form must reproduce the above copyright
16
- * notice, this list of conditions and the following disclaimer in
17
- * the documentation and/or other materials provided with the
18
- * distribution.
19
- *
20
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
- * POSSIBILITY OF SUCH DAMAGE.
32
- *
33
- */
34
-
35
- #ifndef WELS_VIDEO_CODEC_SVC_API_H__
36
- #define WELS_VIDEO_CODEC_SVC_API_H__
37
-
38
- #ifndef __cplusplus
39
- #if defined(_MSC_VER) && (_MSC_VER < 1800)
40
- typedef unsigned char bool;
41
- #else
42
- #include <stdbool.h>
43
- #endif
44
- #endif
45
-
46
- #include "codec_app_def.h"
47
- #include "codec_def.h"
48
-
49
- #if defined(_WIN32) || defined(__cdecl)
50
- #define EXTAPI __cdecl
51
- #else
52
- #define EXTAPI
53
- #endif
54
-
55
- /**
56
- * @file codec_api.h
57
- */
58
-
59
- /**
60
- * @page Overview
61
- * * This page is for openh264 codec API usage.
62
- * * For how to use the encoder,please refer to page UsageExampleForEncoder
63
- * * For how to use the decoder,please refer to page UsageExampleForDecoder
64
- * * For more detail about ISVEncoder,please refer to page ISVCEncoder
65
- * * For more detail about ISVDecoder,please refer to page ISVCDecoder
66
- */
67
-
68
- /**
69
- * @page DecoderUsageExample
70
- *
71
- * @brief
72
- * * An example for using the decoder for Decoding only or Parsing only
73
- *
74
- * Step 1:decoder declaration
75
- * @code
76
- *
77
- * //decoder declaration
78
- * ISVCDecoder *pSvcDecoder;
79
- * //input: encoded bitstream start position; should include start code prefix
80
- * unsigned char *pBuf =...;
81
- * //input: encoded bit stream length; should include the size of start code prefix
82
- * int iSize =...;
83
- * //output: [0~2] for Y,U,V buffer for Decoding only
84
- * unsigned char *pData[3] =...;
85
- * //in-out: for Decoding only: declare and initialize the output buffer info, this should never co-exist with Parsing only
86
- * SBufferInfo sDstBufInfo;
87
- * memset(&sDstBufInfo, 0, sizeof(SBufferInfo));
88
- * //in-out: for Parsing only: declare and initialize the output bitstream buffer info for parse only, this should never co-exist with Decoding only
89
- * SParserBsInfo sDstParseInfo;
90
- * memset(&sDstParseInfo, 0, sizeof(SParserBsInfo));
91
- * sDstParseInfo.pDstBuff = new unsigned char[PARSE_SIZE]; //In Parsing only, allocate enough buffer to save transcoded bitstream for a frame
92
- *
93
- * @endcode
94
- *
95
- * Step 2:decoder creation
96
- * @code
97
- * WelsCreateDecoder(&pSvcDecoder);
98
- * @endcode
99
- *
100
- * Step 3:declare required parameter, used to differentiate Decoding only and Parsing only
101
- * @code
102
- * SDecodingParam sDecParam = {0};
103
- * sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_AVC;
104
- * //for Parsing only, the assignment is mandatory
105
- * sDecParam.bParseOnly = true;
106
- * @endcode
107
- *
108
- * Step 4:initialize the parameter and decoder context, allocate memory
109
- * @code
110
- * pSvcDecoder->Initialize(&sDecParam);
111
- * @endcode
112
- *
113
- * Step 5:do actual decoding process in slice level;
114
- * this can be done in a loop until data ends
115
- * @code
116
- * //for Decoding only
117
- * iRet = pSvcDecoder->DecodeFrameNoDelay(pBuf, iSize, pData, &sDstBufInfo);
118
- * //or
119
- * iRet = pSvcDecoder->DecodeFrame2(pBuf, iSize, pData, &sDstBufInfo);
120
- * //for Parsing only
121
- * iRet = pSvcDecoder->DecodeParser(pBuf, iSize, &sDstParseInfo);
122
- * //decode failed
123
- * If (iRet != 0){
124
- * //error handling (RequestIDR or something like that)
125
- * }
126
- * //for Decoding only, pData can be used for render.
127
- * if (sDstBufInfo.iBufferStatus==1){
128
- * //output handling (pData[0], pData[1], pData[2])
129
- * }
130
- * //for Parsing only, sDstParseInfo can be used for, e.g., HW decoding
131
- * if (sDstBufInfo.iNalNum > 0){
132
- * //Hardware decoding sDstParseInfo;
133
- * }
134
- * //no-delay decoding can be realized by directly calling DecodeFrameNoDelay(), which is the recommended usage.
135
- * //no-delay decoding can also be realized by directly calling DecodeFrame2() again with NULL input, as in the following. In this case, decoder would immediately reconstruct the input data. This can also be used similarly for Parsing only. Consequent decoding error and output indication should also be considered as above.
136
- * iRet = pSvcDecoder->DecodeFrame2(NULL, 0, pData, &sDstBufInfo);
137
- * //judge iRet, sDstBufInfo.iBufferStatus ...
138
- * @endcode
139
- *
140
- * Step 6:uninitialize the decoder and memory free
141
- * @code
142
- * pSvcDecoder->Uninitialize();
143
- * @endcode
144
- *
145
- * Step 7:destroy the decoder
146
- * @code
147
- * DestroyDecoder(pSvcDecoder);
148
- * @endcode
149
- *
150
- */
151
-
152
- /**
153
- * @page EncoderUsageExample1
154
- *
155
- * @brief
156
- * * An example for using encoder with basic parameter
157
- *
158
- * Step1:setup encoder
159
- * @code
160
- * ISVCEncoder* encoder_;
161
- * int rv = WelsCreateSVCEncoder (&encoder_);
162
- * assert (rv == 0);
163
- * assert (encoder_ != NULL);
164
- * @endcode
165
- *
166
- * Step2:initilize with basic parameter
167
- * @code
168
- * SEncParamBase param;
169
- * memset (&param, 0, sizeof (SEncParamBase));
170
- * param.iUsageType = usageType; //from EUsageType enum
171
- * param.fMaxFrameRate = frameRate;
172
- * param.iPicWidth = width;
173
- * param.iPicHeight = height;
174
- * param.iTargetBitrate = 5000000;
175
- * encoder_->Initialize (&param);
176
- * @endcode
177
- *
178
- * Step3:set option, set option during encoding process
179
- * @code
180
- * encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &g_LevelSetting);
181
- * int videoFormat = videoFormatI420;
182
- * encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
183
- * @endcode
184
- *
185
- * Step4: encode and store ouput bistream
186
- * @code
187
- * int frameSize = width * height * 3 / 2;
188
- * BufferedData buf;
189
- * buf.SetLength (frameSize);
190
- * assert (buf.Length() == (size_t)frameSize);
191
- * SFrameBSInfo info;
192
- * memset (&info, 0, sizeof (SFrameBSInfo));
193
- * SSourcePicture pic;
194
- * memset (&pic, 0, sizeof (SsourcePicture));
195
- * pic.iPicWidth = width;
196
- * pic.iPicHeight = height;
197
- * pic.iColorFormat = videoFormatI420;
198
- * pic.iStride[0] = pic.iPicWidth;
199
- * pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
200
- * pic.pData[0] = buf.data();
201
- * pic.pData[1] = pic.pData[0] + width * height;
202
- * pic.pData[2] = pic.pData[1] + (width * height >> 2);
203
- * for(int num = 0;num<total_num;num++) {
204
- * //prepare input data
205
- * rv = encoder_->EncodeFrame (&pic, &info);
206
- * assert (rv == cmResultSuccess);
207
- * if (info.eFrameType != videoFrameTypeSkip) {
208
- * //output bitstream handling
209
- * }
210
- * }
211
- * @endcode
212
- *
213
- * Step5:teardown encoder
214
- * @code
215
- * if (encoder_) {
216
- * encoder_->Uninitialize();
217
- * WelsDestroySVCEncoder (encoder_);
218
- * }
219
- * @endcode
220
- *
221
- */
222
-
223
- /**
224
- * @page EncoderUsageExample2
225
- *
226
- * @brief
227
- * * An example for using the encoder with extension parameter.
228
- * * The same operation on Step 1,3,4,5 with Example-1
229
- *
230
- * Step 2:initialize with extension parameter
231
- * @code
232
- * SEncParamExt param;
233
- * encoder_->GetDefaultParams (&param);
234
- * param.iUsageType = usageType;
235
- * param.fMaxFrameRate = frameRate;
236
- * param.iPicWidth = width;
237
- * param.iPicHeight = height;
238
- * param.iTargetBitrate = 5000000;
239
- * param.bEnableDenoise = denoise;
240
- * param.iSpatialLayerNum = layers;
241
- * //SM_DYN_SLICE don't support multi-thread now
242
- * if (sliceMode != SM_SINGLE_SLICE && sliceMode != SM_DYN_SLICE)
243
- * param.iMultipleThreadIdc = 2;
244
- *
245
- * for (int i = 0; i < param.iSpatialLayerNum; i++) {
246
- * param.sSpatialLayers[i].iVideoWidth = width >> (param.iSpatialLayerNum - 1 - i);
247
- * param.sSpatialLayers[i].iVideoHeight = height >> (param.iSpatialLayerNum - 1 - i);
248
- * param.sSpatialLayers[i].fFrameRate = frameRate;
249
- * param.sSpatialLayers[i].iSpatialBitrate = param.iTargetBitrate;
250
- *
251
- * param.sSpatialLayers[i].sSliceCfg.uiSliceMode = sliceMode;
252
- * if (sliceMode == SM_DYN_SLICE) {
253
- * param.sSpatialLayers[i].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 600;
254
- * param.uiMaxNalSize = 1500;
255
- * }
256
- * }
257
- * param.iTargetBitrate *= param.iSpatialLayerNum;
258
- * encoder_->InitializeExt (&param);
259
- * int videoFormat = videoFormatI420;
260
- * encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
261
- *
262
- * @endcode
263
- */
264
-
265
-
266
-
267
-
268
- #ifdef __cplusplus
269
- /**
270
- * @brief Endocder definition
271
- */
272
- class ISVCEncoder {
273
- public:
274
- /**
275
- * @brief Initialize the encoder
276
- * @param pParam basic encoder parameter
277
- * @return CM_RETURN: 0 - success; otherwise - failed;
278
- */
279
- virtual int EXTAPI Initialize (const SEncParamBase* pParam) = 0;
280
-
281
- /**
282
- * @brief Initilaize encoder by using extension parameters.
283
- * @param pParam extension parameter for encoder
284
- * @return CM_RETURN: 0 - success; otherwise - failed;
285
- */
286
- virtual int EXTAPI InitializeExt (const SEncParamExt* pParam) = 0;
287
-
288
- /**
289
- * @brief Get the default extension parameters.
290
- * If you want to change some parameters of encoder, firstly you need to get the default encoding parameters,
291
- * after that you can change part of parameters you want to.
292
- * @param pParam extension parameter for encoder
293
- * @return CM_RETURN: 0 - success; otherwise - failed;
294
- * */
295
- virtual int EXTAPI GetDefaultParams (SEncParamExt* pParam) = 0;
296
- /// uninitialize the encoder
297
- virtual int EXTAPI Uninitialize() = 0;
298
-
299
- /**
300
- * @brief Encode one frame
301
- * @param kpSrcPic the pointer to the source luminance plane
302
- * chrominance data:
303
- * CbData = kpSrc + m_iMaxPicWidth * m_iMaxPicHeight;
304
- * CrData = CbData + (m_iMaxPicWidth * m_iMaxPicHeight)/4;
305
- * the application calling this interface needs to ensure the data validation between the location
306
- * @param pBsInfo output bit stream
307
- * @return 0 - success; otherwise -failed;
308
- */
309
- virtual int EXTAPI EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo) = 0;
310
-
311
- /**
312
- * @brief Encode the parameters from output bit stream
313
- * @param pBsInfo output bit stream
314
- * @return 0 - success; otherwise - failed;
315
- */
316
- virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo) = 0;
317
-
318
- /**
319
- * @brief Force encoder to encoder frame as IDR if bIDR set as true
320
- * @param bIDR true: force encoder to encode frame as IDR frame;false, return 1 and nothing to do
321
- * @return 0 - success; otherwise - failed;
322
- */
323
- virtual int EXTAPI ForceIntraFrame (bool bIDR, int iLayerId = -1) = 0;
324
-
325
- /**
326
- * @brief Set option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
327
- * @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
328
- * @return CM_RETURN: 0 - success; otherwise - failed;
329
- */
330
- virtual int EXTAPI SetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
331
-
332
- /**
333
- * @brief Get option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
334
- * @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
335
- * @return CM_RETURN: 0 - success; otherwise - failed;
336
- */
337
- virtual int EXTAPI GetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
338
- virtual ~ISVCEncoder() {}
339
- };
340
-
341
-
342
-
343
- /**
344
- * @brief Decoder definition
345
- */
346
- class ISVCDecoder {
347
- public:
348
-
349
- /**
350
- * @brief Initilaize decoder
351
- * @param pParam parameter for decoder
352
- * @return 0 - success; otherwise - failed;
353
- */
354
- virtual long EXTAPI Initialize (const SDecodingParam* pParam) = 0;
355
-
356
- /// Uninitialize the decoder
357
- virtual long EXTAPI Uninitialize() = 0;
358
-
359
- /**
360
- * @brief Decode one frame
361
- * @param pSrc the h264 stream to be decoded
362
- * @param iSrcLen the length of h264 stream
363
- * @param ppDst buffer pointer of decoded data (YUV)
364
- * @param pStride output stride
365
- * @param iWidth output width
366
- * @param iHeight output height
367
- * @return 0 - success; otherwise -failed;
368
- */
369
- virtual DECODING_STATE EXTAPI DecodeFrame (const unsigned char* pSrc,
370
- const int iSrcLen,
371
- unsigned char** ppDst,
372
- int* pStride,
373
- int& iWidth,
374
- int& iHeight) = 0;
375
-
376
- /**
377
- * @brief For slice level DecodeFrameNoDelay() (4 parameters input),
378
- * whatever the function return value is, the output data
379
- * of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
380
- * This function will parse and reconstruct the input frame immediately if it is complete
381
- * It is recommended as the main decoding function for H.264/AVC format input
382
- * @param pSrc the h264 stream to be decoded
383
- * @param iSrcLen the length of h264 stream
384
- * @param ppDst buffer pointer of decoded data (YUV)
385
- * @param pDstInfo information provided to API(width, height, etc.)
386
- * @return 0 - success; otherwise -failed;
387
- */
388
- virtual DECODING_STATE EXTAPI DecodeFrameNoDelay (const unsigned char* pSrc,
389
- const int iSrcLen,
390
- unsigned char** ppDst,
391
- SBufferInfo* pDstInfo) = 0;
392
-
393
- /**
394
- * @brief For slice level DecodeFrame2() (4 parameters input),
395
- * whatever the function return value is, the output data
396
- * of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
397
- * (e.g., in multi-slice cases, only when the whole picture
398
- * is completely reconstructed, this variable would be set equal to 1.)
399
- * @param pSrc the h264 stream to be decoded
400
- * @param iSrcLen the length of h264 stream
401
- * @param ppDst buffer pointer of decoded data (YUV)
402
- * @param pDstInfo information provided to API(width, height, etc.)
403
- * @return 0 - success; otherwise -failed;
404
- */
405
- virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* pSrc,
406
- const int iSrcLen,
407
- unsigned char** ppDst,
408
- SBufferInfo* pDstInfo) = 0;
409
-
410
-
411
- /**
412
- * @brief This function gets a decoded ready frame remaining in buffers after the last frame has been decoded.
413
- * Use GetOption with option DECODER_OPTION_NUM_OF_FRAMES_REMAINING_IN_BUFFER to get the number of frames remaining in buffers.
414
- * Note that it is only applicable for profile_idc != 66
415
- * @param ppDst buffer pointer of decoded data (YUV)
416
- * @param pDstInfo information provided to API(width, height, etc.)
417
- * @return 0 - success; otherwise -failed;
418
- */
419
- virtual DECODING_STATE EXTAPI FlushFrame (unsigned char** ppDst,
420
- SBufferInfo* pDstInfo) = 0;
421
-
422
- /**
423
- * @brief This function parse input bitstream only, and rewrite possible SVC syntax to AVC syntax
424
- * @param pSrc the h264 stream to be decoded
425
- * @param iSrcLen the length of h264 stream
426
- * @param pDstInfo bit stream info
427
- * @return 0 - success; otherwise -failed;
428
- */
429
- virtual DECODING_STATE EXTAPI DecodeParser (const unsigned char* pSrc,
430
- const int iSrcLen,
431
- SParserBsInfo* pDstInfo) = 0;
432
-
433
- /**
434
- * @brief This API does not work for now!! This is for future use to support non-I420 color format output.
435
- * @param pSrc the h264 stream to be decoded
436
- * @param iSrcLen the length of h264 stream
437
- * @param pDst buffer pointer of decoded data (YUV)
438
- * @param iDstStride output stride
439
- * @param iDstLen bit stream info
440
- * @param iWidth output width
441
- * @param iHeight output height
442
- * @param iColorFormat output color format
443
- * @return to do ...
444
- */
445
- virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* pSrc,
446
- const int iSrcLen,
447
- unsigned char* pDst,
448
- int iDstStride,
449
- int& iDstLen,
450
- int& iWidth,
451
- int& iHeight,
452
- int& iColorFormat) = 0;
453
-
454
- /**
455
- * @brief Set option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
456
- * @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
457
- * @return CM_RETURN: 0 - success; otherwise - failed;
458
- */
459
- virtual long EXTAPI SetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
460
-
461
- /**
462
- * @brief Get option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
463
- * @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
464
- * @return CM_RETURN: 0 - success; otherwise - failed;
465
- */
466
- virtual long EXTAPI GetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
467
- virtual ~ISVCDecoder() {}
468
- };
469
-
470
-
471
- extern "C"
472
- {
473
- #else
474
-
475
- typedef struct ISVCEncoderVtbl ISVCEncoderVtbl;
476
- typedef const ISVCEncoderVtbl* ISVCEncoder;
477
- struct ISVCEncoderVtbl {
478
-
479
- int (*Initialize) (ISVCEncoder*, const SEncParamBase* pParam);
480
- int (*InitializeExt) (ISVCEncoder*, const SEncParamExt* pParam);
481
-
482
- int (*GetDefaultParams) (ISVCEncoder*, SEncParamExt* pParam);
483
-
484
- int (*Uninitialize) (ISVCEncoder*);
485
-
486
- int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
487
- int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
488
-
489
- int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
490
-
491
- int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
492
- int (*GetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
493
- };
494
-
495
- typedef struct ISVCDecoderVtbl ISVCDecoderVtbl;
496
- typedef const ISVCDecoderVtbl* ISVCDecoder;
497
- struct ISVCDecoderVtbl {
498
- long (*Initialize) (ISVCDecoder*, const SDecodingParam* pParam);
499
- long (*Uninitialize) (ISVCDecoder*);
500
-
501
- DECODING_STATE (*DecodeFrame) (ISVCDecoder*, const unsigned char* pSrc,
502
- const int iSrcLen,
503
- unsigned char** ppDst,
504
- int* pStride,
505
- int* iWidth,
506
- int* iHeight);
507
-
508
- DECODING_STATE (*DecodeFrameNoDelay) (ISVCDecoder*, const unsigned char* pSrc,
509
- const int iSrcLen,
510
- unsigned char** ppDst,
511
- SBufferInfo* pDstInfo);
512
-
513
- DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
514
- const int iSrcLen,
515
- unsigned char** ppDst,
516
- SBufferInfo* pDstInfo);
517
-
518
- DECODING_STATE (*FlushFrame) (ISVCDecoder*, unsigned char** ppDst,
519
- SBufferInfo* pDstInfo);
520
-
521
- DECODING_STATE (*DecodeParser) (ISVCDecoder*, const unsigned char* pSrc,
522
- const int iSrcLen,
523
- SParserBsInfo* pDstInfo);
524
-
525
- DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
526
- const int iSrcLen,
527
- unsigned char* pDst,
528
- int iDstStride,
529
- int* iDstLen,
530
- int* iWidth,
531
- int* iHeight,
532
- int* iColorFormat);
533
-
534
- long (*SetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
535
- long (*GetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
536
- };
537
- #endif
538
-
539
- typedef void (*WelsTraceCallback) (void* ctx, int level, const char* string);
540
-
541
- /** @brief Create encoder
542
- * @param ppEncoder encoder
543
- * @return 0 - success; otherwise - failed;
544
- */
545
- int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
546
-
547
-
548
- /** @brief Destroy encoder
549
- * @param pEncoder encoder
550
- * @return void
551
- */
552
- void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);
553
-
554
-
555
- /** @brief Get the capability of decoder
556
- * @param pDecCapability decoder capability
557
- * @return 0 - success; otherwise - failed;
558
- */
559
- int WelsGetDecoderCapability (SDecoderCapability* pDecCapability);
560
-
561
-
562
- /** @brief Create decoder
563
- * @param ppDecoder decoder
564
- * @return 0 - success; otherwise - failed;
565
- */
566
- long WelsCreateDecoder (ISVCDecoder** ppDecoder);
567
-
568
-
569
- /** @brief Destroy decoder
570
- * @param pDecoder decoder
571
- * @return void
572
- */
573
- void WelsDestroyDecoder (ISVCDecoder* pDecoder);
574
-
575
- /** @brief Get codec version
576
- * Note, old versions of Mingw (GCC < 4.7) are buggy and use an
577
- * incorrect/different ABI for calling this function, making it
578
- * incompatible with MSVC builds.
579
- * @return The linked codec version
580
- */
581
- OpenH264Version WelsGetCodecVersion (void);
582
-
583
- /** @brief Get codec version
584
- * @param pVersion struct to fill in with the version
585
- */
586
- void WelsGetCodecVersionEx (OpenH264Version* pVersion);
587
-
588
- #ifdef __cplusplus
589
- }
590
- #endif
591
-
592
- #endif//WELS_VIDEO_CODEC_SVC_API_H__