@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,112 +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
- //picture.h - reconstruction picture/ reference picture/ residual picture are declared here
34
- #ifndef WELS_PICTURE_H__
35
- #define WELS_PICTURE_H__
36
-
37
- #include "typedefs.h"
38
- #include "wels_common_defs.h"
39
- #include "wels_const_common.h"
40
- #include "wels_decoder_thread.h"
41
-
42
- using namespace WelsCommon;
43
-
44
- namespace WelsDec {
45
-
46
- /*
47
- * Reconstructed Picture definition
48
- * It is used to express reference picture, also consequent reconstruction picture for output
49
- */
50
-
51
- struct SPicture {
52
- /************************************payload data*********************************/
53
- uint8_t* pBuffer[4]; // pointer to the first allocated byte, basical offset of buffer, dimension:
54
- uint8_t* pData[4]; // pointer to picture planes respectively
55
- int32_t iLinesize[4];// linesize of picture planes respectively used currently
56
- int32_t iPlanes; // How many planes are introduced due to color space format?
57
- // picture information
58
-
59
- /*******************************from EC mv copy****************************/
60
- bool bIdrFlag;
61
-
62
- /*******************************from other standard syntax****************************/
63
- /*from sps*/
64
- int32_t iWidthInPixel; // picture width in pixel
65
- int32_t iHeightInPixel;// picture height in pixel
66
- /*from slice header*/
67
- int32_t iFramePoc; // frame POC
68
-
69
- /*******************************sef_definition for misc use****************************/
70
- bool bUsedAsRef; //for ref pic management
71
- bool bIsLongRef; // long term reference frame flag //for ref pic management
72
- int8_t iRefCount;
73
- void (*pSetUnRef)(WelsDec::SPicture*);
74
-
75
- bool bIsComplete; // indicate whether current picture is complete, not from EC
76
- /*******************************for future use****************************/
77
- uint8_t uiTemporalId;
78
- uint8_t uiSpatialId;
79
- uint8_t uiQualityId;
80
-
81
- int32_t iFrameNum; // frame number //for ref pic management
82
- int32_t iFrameWrapNum; // frame wrap number //for ref pic management
83
- int32_t iLongTermFrameIdx; //id for long term ref pic
84
- uint32_t uiLongTermPicNum; //long_term_pic_num
85
-
86
- int32_t iSpsId; //against mosaic caused by cross-IDR interval reference.
87
- int32_t iPpsId;
88
- unsigned long long uiTimeStamp;
89
- uint32_t uiDecodingTimeStamp; //represent relative decoding time stamps
90
- int32_t iPicBuffIdx;
91
- EWelsSliceType eSliceType;
92
- bool bIsUngroupedMultiSlice; //multi-slice picture with each each slice group contains one slice.
93
- bool bNewSeqBegin;
94
- int32_t iMbEcedNum;
95
- int32_t iMbEcedPropNum;
96
- int32_t iMbNum;
97
-
98
- bool* pMbCorrectlyDecodedFlag;
99
- int8_t (*pNzc)[24];
100
- uint32_t* pMbType; // mb type used for direct mode
101
- int16_t (*pMv[LIST_A])[MB_BLOCK4x4_NUM][MV_A]; // used for direct mode
102
- int8_t (*pRefIndex[LIST_A])[MB_BLOCK4x4_NUM]; //used for direct mode
103
- struct SPicture* pRefPic[LIST_A][17]; //ref pictures used for direct mode
104
- SWelsDecEvent* pReadyEvent; //MB line ready event
105
-
106
- };// "Picture" declaration is comflict with Mac system
107
-
108
- typedef struct SPicture* PPicture;
109
-
110
- } // namespace WelsDec
111
-
112
- #endif//WELS_PICTURE_H__
@@ -1,104 +0,0 @@
1
- /*!
2
- * \copy
3
- * Copyright (c) 2009-2013, Cisco Systems
4
- * All rights reserved.
5
- *
6
- * Redistribution and use in source and binary forms, with or without
7
- * modification, are permitted provided that the following conditions
8
- * are met:
9
- *
10
- * * Redistributions of source code must retain the above copyright
11
- * notice, this list of conditions and the following disclaimer.
12
- *
13
- * * Redistributions in binary form must reproduce the above copyright
14
- * notice, this list of conditions and the following disclaimer in
15
- * the documentation and/or other materials provided with the
16
- * distribution.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
- * POSSIBILITY OF SUCH DAMAGE.
30
- *
31
- *
32
- * \file rec_mb.h
33
- *
34
- * \brief interfaces for all macroblock decoding process after mb syntax parsing and residual decoding with cavlc.
35
- *
36
- * \date 3/4/2009 Created
37
- *
38
- *************************************************************************************
39
- */
40
-
41
- #ifndef WELS_REC_MB_H__
42
- #define WELS_REC_MB_H__
43
-
44
- #include "typedefs.h"
45
- #include "wels_common_basis.h"
46
- #include "error_code.h"
47
-
48
- #include "decoder_context.h"
49
-
50
- namespace WelsDec {
51
-
52
- #define WELS_B_MB_REC_VERIFY(uiRet) do{ \
53
- uint32_t uiRetTmp = (uint32_t)uiRet; \
54
- if( uiRetTmp != ERR_NONE ) \
55
- return uiRetTmp; \
56
- }while(0)
57
-
58
- typedef struct TagMCRefMember {
59
- uint8_t* pDstY;
60
- uint8_t* pDstU;
61
- uint8_t* pDstV;
62
-
63
- uint8_t* pSrcY;
64
- uint8_t* pSrcU;
65
- uint8_t* pSrcV;
66
-
67
- int32_t iSrcLineLuma;
68
- int32_t iSrcLineChroma;
69
-
70
- int32_t iDstLineLuma;
71
- int32_t iDstLineChroma;
72
-
73
- int32_t iPicWidth;
74
- int32_t iPicHeight;
75
- } sMCRefMember;
76
-
77
- void BaseMC (PWelsDecoderContext pCtx, sMCRefMember* pMCRefMem, const int32_t& listIdx, const int8_t& iRefIdx,
78
- int32_t iXOffset, int32_t iYOffset, SMcFunc* pMCFunc,
79
- int32_t iBlkWidth, int32_t iBlkHeight, int16_t iMVs[2]);
80
-
81
- void WelsFillRecNeededMbInfo (PWelsDecoderContext pCtx, bool bOutput, PDqLayer pCurDqLayer);
82
-
83
- int32_t RecI4x4Mb (int32_t iMBXY, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
84
-
85
- int32_t RecI4x4Luma (int32_t iMBXY, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
86
-
87
- int32_t RecI4x4Chroma (int32_t iMBXY, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
88
-
89
- int32_t RecI8x8Mb (int32_t iMbXy, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
90
-
91
- int32_t RecI8x8Luma (int32_t iMbXy, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
92
-
93
- int32_t RecI16x16Mb (int32_t iMBXY, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
94
-
95
- int32_t RecChroma (int32_t iMBXY, PWelsDecoderContext pCtx, int16_t* pScoeffLevel, PDqLayer pDqLayer);
96
-
97
- int32_t GetInterPred (uint8_t* pPredY, uint8_t* pPredCb, uint8_t* pPredCr, PWelsDecoderContext pCtx);
98
-
99
- int32_t GetInterBPred (uint8_t* pPredYCbCr[3], uint8_t* pTempPredYCbCr[3], PWelsDecoderContext pCtx);
100
-
101
- } // namespace WelsDec
102
-
103
- #endif //WELS_REC_MB_H__
104
-
@@ -1,208 +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_slice.h
34
- #ifndef WELS_SLICE_H__
35
- #define WELS_SLICE_H__
36
-
37
- #include "typedefs.h"
38
- #include "wels_const.h"
39
- #include "wels_common_basis.h"
40
- #include "picture.h"
41
- #include "parameter_sets.h"
42
-
43
- namespace WelsDec {
44
-
45
- /*
46
- * Reference picture list reordering syntax, refer to page 64 in JVT X201wcm
47
- */
48
- typedef struct TagRefPicListReorderSyntax {
49
- struct {
50
- uint32_t uiAbsDiffPicNumMinus1;
51
- uint16_t uiLongTermPicNum;
52
- uint16_t uiReorderingOfPicNumsIdc;
53
- } sReorderingSyn[LIST_A][MAX_REF_PIC_COUNT + 1];
54
- bool bRefPicListReorderingFlag[LIST_A];
55
- } SRefPicListReorderSyn, *PRefPicListReorderSyn;
56
-
57
- /*
58
- * Prediction weight table syntax, refer to page 65 in JVT X201wcm
59
- */
60
- typedef struct TagPredWeightTabSyntax {
61
- uint32_t uiLumaLog2WeightDenom;
62
- uint32_t uiChromaLog2WeightDenom;
63
- struct {
64
- int32_t iLumaWeight[MAX_REF_PIC_COUNT];
65
- int32_t iLumaOffset[MAX_REF_PIC_COUNT];
66
- int32_t iChromaWeight[MAX_REF_PIC_COUNT][2];
67
- int32_t iChromaOffset[MAX_REF_PIC_COUNT][2];
68
- bool bLumaWeightFlag;
69
- bool bChromaWeightFlag;
70
- } sPredList[LIST_A];
71
- int32_t iImplicitWeight[MAX_REF_PIC_COUNT][MAX_REF_PIC_COUNT];
72
- } SPredWeightTabSyn, *PPredWeightTabSyn;
73
-
74
- /* Decoded reference picture marking syntax, refer to Page 66 in JVT X201wcm */
75
- typedef struct TagRefPicMarking {
76
- struct {
77
- uint32_t uiMmcoType;
78
- int32_t iShortFrameNum;
79
- int32_t iDiffOfPicNum;
80
- uint32_t uiLongTermPicNum;
81
- int32_t iLongTermFrameIdx;
82
- int32_t iMaxLongTermFrameIdx;
83
- } sMmcoRef[MAX_MMCO_COUNT];
84
-
85
- bool bNoOutputOfPriorPicsFlag;
86
- bool bLongTermRefFlag;
87
- bool bAdaptiveRefPicMarkingModeFlag;
88
- } SRefPicMarking, *PRefPicMarking;
89
-
90
- /* Decode reference base picture marking syntax in Page 396 of JVT X201wcm */
91
- typedef struct TagRefBasePicMarkingSyn {
92
- struct {
93
- uint32_t uiMmcoType;
94
- int32_t iShortFrameNum;
95
- uint32_t uiDiffOfPicNums;
96
- uint32_t uiLongTermPicNum; //should uint32_t, cover larger range of iFrameNum.
97
- } mmco_base[MAX_MMCO_COUNT]; // MAX_REF_PIC for reference picture based on frame
98
-
99
- bool bAdaptiveRefBasePicMarkingModeFlag;
100
- } SRefBasePicMarking, *PRefBasePicMarking;
101
-
102
- /* Header of slice syntax elements, refer to Page 63 in JVT X201wcm */
103
- typedef struct TagSliceHeaders {
104
- /*****************************slice header syntax and generated****************************/
105
- int32_t iFirstMbInSlice;
106
- int32_t iFrameNum;
107
- int32_t iPicOrderCntLsb;
108
- int32_t iDeltaPicOrderCntBottom;
109
- int32_t iDeltaPicOrderCnt[2];
110
- int32_t iRedundantPicCnt;
111
- int32_t iDirectSpatialMvPredFlag; //!< Direct Mode type to be used (0: Temporal, 1: Spatial)
112
- int32_t uiRefCount[LIST_A];
113
- int32_t iSliceQpDelta; //no use for iSliceQp is used directly
114
- int32_t iSliceQp;
115
- int32_t iSliceQsDelta; // For SP/SI slices
116
- uint32_t uiDisableDeblockingFilterIdc;
117
- int32_t iSliceAlphaC0Offset;
118
- int32_t iSliceBetaOffset;
119
- int32_t iSliceGroupChangeCycle;
120
-
121
- PSps pSps;
122
- PPps pPps;
123
- int32_t iSpsId;
124
- int32_t iPpsId;
125
- bool bIdrFlag;
126
-
127
- /*********************got from other layer for efficency if possible*********************/
128
- SRefPicListReorderSyn pRefPicListReordering; // Reference picture list reordering syntaxs
129
- SPredWeightTabSyn sPredWeightTable;
130
- int32_t iCabacInitIdc;
131
- int32_t iMbWidth; //from?
132
- int32_t iMbHeight; //from?
133
- SRefPicMarking sRefMarking; // Decoded reference picture marking syntaxs
134
-
135
- uint16_t uiIdrPicId;
136
- EWelsSliceType eSliceType;
137
- bool bNumRefIdxActiveOverrideFlag;
138
- bool bFieldPicFlag; //not supported in base profile
139
- bool bBottomFiledFlag; //not supported in base profile
140
- uint8_t uiPadding1Byte;
141
- bool bSpForSwitchFlag; // For SP/SI slices
142
- int16_t iPadding2Bytes;
143
- } SSliceHeader, *PSliceHeader;
144
-
145
-
146
- /* Slice header in scalable extension syntax, refer to Page 394 in JVT X201wcm */
147
- typedef struct TagSliceHeaderExt {
148
- SSliceHeader sSliceHeader;
149
- PSubsetSps pSubsetSps;
150
-
151
- uint32_t uiDisableInterLayerDeblockingFilterIdc;
152
- int32_t iInterLayerSliceAlphaC0Offset;
153
- int32_t iInterLayerSliceBetaOffset;
154
-
155
- //SPosOffset sScaledRefLayer;
156
- int32_t iScaledRefLayerPicWidthInSampleLuma;
157
- int32_t iScaledRefLayerPicHeightInSampleLuma;
158
-
159
- SRefBasePicMarking sRefBasePicMarking;
160
- bool bBasePredWeightTableFlag;
161
- bool bStoreRefBasePicFlag;
162
- bool bConstrainedIntraResamplingFlag;
163
- bool bSliceSkipFlag;
164
-
165
- bool bAdaptiveBaseModeFlag;
166
- bool bDefaultBaseModeFlag;
167
- bool bAdaptiveMotionPredFlag;
168
- bool bDefaultMotionPredFlag;
169
- bool bAdaptiveResidualPredFlag;
170
- bool bDefaultResidualPredFlag;
171
- bool bTCoeffLevelPredFlag;
172
- uint8_t uiRefLayerChromaPhaseXPlus1Flag;
173
-
174
- uint8_t uiRefLayerChromaPhaseYPlus1;
175
- uint8_t uiRefLayerDqId;
176
- uint8_t uiScanIdxStart;
177
- uint8_t uiScanIdxEnd;
178
- } SSliceHeaderExt, *PSliceHeaderExt;
179
-
180
-
181
- typedef struct TagSlice {
182
- /*******************************slice_header****************************/
183
- SSliceHeaderExt sSliceHeaderExt;
184
-
185
- /*******************************use for future****************************/
186
- // for Macroblock coding within slice
187
- int32_t iLastMbQp; // stored qp for last mb coded, maybe more efficient for mb skip detection etc.
188
-
189
- /*******************************slice_data****************************/
190
- /*slice_data_ext()*/
191
- int32_t iMbSkipRun;
192
- int32_t iTotalMbInCurSlice; //record the total number of MB in current slice.
193
-
194
- /*slice_data_ext() generate*/
195
-
196
- /*******************************misc use****************************/
197
- bool bSliceHeaderExtFlag; // Indicate which slice header is used, avc or ext?
198
- /*************got from other layer for effiency if possible***************/
199
- /*from lower layer: slice header*/
200
- uint8_t eSliceType;
201
- uint8_t uiPadding[2];
202
- int32_t iLastDeltaQp;
203
- int16_t iMvScale[LIST_A][MAX_DPB_COUNT]; //Moton vector scale For Temporal Direct Mode Type
204
- } SSlice, *PSlice;
205
-
206
- } // namespace WelsDec
207
-
208
- #endif//WELS_SLICE_H__
@@ -1,177 +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
- #ifndef WELS_VLC_DECODER_H__
34
- #define WELS_VLC_DECODER_H__
35
-
36
- #include "bit_stream.h"
37
- #include "dec_golomb.h"
38
-
39
- namespace WelsDec {
40
-
41
- typedef struct TagVlcTable {
42
- const uint8_t (*kpCoeffTokenVlcTable[4][8])[2];
43
- const uint8_t (*kpChromaCoeffTokenVlcTable)[2];
44
- const uint8_t (*kpZeroTable[7])[2];
45
- const uint8_t (*kpTotalZerosTable[2][15])[2];
46
- } SVlcTable;
47
-
48
- // for data sharing cross modules and try to reduce size of binary generated
49
- extern const uint8_t g_kuiVlcChromaTable[256][2];
50
- extern const uint8_t g_kuiVlcTable_0[256][2];
51
- extern const uint8_t g_kuiVlcTable_0_0[256][2];
52
- extern const uint8_t g_kuiVlcTable_0_1[4][2];
53
- extern const uint8_t g_kuiVlcTable_0_2[2][2];
54
- extern const uint8_t g_kuiVlcTable_0_3[2][2];
55
- extern const uint8_t g_kuiVlcTable_1[256][2];
56
- extern const uint8_t g_kuiVlcTable_1_0[64][2];
57
- extern const uint8_t g_kuiVlcTable_1_1[8][2];
58
- extern const uint8_t g_kuiVlcTable_1_2[2][2];
59
- extern const uint8_t g_kuiVlcTable_1_3[2][2];
60
- extern const uint8_t g_kuiVlcTable_2[256][2];
61
- extern const uint8_t g_kuiVlcTable_2_0[4][2];
62
- extern const uint8_t g_kuiVlcTable_2_1[4][2];
63
- extern const uint8_t g_kuiVlcTable_2_2[4][2];
64
- extern const uint8_t g_kuiVlcTable_2_3[4][2];
65
- extern const uint8_t g_kuiVlcTable_2_4[2][2];
66
- extern const uint8_t g_kuiVlcTable_2_5[2][2];
67
- extern const uint8_t g_kuiVlcTable_2_6[2][2];
68
- extern const uint8_t g_kuiVlcTable_2_7[2][2];
69
- extern const uint8_t g_kuiVlcTable_3[64][2];
70
- extern const uint8_t g_kuiVlcTableNeedMoreBitsThread[3];
71
- extern const uint8_t g_kuiVlcTableMoreBitsCount0[4];
72
- extern const uint8_t g_kuiVlcTableMoreBitsCount1[4];
73
- extern const uint8_t g_kuiVlcTableMoreBitsCount2[8];
74
- extern const uint8_t g_kuiNcMapTable[17];
75
- extern const uint8_t g_kuiVlcTrailingOneTotalCoeffTable[62][2];
76
- extern const uint8_t g_kuiTotalZerosTable0[512][2];
77
- extern const uint8_t g_kuiTotalZerosTable1[64][2];
78
- extern const uint8_t g_kuiTotalZerosTable2[64][2];
79
- extern const uint8_t g_kuiTotalZerosTable3[32][2];
80
- extern const uint8_t g_kuiTotalZerosTable4[32][2];
81
- extern const uint8_t g_kuiTotalZerosTable5[64][2];
82
- extern const uint8_t g_kuiTotalZerosTable6[64][2];
83
- extern const uint8_t g_kuiTotalZerosTable7[64][2];
84
- extern const uint8_t g_kuiTotalZerosTable8[64][2];
85
- extern const uint8_t g_kuiTotalZerosTable9[32][2];
86
- extern const uint8_t g_kuiTotalZerosTable10[16][2];
87
- extern const uint8_t g_kuiTotalZerosTable11[16][2];
88
- extern const uint8_t g_kuiTotalZerosTable12[8][2];
89
- extern const uint8_t g_kuiTotalZerosTable13[4][2];
90
- extern const uint8_t g_kuiTotalZerosTable14[2][2];
91
- extern const uint8_t g_kuiTotalZerosBitNumMap[15];
92
- extern const uint8_t g_kuiTotalZerosChromaTable0[8][2];
93
- extern const uint8_t g_kuiTotalZerosChromaTable1[4][2];
94
- extern const uint8_t g_kuiTotalZerosChromaTable2[2][2];
95
- extern const uint8_t g_kuiTotalZerosBitNumChromaMap[3];
96
- extern const uint8_t g_kuiZeroLeftTable0[2][2];
97
- extern const uint8_t g_kuiZeroLeftTable1[4][2];
98
- extern const uint8_t g_kuiZeroLeftTable2[4][2];
99
- extern const uint8_t g_kuiZeroLeftTable3[8][2];
100
- extern const uint8_t g_kuiZeroLeftTable4[8][2];
101
- extern const uint8_t g_kuiZeroLeftTable5[8][2];
102
- extern const uint8_t g_kuiZeroLeftTable6[8][2];
103
- extern const uint8_t g_kuiZeroLeftBitNumMap[16];
104
-
105
- #if defined(_MSC_VER) && defined(_M_IX86)
106
- //TODO need linux version
107
- #define WELS_GET_PREFIX_BITS(inval,outval){\
108
- uint32_t local = inval;\
109
- __asm xor eax, eax\
110
- __asm bsr eax, local\
111
- __asm sub eax, 32\
112
- __asm neg eax\
113
- __asm mov outval, eax\
114
- }
115
- #else
116
- #define WELS_GET_PREFIX_BITS(inval, outval) outval = GetPrefixBits(inval)
117
- #endif
118
-
119
- static inline void InitVlcTable (SVlcTable* pVlcTable) {
120
- pVlcTable->kpChromaCoeffTokenVlcTable = g_kuiVlcChromaTable;
121
-
122
- pVlcTable->kpCoeffTokenVlcTable[0][0] = g_kuiVlcTable_0;
123
- pVlcTable->kpCoeffTokenVlcTable[0][1] = g_kuiVlcTable_1;
124
- pVlcTable->kpCoeffTokenVlcTable[0][2] = g_kuiVlcTable_2;
125
- pVlcTable->kpCoeffTokenVlcTable[0][3] = g_kuiVlcTable_3;
126
-
127
- pVlcTable->kpCoeffTokenVlcTable[1][0] = g_kuiVlcTable_0_0;
128
- pVlcTable->kpCoeffTokenVlcTable[1][1] = g_kuiVlcTable_0_1;
129
- pVlcTable->kpCoeffTokenVlcTable[1][2] = g_kuiVlcTable_0_2;
130
- pVlcTable->kpCoeffTokenVlcTable[1][3] = g_kuiVlcTable_0_3;
131
-
132
- pVlcTable->kpCoeffTokenVlcTable[2][0] = g_kuiVlcTable_1_0;
133
- pVlcTable->kpCoeffTokenVlcTable[2][1] = g_kuiVlcTable_1_1;
134
- pVlcTable->kpCoeffTokenVlcTable[2][2] = g_kuiVlcTable_1_2;
135
- pVlcTable->kpCoeffTokenVlcTable[2][3] = g_kuiVlcTable_1_3;
136
-
137
- pVlcTable->kpCoeffTokenVlcTable[3][0] = g_kuiVlcTable_2_0;
138
- pVlcTable->kpCoeffTokenVlcTable[3][1] = g_kuiVlcTable_2_1;
139
- pVlcTable->kpCoeffTokenVlcTable[3][2] = g_kuiVlcTable_2_2;
140
- pVlcTable->kpCoeffTokenVlcTable[3][3] = g_kuiVlcTable_2_3;
141
- pVlcTable->kpCoeffTokenVlcTable[3][4] = g_kuiVlcTable_2_4;
142
- pVlcTable->kpCoeffTokenVlcTable[3][5] = g_kuiVlcTable_2_5;
143
- pVlcTable->kpCoeffTokenVlcTable[3][6] = g_kuiVlcTable_2_6;
144
- pVlcTable->kpCoeffTokenVlcTable[3][7] = g_kuiVlcTable_2_7;
145
-
146
- pVlcTable->kpZeroTable[0] = g_kuiZeroLeftTable0;
147
- pVlcTable->kpZeroTable[1] = g_kuiZeroLeftTable1;
148
- pVlcTable->kpZeroTable[2] = g_kuiZeroLeftTable2;
149
- pVlcTable->kpZeroTable[3] = g_kuiZeroLeftTable3;
150
- pVlcTable->kpZeroTable[4] = g_kuiZeroLeftTable4;
151
- pVlcTable->kpZeroTable[5] = g_kuiZeroLeftTable5;
152
- pVlcTable->kpZeroTable[6] = g_kuiZeroLeftTable6;
153
-
154
- pVlcTable->kpTotalZerosTable[0][0] = g_kuiTotalZerosTable0;
155
- pVlcTable->kpTotalZerosTable[0][1] = g_kuiTotalZerosTable1;
156
- pVlcTable->kpTotalZerosTable[0][2] = g_kuiTotalZerosTable2;
157
- pVlcTable->kpTotalZerosTable[0][3] = g_kuiTotalZerosTable3;
158
- pVlcTable->kpTotalZerosTable[0][4] = g_kuiTotalZerosTable4;
159
- pVlcTable->kpTotalZerosTable[0][5] = g_kuiTotalZerosTable5;
160
- pVlcTable->kpTotalZerosTable[0][6] = g_kuiTotalZerosTable6;
161
- pVlcTable->kpTotalZerosTable[0][7] = g_kuiTotalZerosTable7;
162
- pVlcTable->kpTotalZerosTable[0][8] = g_kuiTotalZerosTable8;
163
- pVlcTable->kpTotalZerosTable[0][9] = g_kuiTotalZerosTable9;
164
- pVlcTable->kpTotalZerosTable[0][10] = g_kuiTotalZerosTable10;
165
- pVlcTable->kpTotalZerosTable[0][11] = g_kuiTotalZerosTable11;
166
- pVlcTable->kpTotalZerosTable[0][12] = g_kuiTotalZerosTable12;
167
- pVlcTable->kpTotalZerosTable[0][13] = g_kuiTotalZerosTable13;
168
- pVlcTable->kpTotalZerosTable[0][14] = g_kuiTotalZerosTable14;
169
- pVlcTable->kpTotalZerosTable[1][0] = g_kuiTotalZerosChromaTable0;
170
- pVlcTable->kpTotalZerosTable[1][1] = g_kuiTotalZerosChromaTable1;
171
- pVlcTable->kpTotalZerosTable[1][2] = g_kuiTotalZerosChromaTable2;
172
-
173
- }
174
-
175
- } // namespace WelsDec
176
-
177
- #endif//WELS_VLC_DECODER_H__