@scrypted/libav 1.0.179 → 1.0.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/_openh264install/include/wels/codec_api.h +592 -0
  2. package/_openh264install/include/wels/codec_app_def.h +820 -0
  3. package/_openh264install/include/wels/codec_def.h +216 -0
  4. package/_openh264install/include/wels/codec_ver.h +15 -0
  5. package/_openh264install/lib/libopenh264.a +0 -0
  6. package/_openh264install/lib/pkgconfig/openh264.pc +10 -0
  7. package/binding.gyp +4 -0
  8. package/openh264/.reviewboardrc +3 -0
  9. package/openh264/.travis.yml +42 -0
  10. package/openh264/CODING_STYLE +8 -0
  11. package/openh264/CONTRIBUTORS +55 -0
  12. package/openh264/LICENSE +23 -0
  13. package/openh264/Makefile +408 -0
  14. package/openh264/README.md +197 -0
  15. package/openh264/RELEASES +467 -0
  16. package/openh264/SECURITY.md +16 -0
  17. package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +431 -0
  18. package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +180 -0
  19. package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
  20. package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
  21. package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +193 -0
  22. package/openh264/autotest/performanceTest/ios/uiascript.js +19 -0
  23. package/openh264/autotest/performanceTest/parsePerfData.sh +107 -0
  24. package/openh264/autotest/performanceTest/run_perfTest.sh +122 -0
  25. package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +112 -0
  26. package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +167 -0
  27. package/openh264/autotest/unitTest/run_ParseUTxml.sh +70 -0
  28. package/openh264/autotest/unitTest/run_unitTest.sh +98 -0
  29. package/openh264/build.gradle +30 -0
  30. package/openh264/code-coverage.sh +6 -0
  31. package/openh264/codec/api/meson.build +1 -0
  32. package/openh264/codec/api/wels/codec_api.h +592 -0
  33. package/openh264/codec/api/wels/codec_app_def.h +820 -0
  34. package/openh264/codec/api/wels/codec_def.h +216 -0
  35. package/openh264/codec/api/wels/codec_ver.h +15 -0
  36. package/openh264/codec/api/wels/meson.build +9 -0
  37. package/openh264/codec/common/arm/arm_arch_common_macro.S +83 -0
  38. package/openh264/codec/common/arm/copy_mb_neon.S +161 -0
  39. package/openh264/codec/common/arm/deblocking_neon.S +857 -0
  40. package/openh264/codec/common/arm/expand_picture_neon.S +154 -0
  41. package/openh264/codec/common/arm/intra_pred_common_neon.S +82 -0
  42. package/openh264/codec/common/arm/mc_neon.S +2283 -0
  43. package/openh264/codec/common/arm64/arm_aarch64_common.h +85 -0
  44. package/openh264/codec/common/arm64/arm_arch64_common_macro.S +79 -0
  45. package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +202 -0
  46. package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +852 -0
  47. package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +150 -0
  48. package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +58 -0
  49. package/openh264/codec/common/arm64/mc_aarch64_neon.S +2614 -0
  50. package/openh264/codec/common/generate_version.sh +28 -0
  51. package/openh264/codec/common/inc/WelsList.h +287 -0
  52. package/openh264/codec/common/inc/WelsLock.h +97 -0
  53. package/openh264/codec/common/inc/WelsTask.h +75 -0
  54. package/openh264/codec/common/inc/WelsTaskThread.h +83 -0
  55. package/openh264/codec/common/inc/WelsThread.h +106 -0
  56. package/openh264/codec/common/inc/WelsThreadLib.h +151 -0
  57. package/openh264/codec/common/inc/WelsThreadPool.h +124 -0
  58. package/openh264/codec/common/inc/asmdefs_mmi.h +345 -0
  59. package/openh264/codec/common/inc/copy_mb.h +103 -0
  60. package/openh264/codec/common/inc/cpu.h +81 -0
  61. package/openh264/codec/common/inc/cpu_core.h +103 -0
  62. package/openh264/codec/common/inc/crt_util_safe_x.h +104 -0
  63. package/openh264/codec/common/inc/deblocking_common.h +124 -0
  64. package/openh264/codec/common/inc/expand_pic.h +107 -0
  65. package/openh264/codec/common/inc/golomb_common.h +166 -0
  66. package/openh264/codec/common/inc/intra_pred_common.h +86 -0
  67. package/openh264/codec/common/inc/loongson_intrinsics.h +1919 -0
  68. package/openh264/codec/common/inc/ls_defines.h +130 -0
  69. package/openh264/codec/common/inc/macros.h +329 -0
  70. package/openh264/codec/common/inc/mc.h +407 -0
  71. package/openh264/codec/common/inc/measure_time.h +88 -0
  72. package/openh264/codec/common/inc/memory_align.h +116 -0
  73. package/openh264/codec/common/inc/msa_macros.h +2393 -0
  74. package/openh264/codec/common/inc/sad_common.h +139 -0
  75. package/openh264/codec/common/inc/typedefs.h +86 -0
  76. package/openh264/codec/common/inc/utils.h +95 -0
  77. package/openh264/codec/common/inc/version.h +10 -0
  78. package/openh264/codec/common/inc/version_gen.h.template +6 -0
  79. package/openh264/codec/common/inc/welsCodecTrace.h +64 -0
  80. package/openh264/codec/common/inc/wels_common_defs.h +373 -0
  81. package/openh264/codec/common/inc/wels_const_common.h +63 -0
  82. package/openh264/codec/common/loongarch/copy_mb_lsx.c +194 -0
  83. package/openh264/codec/common/loongarch/deblock_lsx.c +1489 -0
  84. package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +112 -0
  85. package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +91 -0
  86. package/openh264/codec/common/loongarch/mc_chroma_lsx.c +192 -0
  87. package/openh264/codec/common/loongarch/mc_horver_lsx.c +654 -0
  88. package/openh264/codec/common/loongarch/satd_sad_lasx.c +568 -0
  89. package/openh264/codec/common/meson.build +84 -0
  90. package/openh264/codec/common/mips/copy_mb_mmi.c +477 -0
  91. package/openh264/codec/common/mips/copy_mb_msa.c +80 -0
  92. package/openh264/codec/common/mips/deblock_mmi.c +2826 -0
  93. package/openh264/codec/common/mips/deblock_msa.c +1024 -0
  94. package/openh264/codec/common/mips/expand_picture_mmi.c +673 -0
  95. package/openh264/codec/common/mips/intra_pred_com_mmi.c +548 -0
  96. package/openh264/codec/common/mips/satd_sad_mmi.c +2154 -0
  97. package/openh264/codec/common/targets.mk +136 -0
  98. package/openh264/codec/common/x86/asm_inc.asm +743 -0
  99. package/openh264/codec/common/x86/cpuid.asm +263 -0
  100. package/openh264/codec/common/x86/dct.asm +1036 -0
  101. package/openh264/codec/common/x86/deblock.asm +848 -0
  102. package/openh264/codec/common/x86/expand_picture.asm +728 -0
  103. package/openh264/codec/common/x86/intra_pred_com.asm +117 -0
  104. package/openh264/codec/common/x86/mb_copy.asm +615 -0
  105. package/openh264/codec/common/x86/mc_chroma.asm +313 -0
  106. package/openh264/codec/common/x86/mc_luma.asm +4490 -0
  107. package/openh264/codec/common/x86/satd_sad.asm +2734 -0
  108. package/openh264/codec/common/x86/vaa.asm +411 -0
  109. package/openh264/codec/console/common/inc/read_config.h +68 -0
  110. package/openh264/codec/console/common/meson.build +12 -0
  111. package/openh264/codec/console/common/targets.mk +20 -0
  112. package/openh264/codec/console/dec/inc/d3d9_utils.h +148 -0
  113. package/openh264/codec/console/dec/meson.build +15 -0
  114. package/openh264/codec/console/dec/targets.mk +20 -0
  115. package/openh264/codec/console/enc/meson.build +9 -0
  116. package/openh264/codec/console/enc/targets.mk +19 -0
  117. package/openh264/codec/console/meson.build +3 -0
  118. package/openh264/codec/decoder/core/arm/block_add_neon.S +129 -0
  119. package/openh264/codec/decoder/core/arm/intra_pred_neon.S +635 -0
  120. package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +131 -0
  121. package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +524 -0
  122. package/openh264/codec/decoder/core/inc/au_parser.h +199 -0
  123. package/openh264/codec/decoder/core/inc/bit_stream.h +62 -0
  124. package/openh264/codec/decoder/core/inc/cabac_decoder.h +111 -0
  125. package/openh264/codec/decoder/core/inc/deblocking.h +118 -0
  126. package/openh264/codec/decoder/core/inc/dec_frame.h +156 -0
  127. package/openh264/codec/decoder/core/inc/dec_golomb.h +344 -0
  128. package/openh264/codec/decoder/core/inc/decode_mb_aux.h +83 -0
  129. package/openh264/codec/decoder/core/inc/decode_slice.h +104 -0
  130. package/openh264/codec/decoder/core/inc/decoder.h +186 -0
  131. package/openh264/codec/decoder/core/inc/decoder_context.h +590 -0
  132. package/openh264/codec/decoder/core/inc/decoder_core.h +206 -0
  133. package/openh264/codec/decoder/core/inc/error_code.h +222 -0
  134. package/openh264/codec/decoder/core/inc/error_concealment.h +68 -0
  135. package/openh264/codec/decoder/core/inc/fmo.h +114 -0
  136. package/openh264/codec/decoder/core/inc/get_intra_predictor.h +191 -0
  137. package/openh264/codec/decoder/core/inc/manage_dec_ref.h +62 -0
  138. package/openh264/codec/decoder/core/inc/mb_cache.h +80 -0
  139. package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +66 -0
  140. package/openh264/codec/decoder/core/inc/mv_pred.h +195 -0
  141. package/openh264/codec/decoder/core/inc/nal_prefix.h +56 -0
  142. package/openh264/codec/decoder/core/inc/nalu.h +79 -0
  143. package/openh264/codec/decoder/core/inc/parameter_sets.h +217 -0
  144. package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +89 -0
  145. package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +137 -0
  146. package/openh264/codec/decoder/core/inc/pic_queue.h +62 -0
  147. package/openh264/codec/decoder/core/inc/picture.h +112 -0
  148. package/openh264/codec/decoder/core/inc/rec_mb.h +104 -0
  149. package/openh264/codec/decoder/core/inc/slice.h +208 -0
  150. package/openh264/codec/decoder/core/inc/vlc_decoder.h +177 -0
  151. package/openh264/codec/decoder/core/inc/wels_common_basis.h +317 -0
  152. package/openh264/codec/decoder/core/inc/wels_const.h +65 -0
  153. package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +170 -0
  154. package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +296 -0
  155. package/openh264/codec/decoder/core/mips/dct_mmi.c +786 -0
  156. package/openh264/codec/decoder/core/x86/dct.asm +72 -0
  157. package/openh264/codec/decoder/core/x86/intra_pred.asm +1456 -0
  158. package/openh264/codec/decoder/meson.build +69 -0
  159. package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +170 -0
  160. package/openh264/codec/decoder/targets.mk +115 -0
  161. package/openh264/codec/encoder/core/arm/intra_pred_neon.S +589 -0
  162. package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +735 -0
  163. package/openh264/codec/encoder/core/arm/memory_neon.S +62 -0
  164. package/openh264/codec/encoder/core/arm/pixel_neon.S +882 -0
  165. package/openh264/codec/encoder/core/arm/reconstruct_neon.S +903 -0
  166. package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +366 -0
  167. package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +505 -0
  168. package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +611 -0
  169. package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +63 -0
  170. package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +621 -0
  171. package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +717 -0
  172. package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +350 -0
  173. package/openh264/codec/encoder/core/inc/as264_common.h +138 -0
  174. package/openh264/codec/encoder/core/inc/au_set.h +152 -0
  175. package/openh264/codec/encoder/core/inc/deblocking.h +92 -0
  176. package/openh264/codec/encoder/core/inc/decode_mb_aux.h +112 -0
  177. package/openh264/codec/encoder/core/inc/dq_map.h +58 -0
  178. package/openh264/codec/encoder/core/inc/encode_mb_aux.h +199 -0
  179. package/openh264/codec/encoder/core/inc/encoder.h +148 -0
  180. package/openh264/codec/encoder/core/inc/encoder_context.h +240 -0
  181. package/openh264/codec/encoder/core/inc/extern.h +124 -0
  182. package/openh264/codec/encoder/core/inc/get_intra_predictor.h +186 -0
  183. package/openh264/codec/encoder/core/inc/mb_cache.h +141 -0
  184. package/openh264/codec/encoder/core/inc/md.h +181 -0
  185. package/openh264/codec/encoder/core/inc/mt_defs.h +91 -0
  186. package/openh264/codec/encoder/core/inc/mv_pred.h +191 -0
  187. package/openh264/codec/encoder/core/inc/nal_encap.h +143 -0
  188. package/openh264/codec/encoder/core/inc/param_svc.h +576 -0
  189. package/openh264/codec/encoder/core/inc/parameter_sets.h +181 -0
  190. package/openh264/codec/encoder/core/inc/paraset_strategy.h +310 -0
  191. package/openh264/codec/encoder/core/inc/picture.h +137 -0
  192. package/openh264/codec/encoder/core/inc/picture_handle.h +66 -0
  193. package/openh264/codec/encoder/core/inc/rc.h +284 -0
  194. package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +148 -0
  195. package/openh264/codec/encoder/core/inc/sample.h +154 -0
  196. package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +127 -0
  197. package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +92 -0
  198. package/openh264/codec/encoder/core/inc/slice.h +212 -0
  199. package/openh264/codec/encoder/core/inc/slice_multi_threading.h +97 -0
  200. package/openh264/codec/encoder/core/inc/stat.h +102 -0
  201. package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +102 -0
  202. package/openh264/codec/encoder/core/inc/svc_enc_frame.h +136 -0
  203. package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +123 -0
  204. package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +82 -0
  205. package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +212 -0
  206. package/openh264/codec/encoder/core/inc/svc_encode_mb.h +63 -0
  207. package/openh264/codec/encoder/core/inc/svc_encode_slice.h +184 -0
  208. package/openh264/codec/encoder/core/inc/svc_mode_decision.h +94 -0
  209. package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +369 -0
  210. package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +70 -0
  211. package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +67 -0
  212. package/openh264/codec/encoder/core/inc/vlc_encoder.h +92 -0
  213. package/openh264/codec/encoder/core/inc/wels_common_basis.h +160 -0
  214. package/openh264/codec/encoder/core/inc/wels_const.h +174 -0
  215. package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +300 -0
  216. package/openh264/codec/encoder/core/inc/wels_preprocess.h +251 -0
  217. package/openh264/codec/encoder/core/inc/wels_task_base.h +79 -0
  218. package/openh264/codec/encoder/core/inc/wels_task_encoder.h +142 -0
  219. package/openh264/codec/encoder/core/inc/wels_task_management.h +135 -0
  220. package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +58 -0
  221. package/openh264/codec/encoder/core/loongarch/dct_lasx.c +452 -0
  222. package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +166 -0
  223. package/openh264/codec/encoder/core/loongarch/quant_lsx.c +153 -0
  224. package/openh264/codec/encoder/core/loongarch/sample_lasx.c +87 -0
  225. package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +104 -0
  226. package/openh264/codec/encoder/core/mips/dct_mmi.c +529 -0
  227. package/openh264/codec/encoder/core/mips/quant_mmi.c +553 -0
  228. package/openh264/codec/encoder/core/mips/score_mmi.c +324 -0
  229. package/openh264/codec/encoder/core/x86/coeff.asm +695 -0
  230. package/openh264/codec/encoder/core/x86/dct.asm +108 -0
  231. package/openh264/codec/encoder/core/x86/intra_pred.asm +1129 -0
  232. package/openh264/codec/encoder/core/x86/matrix_transpose.asm +395 -0
  233. package/openh264/codec/encoder/core/x86/memzero.asm +132 -0
  234. package/openh264/codec/encoder/core/x86/quant.asm +507 -0
  235. package/openh264/codec/encoder/core/x86/sample_sc.asm +1829 -0
  236. package/openh264/codec/encoder/core/x86/score.asm +363 -0
  237. package/openh264/codec/encoder/meson.build +98 -0
  238. package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +129 -0
  239. package/openh264/codec/encoder/targets.mk +146 -0
  240. package/openh264/codec/meson.build +9 -0
  241. package/openh264/codec/processing/interface/IWelsVP.h +310 -0
  242. package/openh264/codec/processing/meson.build +71 -0
  243. package/openh264/codec/processing/targets.mk +117 -0
  244. package/openh264/docs/doxygen/Doxyfile +1865 -0
  245. package/openh264/docs/doxygen/Home.rest +25 -0
  246. package/openh264/docs/doxygen/ISVCDecoder.rest +19 -0
  247. package/openh264/docs/doxygen/ISVCEncoder.rest +16 -0
  248. package/openh264/docs/doxygen/UsageExampleForDecoder.rest +10 -0
  249. package/openh264/docs/doxygen/UsageExampleForEncoder.rest +15 -0
  250. package/openh264/docs/doxygen2rst.py +619 -0
  251. package/openh264/gmpopenh264.info +4 -0
  252. package/openh264/gradlew +172 -0
  253. package/openh264/meson.build +218 -0
  254. package/openh264/meson_options.txt +1 -0
  255. package/openh264/module/RefCounted.h +141 -0
  256. package/openh264/module/gmp-openh264.cpp +1196 -0
  257. package/openh264/module/targets.mk +14 -0
  258. package/openh264/module/task_utils.h +38 -0
  259. package/openh264/module/task_utils.py +207 -0
  260. package/openh264/module/task_utils_generated.h +2087 -0
  261. package/openh264/openh264.def +7 -0
  262. package/openh264/openh264.pc.in +10 -0
  263. package/openh264/openh264.rc +61 -0
  264. package/openh264/openh264.rc.template +61 -0
  265. package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
  266. package/openh264/res/BA1_FT_C.264 +0 -0
  267. package/openh264/res/BA1_Sony_D.jsv +0 -0
  268. package/openh264/res/BAMQ1_JVC_C.264 +0 -0
  269. package/openh264/res/BAMQ2_JVC_C.264 +0 -0
  270. package/openh264/res/BANM_MW_D.264 +0 -0
  271. package/openh264/res/BASQP1_Sony_C.jsv +0 -0
  272. package/openh264/res/BA_MW_D.264 +0 -0
  273. package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
  274. package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
  275. package/openh264/res/CI1_FT_B.264 +0 -0
  276. package/openh264/res/CI_MW_D.264 +0 -0
  277. package/openh264/res/CVFC1_Sony_C.jsv +0 -0
  278. package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
  279. package/openh264/res/CiscoVT2people_160x96_6fps.yuv +1 -0
  280. package/openh264/res/CiscoVT2people_320x192_12fps.yuv +1 -0
  281. package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +3607 -0
  282. package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
  283. package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
  284. package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
  285. package/openh264/res/Error_I_P.264 +0 -0
  286. package/openh264/res/LS_SVA_D.264 +0 -0
  287. package/openh264/res/MIDR_MW_D.264 +0 -0
  288. package/openh264/res/MPS_MW_A.264 +0 -0
  289. package/openh264/res/MR1_BT_A.h264 +0 -0
  290. package/openh264/res/MR1_MW_A.264 +0 -0
  291. package/openh264/res/MR2_MW_A.264 +0 -0
  292. package/openh264/res/MR2_TANDBERG_E.264 +0 -0
  293. package/openh264/res/NL1_Sony_D.jsv +0 -0
  294. package/openh264/res/NLMQ1_JVC_C.264 +0 -0
  295. package/openh264/res/NLMQ2_JVC_C.264 +0 -0
  296. package/openh264/res/NRF_MW_E.264 +0 -0
  297. package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
  298. package/openh264/res/SVA_BA1_B.264 +0 -0
  299. package/openh264/res/SVA_BA2_D.264 +0 -0
  300. package/openh264/res/SVA_Base_B.264 +0 -0
  301. package/openh264/res/SVA_CL1_E.264 +0 -0
  302. package/openh264/res/SVA_FM1_E.264 +0 -0
  303. package/openh264/res/SVA_NL1_B.264 +0 -0
  304. package/openh264/res/SVA_NL2_E.264 +0 -0
  305. package/openh264/res/SarVui.264 +0 -0
  306. package/openh264/res/Static.264 +0 -0
  307. package/openh264/res/Static_152_100.yuv +1 -0
  308. package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
  309. package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
  310. package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
  311. package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
  312. package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
  313. package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
  314. package/openh264/res/Zhling_1280x720.264 +0 -0
  315. package/openh264/res/jm_1080p_allslice.264 +0 -0
  316. package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
  317. package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
  318. package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
  319. package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
  320. package/openh264/res/test_qcif_cabac.264 +0 -0
  321. package/openh264/res/test_scalinglist_jm.264 +0 -0
  322. package/openh264/res/test_vd_1d.264 +0 -0
  323. package/openh264/res/test_vd_rc.264 +0 -0
  324. package/openh264/run_Test.sh +91 -0
  325. package/openh264/settings.gradle +4 -0
  326. package/openh264/subprojects/gtest.wrap +10 -0
  327. package/openh264/testbin/AutoBuild_Windows_VS2008.bat +59 -0
  328. package/openh264/testbin/CmdLineExample.sh +7 -0
  329. package/openh264/testbin/CmdLineReadMe +22 -0
  330. package/openh264/testbin/layer2.cfg +37 -0
  331. package/openh264/testbin/layer2_arbitrary_res.cfg +37 -0
  332. package/openh264/testbin/layer2_vd.cfg +38 -0
  333. package/openh264/testbin/layer2_vd_rc.cfg +38 -0
  334. package/openh264/testbin/welsenc.cfg +71 -0
  335. package/openh264/testbin/welsenc_arbitrary_res.cfg +70 -0
  336. package/openh264/testbin/welsenc_ios.cfg +71 -0
  337. package/openh264/testbin/welsenc_vd_1d.cfg +70 -0
  338. package/openh264/testbin/welsenc_vd_rc.cfg +69 -0
  339. package/openh264/ut.def +2 -0
  340. package/package.json +1 -1
@@ -0,0 +1,206 @@
1
+ /*!
2
+ * \copy
3
+ * Copyright (c) 2008-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
+ * decoder_core.h
33
+ *
34
+ * Abstract
35
+ * Encapsulative core interfaces
36
+ *
37
+ * History
38
+ * 07/10/2008 Created
39
+ *
40
+ *****************************************************************************/
41
+ #ifndef WELS_DECODER_CORE_H__
42
+ #define WELS_DECODER_CORE_H__
43
+
44
+ #include "typedefs.h"
45
+ #include "wels_common_basis.h"
46
+ #include "decoder_context.h"
47
+
48
+ #include "codec_def.h"
49
+
50
+ namespace WelsDec {
51
+ /*
52
+ * InitBsBuffer
53
+ * Memory allocation for Bitstream Buffer
54
+ * return:
55
+ * 0 - success; otherwise returned error_no defined in error_no.h.
56
+ */
57
+ int32_t InitBsBuffer (PWelsDecoderContext pCtx);
58
+
59
+ /*
60
+ * ExpandBsBuffer
61
+ * Expand current BS buffer and copy its content
62
+ * new buffer size will consider input size as a reference
63
+ * return:
64
+ * 0 - success; otherwise returned error_no defined in error_no.h.
65
+ */
66
+ int32_t ExpandBsBuffer (PWelsDecoderContext pCtx, const int32_t kiSrcLen);
67
+
68
+ /*
69
+ * ExpandBsLenBuffer
70
+ * Expand current BS length buffer to double size or maximum, due to max slice number exceeding
71
+ * Parameter:
72
+ * kiCurrLen: current value of total nal number (including non-VCL nal)
73
+ * return:
74
+ * 0 - success; otherwise returned error_no defined in error_no.h.
75
+ */
76
+ int32_t ExpandBsLenBuffer (PWelsDecoderContext pCtx, const int32_t kiCurrLen);
77
+
78
+ /*
79
+ * CheckBsBuffer
80
+ * Check if current buffer size is enough
81
+ */
82
+ int32_t CheckBsBuffer (PWelsDecoderContext pCtx, const int32_t kiSrcLen);
83
+
84
+ /*
85
+ * WelsInitStaticMemory
86
+ * Memory request for introduced data at decoder start
87
+ * Especially for:
88
+ * rbsp_au_buffer, cur_dq_layer_ptr and ref_dq_layer_ptr in MB info cache.
89
+ * return:
90
+ * 0 - success; otherwise returned error_no defined in error_no.h.
91
+ */
92
+ int32_t WelsInitStaticMemory (PWelsDecoderContext pCtx);
93
+
94
+ /*
95
+ * WelsFreeStaticMemory
96
+ * Free memory introduced in WelsInitStaticMemory at destruction of decoder.
97
+ *
98
+ */
99
+ void WelsFreeStaticMemory (PWelsDecoderContext pCtx);
100
+
101
+ /*!
102
+ * \brief request memory when maximal picture width and height are available
103
+ */
104
+ int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWidth, const int32_t kiMaxHeight);
105
+
106
+ /*!
107
+ * \brief free dq layer context memory related
108
+ */
109
+ void UninitialDqLayersContext (PWelsDecoderContext pCtx);
110
+
111
+ /*
112
+ * DecodeNalHeaderExt
113
+ * Trigger condition: NAL_UNIT_TYPE = NAL_UNIT_PREFIX or NAL_UNIT_CODED_SLICE_EXT
114
+ * Parameter:
115
+ * pNal: target NALUnit ptr
116
+ * pSrc: NAL Unit bitstream
117
+ */
118
+ void DecodeNalHeaderExt (PNalUnit pNal, uint8_t* pSrc);
119
+
120
+ /*
121
+ * ParseSliceHeaderSyntaxs
122
+ * Parse slice header of bitstream
123
+ */
124
+ int32_t ParseSliceHeaderSyntaxs (PWelsDecoderContext pCtx, PBitStringAux pBs, const bool kbExtensionFlag);
125
+ /*
126
+ * Copy relative syntax elements of NALUnitHeaderExt, sRefPicBaseMarking and bStoreRefBasePicFlag in prefix nal unit.
127
+ * pSrc: mark as decoded prefix NAL
128
+ * pDst: succeeded VCL NAL based AVC (I/P Slice)
129
+ */
130
+ bool PrefetchNalHeaderExtSyntax (PWelsDecoderContext pCtx, PNalUnit const kpDst, PNalUnit const kpSrc);
131
+
132
+ /*
133
+ * WelsDecodeInitAccessUnitStart
134
+ * check and (re)allocate picture buffers on new sequence begin
135
+ * bit_len: size in bit length of data
136
+ * buf_len: size in byte length of data
137
+ * coded_au: mark an Access Unit decoding finished
138
+ * return:
139
+ * 0 - success; otherwise returned error_no defined in error_no.h
140
+ */
141
+ int32_t WelsDecodeInitAccessUnitStart (PWelsDecoderContext pCtx, SBufferInfo* pDstInfo);
142
+ /*
143
+ * AllocPicBuffOnNewSeqBegin
144
+ * check and (re)allocate picture buffers on new sequence begin
145
+ * return:
146
+ * 0 - success; otherwise returned error_no defined in error_no.h
147
+ */
148
+ int32_t AllocPicBuffOnNewSeqBegin (PWelsDecoderContext pCtx);
149
+
150
+ /*
151
+ * InitConstructAccessUnit
152
+ * Init before constructing an access unit for given input bitstream, maybe partial NAL Unit, one or more Units are involved to
153
+ * joint a collective access unit.
154
+ * parameter\
155
+ * SBufferInfo: Buffer info
156
+ * return:
157
+ * 0 - success; otherwise returned error_no defined in error_no.h
158
+ */
159
+ int32_t InitConstructAccessUnit (PWelsDecoderContext pCtx, SBufferInfo* pDstInfo);
160
+
161
+ /*
162
+ * ConstructAccessUnit
163
+ * construct an access unit for given input bitstream, maybe partial NAL Unit, one or more Units are involved to
164
+ * joint a collective access unit.
165
+ * parameter\
166
+ * buf: bitstream data buffer
167
+ * bit_len: size in bit length of data
168
+ * buf_len: size in byte length of data
169
+ * coded_au: mark an Access Unit decoding finished
170
+ * return:
171
+ * 0 - success; otherwise returned error_no defined in error_no.h
172
+ */
173
+ int32_t ConstructAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferInfo* pDstInfo);
174
+
175
+
176
+ /*
177
+ * DecodeCurrentAccessUnit
178
+ * Decode current access unit when current AU is completed.
179
+ */
180
+ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferInfo* pDstInfo);
181
+
182
+ /*
183
+ * Check if frame is completed and EC is required
184
+ */
185
+ bool CheckAndFinishLastPic (PWelsDecoderContext pCtx, uint8_t** pDst, SBufferInfo* pDstInfo);
186
+ /*
187
+ * Prepare current dq layer context initialization.
188
+ */
189
+ void WelsDqLayerDecodeStart (PWelsDecoderContext pCtx, PNalUnit pCurNal, PSps pSps, PPps pPps);
190
+
191
+
192
+ int32_t WelsDecodeAccessUnitStart (PWelsDecoderContext pCtx);
193
+ void WelsDecodeAccessUnitEnd (PWelsDecoderContext pCtx);
194
+ void DecodeFinishUpdate (PWelsDecoderContext pCtx);
195
+
196
+ void ForceResetCurrentAccessUnit (PAccessUnit pAu);
197
+ void ForceClearCurrentNal (PAccessUnit pAu);
198
+
199
+ bool CheckRefPicturesComplete (PWelsDecoderContext pCtx); // Check whether all ref pictures are complete
200
+
201
+ void ForceResetParaSetStatusAndAUList (PWelsDecoderContext pCtx);
202
+ } // namespace WelsDec
203
+
204
+ #endif//WELS_DECODER_CORE_H__
205
+
206
+
@@ -0,0 +1,222 @@
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 error_code.h
33
+ *
34
+ * \brief Error codes used in Wels decoder side
35
+ *
36
+ * \date 3/4/2009 Created
37
+ *
38
+ *************************************************************************************
39
+ */
40
+ #ifndef WELS_ERROR_CODE_H__
41
+ #define WELS_ERROR_CODE_H__
42
+
43
+ namespace WelsDec {
44
+
45
+ typedef enum TagWelsErr {
46
+ ERR_NONE = 0,
47
+ ERR_INVALID_PARAMETERS = 1,
48
+ ERR_MALLOC_FAILED = 2,
49
+ ERR_API_FAILED = 3,
50
+
51
+ ERR_BOUND = 31
52
+ } EWelsErr;
53
+
54
+ /*
55
+ * Specified error format:
56
+ * ERR_NO = (ERR_LEVEL_FROM (HIGH WORD) << 16) | (ERR_INFO_FROM (LOW WORD))
57
+ *
58
+ */
59
+ #define GENERATE_ERROR_NO(iErrLevel, iErrInfo) ((iErrLevel << 16) | (iErrInfo & 0xFFFF))
60
+ #define ERR_INVALID_INTRA4X4_MODE -1
61
+
62
+ /* ERR_LEVEL */
63
+ //-----------------------------------------------------------------------------------------------------------
64
+ enum {
65
+ ERR_LEVEL_ACCESS_UNIT = 1,
66
+ ERR_LEVEL_NAL_UNIT_HEADER,
67
+ ERR_LEVEL_PREFIX_NAL,
68
+ ERR_LEVEL_PARAM_SETS,
69
+ ERR_LEVEL_SLICE_HEADER,
70
+ ERR_LEVEL_SLICE_DATA,
71
+ ERR_LEVEL_MB_DATA
72
+ };
73
+
74
+ //-----------------------------------------------------------------------------------------------------------
75
+
76
+ /* More detailed error information, maximal value is 65535 */
77
+ //-----------------------------------------------------------------------------------------------------------
78
+ #define ERR_INFO_COMMON_BASE 1
79
+ #define ERR_INFO_SYNTAX_BASE 1001
80
+ #define ERR_INFO_LOGIC_BASE 10001
81
+ enum {
82
+ /* Error from common system level: 1-1000 */
83
+ ERR_INFO_OUT_OF_MEMORY = ERR_INFO_COMMON_BASE,
84
+ ERR_INFO_INVALID_ACCESS,
85
+ ERR_INFO_INVALID_PTR,
86
+ ERR_INFO_INVALID_PARAM,
87
+ ERR_INFO_FILE_NO_FOUND,
88
+ ERR_INFO_PATH_NO_FOUND,
89
+ ERR_INFO_ACCESS_DENIED,
90
+ ERR_INFO_NOT_READY,
91
+ ERR_INFO_WRITE_FAULT,
92
+ ERR_INFO_READ_FAULT,
93
+ ERR_INFO_READ_OVERFLOW,
94
+ ERR_INFO_READ_LEADING_ZERO,
95
+ ERR_INFO_UNINIT,
96
+ /* Error from H.264 syntax elements parser: 1001-10000 */
97
+ ERR_INFO_NO_PREFIX_CODE = ERR_INFO_SYNTAX_BASE, // No start prefix code indication
98
+ ERR_INFO_NO_PARAM_SETS, // No SPS and/ PPS before sequence header
99
+ ERR_INFO_PARAM_SETS_NOT_INTEGRATED, // Parameters sets (sps/pps) are not integrated at all before to decode VCL nal
100
+ ERR_INFO_SPS_ID_OVERFLOW,
101
+ ERR_INFO_PPS_ID_OVERFLOW,
102
+ ERR_INFO_INVALID_PROFILE_IDC,
103
+ ERR_INFO_UNMATCHED_LEVEL_IDC,
104
+ ERR_INFO_INVALID_POC_TYPE,
105
+ ERR_INFO_INVALID_MB_SIZE_INFO,
106
+ ERR_INFO_REF_COUNT_OVERFLOW,
107
+ ERR_INFO_CROPPING_NO_SUPPORTED,
108
+ ERR_INFO_INVALID_CROPPING_DATA,
109
+ ERR_INFO_UNSUPPORTED_VUI_HRD,
110
+ ERR_INFO_INVALID_SLICEGROUP,
111
+ ERR_INFO_INVALID_SLICEGROUP_MAP_TYPE,
112
+ ERR_INFO_INVALID_FRAME_NUM,
113
+ ERR_INFO_INVALID_IDR_PIC_ID,
114
+ ERR_INFO_INVALID_REDUNDANT_PIC_CNT,
115
+ ERR_INFO_INVALID_MAX_NUM_REF_FRAMES,
116
+ ERR_INFO_INVALID_MAX_MB_SIZE,
117
+ ERR_INFO_INVALID_FIRST_MB_IN_SLICE,
118
+ ERR_INFO_INVALID_NUM_REF_IDX_L0_ACTIVE_MINUS1,
119
+ ERR_INFO_INVALID_NUM_REF_IDX_L1_ACTIVE_MINUS1,
120
+ ERR_INFO_INVALID_SLICE_ALPHA_C0_OFFSET_DIV2,
121
+ ERR_INFO_INVALID_SLICE_BETA_OFFSET_DIV2,
122
+ ERR_INFO_FMO_INIT_FAIL,
123
+ ERR_INFO_SLICE_TYPE_OVERFLOW,
124
+ ERR_INFO_INVALID_CABAC_INIT_IDC,
125
+ ERR_INFO_INVALID_QP,
126
+ ERR_INFO_INVALID_PIC_INIT_QS,
127
+ ERR_INFO_INVALID_CHROMA_QP_INDEX_OFFSET,
128
+ ERR_INFO_INVALID_PIC_INIT_QP,
129
+ ERR_INFO_INVALID_LOG2_MAX_FRAME_NUM_MINUS4,
130
+ ERR_INFO_INVALID_LOG2_MAX_PIC_ORDER_CNT_LSB_MINUS4,
131
+ ERR_INFO_INVALID_NUM_REF_FRAME_IN_PIC_ORDER_CNT_CYCLE,
132
+ ERR_INFO_INVALID_DBLOCKING_IDC,
133
+ ERR_INFO_INVALID_MB_TYPE,
134
+ ERR_INFO_INVALID_MB_SKIP_RUN,
135
+ ERR_INFO_INVALID_SPS_ID,
136
+ ERR_INFO_INVALID_PPS_ID,
137
+ ERR_INFO_INVALID_SUB_MB_TYPE,
138
+ ERR_INFO_UNAVAILABLE_TOP_BLOCK_FOR_INTRA,
139
+ ERR_INFO_UNAVAILABLE_LEFT_BLOCK_FOR_INTRA,
140
+ ERR_INFO_INVALID_REF_INDEX,
141
+ ERR_INFO_INVALID_CBP,
142
+ ERR_INFO_DQUANT_OUT_OF_RANGE,
143
+ ERR_INFO_CAVLC_INVALID_PREFIX,
144
+ ERR_INFO_CAVLC_INVALID_LEVEL,
145
+ ERR_INFO_CAVLC_INVALID_TOTAL_COEFF_OR_TRAILING_ONES,
146
+ ERR_INFO_CAVLC_INVALID_ZERO_LEFT,
147
+ ERR_INFO_CAVLC_INVALID_RUN_BEFORE,
148
+ ERR_INFO_MV_OUT_OF_RANGE,
149
+
150
+ ERR_INFO_INVALID_I4x4_PRED_MODE,
151
+ ERR_INFO_INVALID_I16x16_PRED_MODE,
152
+ ERR_INFO_INVALID_I_CHROMA_PRED_MODE,
153
+
154
+ ERR_INFO_INVALID_LUMA_LOG2_WEIGHT_DENOM,
155
+ ERR_INFO_INVALID_CHROMA_LOG2_WEIGHT_DENOM,
156
+ ERR_INFO_INVALID_LUMA_WEIGHT,
157
+ ERR_INFO_INVALID_CHROMA_WEIGHT,
158
+ ERR_INFO_INVALID_LUMA_OFFSET,
159
+ ERR_INFO_INVALID_CHROMA_OFFSET,
160
+
161
+ ERR_INFO_UNSUPPORTED_NON_BASELINE,
162
+ ERR_INFO_UNSUPPORTED_FMOTYPE,
163
+ ERR_INFO_UNSUPPORTED_MBAFF,
164
+ ERR_INFO_UNSUPPORTED_ILP,
165
+ ERR_INFO_UNSUPPORTED_CABAC_EL,
166
+ ERR_INFO_UNSUPPORTED_SPSI,
167
+ ERR_INFO_UNSUPPORTED_MGS,
168
+ ERR_INFO_UNSUPPORTED_BIPRED,
169
+ ERR_INFO_UNSUPPORTED_WP,
170
+ ERR_INFO_UNSUPPORTED_SLICESKIP,
171
+
172
+ ERR_INFO_FRAMES_LOST,
173
+ ERR_INFO_DEPENDENCY_SPATIAL_LAYER_LOST,
174
+ ERR_INFO_DEPENDENCY_QUALIT_LAYER_LOST,
175
+ ERR_INFO_REFERENCE_PIC_LOST,
176
+ ERR_INFO_INVALID_REORDERING,
177
+ ERR_INFO_INVALID_MARKING,
178
+
179
+ ERR_INFO_FMO_NOT_SUPPORTED_IN_BASE_LAYER,
180
+ ERR_INFO_INVALID_ESS,
181
+ ERR_INFO_INVALID_SLICE_TYPE,
182
+ ERR_INFO_INVALID_REF_MARKING,
183
+ ERR_INFO_INVALID_REF_REORDERING,
184
+
185
+ /* Error from corresponding logic, 10001-65535 */
186
+ ERR_INFO_NO_IDR_PIC = ERR_INFO_LOGIC_BASE, // NO IDR picture available before sequence header
187
+ ERR_INFO_EC_NO_NEIGHBOUR_MBS,
188
+ ERR_INFO_EC_UNEXPECTED_MB_TYPE,
189
+ ERR_INFO_EC_NO_ENOUGH_NEIGHBOUR_MBS,
190
+ ERR_INFO_DUPLICATE_FRAME_NUM,
191
+ //for LTR
192
+ ERR_INFO_INVALID_MMCO_NUM,
193
+ ERR_INFO_INVALID_MMCO_OPCODE_BASE,
194
+ ERR_INFO_INVALID_MMCO_SHORT2UNUSED,
195
+ EER_INFO_INVALID_MMCO_LONG2UNUSED,
196
+ ERR_INFO_INVALID_MMCO_SHOART2LONG,
197
+ ERR_INFO_INVALID_MMCO_REF_NUM_OVERFLOW,
198
+ ERR_INFO_INVALID_MMCO_REF_NUM_NOT_ENOUGH,
199
+ ERR_INFO_INVALID_MMCO_LONG_TERM_IDX_EXCEED_MAX,
200
+ //for CABAC
201
+ ERR_CABAC_NO_BS_TO_READ,
202
+ ERR_CABAC_UNEXPECTED_VALUE,
203
+ //for scaling list
204
+ ERR_SCALING_LIST_DELTA_SCALE,
205
+ //logic error related to multi-layer
206
+ ERR_INFO_WIDTH_MISMATCH,
207
+ //reconstruction error
208
+ ERR_INFO_MB_RECON_FAIL,
209
+ ERR_INFO_MB_NUM_EXCEED_FAIL,
210
+ ERR_INFO_BS_INCOMPLETE,
211
+ ERR_INFO_MB_NUM_INADEQUATE,
212
+ //parse only error
213
+ ERR_INFO_PARSEONLY_PENDING,
214
+ ERR_INFO_PARSEONLY_ERROR,
215
+ };
216
+ //-----------------------------------------------------------------------------------------------------------
217
+
218
+ } // namespace WelsDec
219
+
220
+ #endif//WELS_ERROR_CODE_H__
221
+
222
+
@@ -0,0 +1,68 @@
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
+ * \file error_concealment.h
32
+ *
33
+ * \brief Interfaces introduced for error concealment
34
+ *
35
+ * \date 04/14/2014 Created
36
+ *
37
+ *************************************************************************************
38
+ */
39
+ #ifndef WELS_ERROR_CONCEALMENT_H__
40
+ #define WELS_ERROR_CONCEALMENT_H__
41
+ #include "typedefs.h"
42
+ #include "rec_mb.h"
43
+ #include "decoder_context.h"
44
+
45
+ namespace WelsDec {
46
+ //Initialize error concealment
47
+ void InitErrorCon (PWelsDecoderContext pCtx);
48
+ //Do error concealment using frame copy method
49
+ void DoErrorConFrameCopy (PWelsDecoderContext pCtx);
50
+ //Do error concealment using slice copy method
51
+ void DoErrorConSliceCopy (PWelsDecoderContext pCtx);
52
+ //Do error concealment using slice MV copy method
53
+ void DoMbECMvCopy (PWelsDecoderContext pCtx, PPicture pDec, PPicture pRef, int32_t iMbXy, int32_t iMbX, int32_t iMbY,
54
+ sMCRefMember* pMCRefMem, int32_t iCurrPoc);
55
+ void GetAvilInfoFromCorrectMb (PWelsDecoderContext pCtx);
56
+ void DoErrorConSliceMVCopy (PWelsDecoderContext pCtx);
57
+ //Mark erroneous frame as Ref Pic into DPB
58
+ int32_t MarkECFrameAsRef (PWelsDecoderContext pCtx);
59
+ //Judge if EC is needed to current frame
60
+ bool NeedErrorCon (PWelsDecoderContext pCtx);
61
+ // ImplementErrorConceal
62
+ // Do actual error concealment
63
+ void ImplementErrorCon (PWelsDecoderContext pCtx);
64
+
65
+ } // namespace WelsDec
66
+
67
+ #endif//WELS_ERROR_CONCEALMENT_H__
68
+
@@ -0,0 +1,114 @@
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 fmo.h
33
+ *
34
+ * \brief Flexible Macroblock Ordering implementation
35
+ *
36
+ * \date 2/4/2009 Created
37
+ *
38
+ *************************************************************************************
39
+ */
40
+ #ifndef WELS_FLEXIBLE_MACROBLOCK_ORDERING_H__
41
+ #define WELS_FLEXIBLE_MACROBLOCK_ORDERING_H__
42
+
43
+ #include "typedefs.h"
44
+ #include "wels_const.h"
45
+ #include "parameter_sets.h"
46
+ #include "memory_align.h"
47
+
48
+ namespace WelsDec {
49
+
50
+ #ifndef MB_XY_T
51
+ #define MB_XY_T int32_t
52
+ #endif//MB_XY_T
53
+
54
+ /*!
55
+ * \brief Wels Flexible Macroblock Ordering (FMO)
56
+ */
57
+ typedef struct TagFmo {
58
+ uint8_t* pMbAllocMap;
59
+ int32_t iCountMbNum;
60
+ int32_t iSliceGroupCount;
61
+ int32_t iSliceGroupType;
62
+ bool bActiveFlag;
63
+ uint8_t uiReserved[3]; // reserved padding bytes
64
+ } SFmo, *PFmo;
65
+
66
+
67
+ /*!
68
+ * \brief Initialize Wels Flexible Macroblock Ordering (FMO)
69
+ *
70
+ * \param pFmo Wels fmo to be initialized
71
+ * \param pPps PPps
72
+ * \param kiMbWidth mb width
73
+ * \param kiMbHeight mb height
74
+ *
75
+ * \return 0 - successful; none 0 - failed;
76
+ */
77
+ int32_t InitFmo (PFmo pFmo, PPps pPps, const int32_t kiMbWidth, const int32_t kiMbHeight, CMemoryAlign* pMa);
78
+
79
+ /*!
80
+ * \brief Uninitialize Wels Flexible Macroblock Ordering (FMO) list
81
+ *
82
+ * \param pFmo Wels base fmo ptr to be uninitialized
83
+ * \param kiCnt count number of PPS per list
84
+ * \param kiAvail count available number of PPS in list
85
+ *
86
+ * \return NONE
87
+ */
88
+ void UninitFmoList (PFmo pFmo, const int32_t kiCnt, const int32_t kiAvail, CMemoryAlign* pMa);
89
+
90
+ /*!
91
+ * \brief update/insert FMO parameter unit
92
+ *
93
+ * \param pFmo FMO context
94
+ * \param pSps PSps
95
+ * \param pPps PPps
96
+ * \param pActiveFmoNum int32_t* [in/out]
97
+ *
98
+ * \return true - update/insert successfully; false - failed;
99
+ */
100
+ int32_t FmoParamUpdate (PFmo pFmo, PSps pSps, PPps pPps, int32_t* pActiveFmoNum, CMemoryAlign* pMa);
101
+
102
+ /*!
103
+ * \brief Get successive mb to be processed with given current mb_xy
104
+ *
105
+ * \param pFmo Wels fmo context
106
+ * \param iMbXy current mb_xy
107
+ *
108
+ * \return iNextMb - successful; -1 - failed;
109
+ */
110
+ MB_XY_T FmoNextMb (PFmo pFmo, const MB_XY_T kiMbXy);
111
+
112
+ } // namespace WelsDec
113
+
114
+ #endif//WELS_FLEXIBLE_MACROBLOCK_ORDERING_H__