@scrypted/libav 1.0.180 → 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 +3 -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
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,91 @@
1
+ #!/bin/bash
2
+ #**********************************************************************************
3
+ # This script is for test on travis.Currently there are 5 jobs running on
4
+ # travis in parallel status which are listed as below:
5
+ # 1.Unit test with gcc compiler;
6
+ # 2.Unit test with clang compiler;
7
+ # 3.Binary comparison test for test bit stream A;
8
+ # 4.Binary comparison test for test bit stream B;
9
+ # 5.Binary comparison test for test bit stream C.
10
+ # For binary comparison test,before running all test cases, it need to prepare
11
+ # the test space.On travis,as those parallel jobs are running on different VMs,
12
+ # so each job need to prepare for its test space for itself.
13
+ #
14
+ # --usage:
15
+ # ./runTest.sh UnitTest
16
+ # or ./runTest.sh BinaryCompare ${TestBitStreamName}
17
+ #
18
+ # date: 10/06/2014 Created
19
+ #**********************************************************************************
20
+ #usage: runInputParamCheck ${TestType} ${TestBitStream}
21
+ runInputParamCheck()
22
+ {
23
+ local ParameterFlag=""
24
+ if [ $# -eq 1 -a "$1" = "UnitTest" ]
25
+ then
26
+ let "ParameterFlag=0"
27
+ elif [ $# -eq 2 -a "$1" = "BinaryCompare" ]
28
+ then
29
+ let "ParameterFlag=0"
30
+ else
31
+ let "ParameterFlag=1"
32
+ fi
33
+ return ${ParameterFlag}
34
+ }
35
+ #usage: runUnitTest
36
+ runUnitTest()
37
+ {
38
+ CFLAGS=-Werror make -B ENABLE64BIT=Yes BUILDTYPE=Release all plugin test
39
+ CFLAGS=-Werror make -B ENABLE64BIT=Yes BUILDTYPE=Debug all plugin test
40
+ CFLAGS=-Werror make -B ENABLE64BIT=No BUILDTYPE=Release all plugin test
41
+ CFLAGS=-Werror make -B ENABLE64BIT=No BUILDTYPE=Debug all plugin test
42
+ return $?
43
+ }
44
+ #usage: runBinaryTest $TestBitStream
45
+ runBinaryTest()
46
+ {
47
+ if [ ! $# -eq 2 ]
48
+ then
49
+ echo "usage: runPrepareAndBinaryTest \$TestBitStream"
50
+ exit 1
51
+ fi
52
+ local TestBitStream=$1
53
+ local TestType=$2
54
+ local WorkingDir=`pwd`
55
+ local BinaryTestDir="test/encoder_binary_comparison"
56
+ cd ${WorkingDir}
57
+ echo ""
58
+ echo " binary compare test, test bit stream is ${TestBitStream}"
59
+ echo ""
60
+ ${BinaryTestDir}/run_OneBitStream.sh ${TestBitStream} ${TestType}
61
+ return $?
62
+ }
63
+ #usage:runMain ${TestType} ${TestBitStream}
64
+ runMain()
65
+ {
66
+ local TestType=$1
67
+ local TestBitStream=$2
68
+ runInputParamCheck ${TestType} ${TestBitStream}
69
+ if [ ! $? -eq 0 ]
70
+ then
71
+ echo "usage: ./runTest.sh UnitTest \${PrepareFlag}"
72
+ echo " or ./runTest.sh BinaryCompare \${TestBitStreamName} \${PrepareFlag} "
73
+ exit 1
74
+ fi
75
+ if [ "${TestType}" = "UnitTest" ]
76
+ then
77
+ set -e
78
+ runUnitTest
79
+ return $?
80
+ fi
81
+ if [ "${TestType}" = "BinaryCompare" ]
82
+ then
83
+ set -e
84
+ runBinaryTest ${TestBitStream} TravisTest
85
+ return $?
86
+ fi
87
+ }
88
+ TestType=$1
89
+ TestBitStream=$2
90
+ runMain ${TestType} ${TestBitStream}
91
+
@@ -0,0 +1,4 @@
1
+ include ':test-dec', ':test-enc', ':unittest'
2
+ project(':test-dec').projectDir = new File('codec/build/android/dec')
3
+ project(':test-enc').projectDir = new File('codec/build/android/enc')
4
+ project(':unittest').projectDir = new File('test/build/android')
@@ -0,0 +1,10 @@
1
+ [wrap-file]
2
+ directory = googletest-release-1.8.0
3
+
4
+ source_url = https://github.com/google/googletest/archive/release-1.8.0.zip
5
+ source_filename = gtest-1.8.0.zip
6
+ source_hash = f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf
7
+
8
+ patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.8.0/4/get_zip
9
+ patch_filename = gtest-1.8.0-4-wrap.zip
10
+ patch_hash = 0b90fe055acbdb002a37dfb035184b306008b763931158497ef5dbaa8c7925af
@@ -0,0 +1,59 @@
1
+ echo off
2
+ SET usage="this file must located in ..\testbin\ based on our code structure "
3
+ echo %usage%
4
+
5
+ echo "Auto build of openH264 by VS2008"
6
+
7
+ SET VCBUILDEXE="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe"
8
+
9
+ SET CurDir=%~dp0
10
+ SET EncoderProjectDir="..\codec\build\win32\enc\"
11
+ SET DecoderProjectDir="..\codec\build\win32\dec\"
12
+ SET VPProjectDir="..\codec\processing\build\win32\"
13
+
14
+ SET CodecBinDir="..\codec\build\win32\bin\"
15
+ SET VPBinDir="..\processing\bin\"
16
+
17
+ SET EncoderBuildFlag=1
18
+ SET DecoderBuildFlag=1
19
+ SET VPBuildFlag=1
20
+ SET MakefileLogFile="${CurDir}\CodecVPBuild.log"
21
+
22
+ rem ************************************************
23
+ rem call VP build
24
+ echo "Welsvp Building....."
25
+ cd %VPProjectDir%
26
+ rem vcclean
27
+ %VCBUILDEXE% WelsVP.vcproj
28
+
29
+
30
+ rem ************************************************
31
+ rem call WelsEncoder build
32
+ echo "WelsEncoder Building....."
33
+
34
+ cd %CurDir%
35
+ cd %EncoderProjectDir%
36
+ rem vcclean
37
+ %VCBUILDEXE% WelsEncCore.vcproj
38
+ %VCBUILDEXE% WelsEncPlus.vcproj
39
+ %VCBUILDEXE% encConsole.vcproj
40
+
41
+ rem ************************************************
42
+ rem call WelsDecoder build
43
+ echo "WelsDecoder Building....."
44
+
45
+ cd %CurDir%
46
+ cd %DecoderProjectDir%
47
+ rem vcclean
48
+ %VCBUILDEXE% WelsDecCore.vcproj
49
+ %VCBUILDEXE% WelsDecPlus.vcproj
50
+ %VCBUILDEXE% decConsole.vcproj
51
+
52
+ cd %CurDir%
53
+ echo "this is the end of auto build..."
54
+ pause
55
+
56
+ rem TBD
57
+
58
+
59
+
@@ -0,0 +1,7 @@
1
+ ../h264enc welsenc_vd_1d.cfg
2
+ ../h264enc welsenc_vd_rc.cfg
3
+ ../h264enc welsenc_arbitrary_res.cfg
4
+
5
+ ../h264dec ../res/test_vd_1d.264 test_vd_1d.yuv
6
+ ../h264dec ../res/test_vd_rc.264 test_vd_rc.yuv
7
+ ../h264dec ../res/Static.264 Static.yuv
@@ -0,0 +1,22 @@
1
+ /* Instant Runable Configurations */
2
+ //for encoder configure files
3
+ welsenc_vd_1d.cfg
4
+ welsenc_vd_rc.cfg
5
+ welsenc_arbitrary_res.cfg
6
+
7
+ //the actual generated decoder EXE files are in folder ../bin/win32/release/ with Release build
8
+ //user may copy "decConsole.exe" and "welsdec.dll" into ../bin
9
+ //Now assume the generated EXE files are in folder ../bin
10
+
11
+ Example Command Line for encoding in Windows:
12
+ ../bin/encConsole.exe welsenc_vd_1d.cfg
13
+ ../bin/encConsole.exe welsenc_vd_rc.cfg
14
+ ../bin/encConsole.exe welsenc_arbitrary_res.cfg
15
+
16
+ Example Command Line for decoding in Windows
17
+ ../bin/decConsole.exe ../res/test_vd_1d.264 test_vd_1d.yuv
18
+ ../bin/decConsole.exe ../res/test_vd_rc.264 test_vd_rc.yuv
19
+ ../bin/decConsole.exe ../res/Static.264 Static.yuv
20
+
21
+ Example shell script for Linux for encoder & decoder:
22
+ CmdLineExample.sh
@@ -0,0 +1,37 @@
1
+ # Layer Configuration File
2
+
3
+
4
+ #============================== OUTPUT ==============================
5
+ FrameWidth 320 # Output frame width
6
+ FrameHeight 192 # Output frame height
7
+ FrameRateOut 12 # Output frame rate [Hz]
8
+ ReconFile rec_layer2.yuv # Reconstructed file
9
+
10
+ #============================== CODING ==============================
11
+ ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
12
+
13
+ InitialQP 24 # Quantization parameters for base quality layer
14
+ #================================ RATE CONTROL ===============================
15
+ SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
16
+ MaxSpatialBitrate 0 # Unit: kbps, max bitrate for current layer, 0 - unspecified
17
+ #============================== MultiSlice Slice Argument ==============================
18
+ # for S/M Slice(s) mode settings
19
+ SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
20
+ SliceSize 1500
21
+ SliceNum 1 # multiple slices number specified
22
+
23
+ SlicesAssign0 960 # count number of MBs in slice #0
24
+ SlicesAssign1 0 # count number of MBs in slice #1
25
+ SlicesAssign2 0 # count number of MBs in slice #2
26
+ SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
27
+ SlicesAssign4 0 # count number of MBs in slice #4
28
+ SlicesAssign5 0 # count number of MBs in slice #5
29
+ SlicesAssign6 0 # count number of MBs in slice #6
30
+ SlicesAssign7 0 # count number of MBs in slice #7
31
+
32
+ ### DESIGN OF SLICE MODE ####
33
+ # 0 SM_SINGLE_SLICE | SliceNum==1
34
+ # 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | enabled dynamic slicing for multi-thread
35
+ # 2 SM_RASTER_SLICE | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
36
+ # 3 SM_SIZELIMITED_SLICE | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
37
+ # 4 SM_RESERVED | reserved
@@ -0,0 +1,37 @@
1
+ # Layer Configuration File
2
+
3
+
4
+ #============================== OUTPUT ==============================
5
+ FrameWidth 320 # Output frame width
6
+ FrameHeight 192 # Output frame height
7
+ FrameRateOut 12 # Output frame rate [Hz]
8
+ ReconFile rec_layer2.yuv # Reconstructed file
9
+
10
+ #============================== CODING ==============================
11
+ ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
12
+
13
+ InitialQP 24 # Quantization parameters for base quality layer
14
+ #================================ RATE CONTROL ===============================
15
+ SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
16
+ MaxSpatialBitrate 800 # Unit: kbps, max bitrate for current layer
17
+ #============================== MultiSlice Slice Argument ==============================
18
+ # for S/M Slice(s) mode settings
19
+ SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
20
+ SliceSize 1500
21
+ SliceNum 1 # multiple slices number specified
22
+
23
+ SlicesAssign0 960 # count number of MBs in slice #0
24
+ SlicesAssign1 0 # count number of MBs in slice #1
25
+ SlicesAssign2 0 # count number of MBs in slice #2
26
+ SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
27
+ SlicesAssign4 0 # count number of MBs in slice #4
28
+ SlicesAssign5 0 # count number of MBs in slice #5
29
+ SlicesAssign6 0 # count number of MBs in slice #6
30
+ SlicesAssign7 0 # count number of MBs in slice #7
31
+
32
+ ### DESIGN OF SLICE MODE ####
33
+ # 0 SM_SINGLE_SLICE | SliceNum==1
34
+ # 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | enabled dynamic slicing for multi-thread
35
+ # 2 SM_RASTER_SLICE | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
36
+ # 3 SM_SIZELIMITED_SLICE | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
37
+ # 4 SM_RESERVED | reserved
@@ -0,0 +1,38 @@
1
+ # Layer Configuration File
2
+
3
+
4
+ #============================== OUTPUT ==============================
5
+ FrameWidth 320 # Output frame width
6
+ FrameHeight 192 # Output frame height
7
+ FrameRateOut 12 # Output frame rate [Hz]
8
+ ReconFile rec_layer2.yuv # Reconstructed file
9
+
10
+ #============================== CODING ==============================
11
+ ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
12
+
13
+ InitialQP 24 # Quantization parameters for base quality layer
14
+ #================================ RATE CONTROL ===============================
15
+ SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
16
+ MaxSpatialBitrate 800 # Unit: kbps, max bitrate for current layer
17
+ #============================== MultiSlice Slice Argument ==============================
18
+ # for S/M Slice(s) mode settings
19
+ SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
20
+ SliceSize 1500
21
+ SliceNum 1 # multiple slices number specified
22
+
23
+ SlicesAssign0 960 # count number of MBs in slice #0
24
+ SlicesAssign1 0 # count number of MBs in slice #1
25
+ SlicesAssign2 0 # count number of MBs in slice #2
26
+ SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
27
+ SlicesAssign4 0 # count number of MBs in slice #4
28
+ SlicesAssign5 0 # count number of MBs in slice #5
29
+ SlicesAssign6 0 # count number of MBs in slice #6
30
+ SlicesAssign7 0 # count number of MBs in slice #7
31
+
32
+ ### DESIGN OF SLICE MODE ####
33
+ # 0 SM_SINGLE_SLICE | SliceNum==1
34
+ # 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | enabled dynamic slicing for multi-thread
35
+ # 2 SM_RASTER_SLICE | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
36
+ # 3 SM_SIZELIMITED_SLICE | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
37
+ # 4 SM_RESERVED | reserved
38
+
@@ -0,0 +1,38 @@
1
+ # Layer Configuration File
2
+
3
+
4
+ #============================== OUTPUT ==============================
5
+ FrameWidth 320 # Output frame width
6
+ FrameHeight 192 # Output frame height
7
+ FrameRateOut 12 # Output frame rate [Hz]
8
+ ReconFile rec_layer2.yuv # Reconstructed file
9
+
10
+ #============================== CODING ==============================
11
+ ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
12
+
13
+ InitialQP 24 # Quantization parameters for base quality layer
14
+ #================================ RATE CONTROL ===============================
15
+ SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
16
+ MaxSpatialBitrate 800 # Unit: kbps, max bitrate for current layer
17
+ #============================== MultiSlice Slice Argument ==============================
18
+ # for S/M Slice(s) mode settings
19
+ SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
20
+ SliceSize 1500
21
+ SliceNum 1 # multiple slices number specified
22
+
23
+ SlicesAssign0 960 # count number of MBs in slice #0
24
+ SlicesAssign1 0 # count number of MBs in slice #1
25
+ SlicesAssign2 0 # count number of MBs in slice #2
26
+ SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
27
+ SlicesAssign4 0 # count number of MBs in slice #4
28
+ SlicesAssign5 0 # count number of MBs in slice #5
29
+ SlicesAssign6 0 # count number of MBs in slice #6
30
+ SlicesAssign7 0 # count number of MBs in slice #7
31
+
32
+ ### DESIGN OF SLICE MODE ####
33
+ # 0 SM_SINGLE_SLICE | SliceNum==1
34
+ # 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | enabled dynamic slicing for multi-thread
35
+ # 2 SM_RASTER_SLICE | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
36
+ # 3 SM_SIZELIMITED_SLICE | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
37
+ # 4 SM_RESERVED | reserved
38
+
@@ -0,0 +1,71 @@
1
+ # Cisco Scalable H.264/AVC Extension Encoder Configuration File
2
+
3
+ #============================== GENERAL ==============================
4
+ UsageType 0 # 0: camera video 1:screen content
5
+ SimulcastAVC 0 # 0: use SVC syntax for higher layers; 1: use Simulcast AVC
6
+ SourceWidth 320 # input video width
7
+ SourceHeight 192 # input video height
8
+ InputFile ../res/CiscoVT2people_320x192_12fps.yuv # Input file
9
+ OutputFile test.264 # Bitstream file
10
+ MaxFrameRate 30 # Maximum frame rate [Hz]
11
+ FramesToBeEncoded -1 # Number of frames (at input frame rate)
12
+
13
+ TemporalLayerNum 2 # temporal layer number(1--4)
14
+ IntraPeriod 0 # Intra Period ( multipler of GoP size or -1)
15
+ SpsPpsIDStrategy 1 # sps/pps id strategy(0-4):
16
+ # 0: const id, 1: increasing id, 2: sps list,
17
+ # 3: sps list & pps increase, 4: sps/pps list
18
+
19
+ EnableFrameCropping 1 # enable frame cropping flag
20
+ EntropyCodingModeFlag 0 # 0:cavlc 1:cabac
21
+ MaxNalSize 0 # Unit:Byte, Maximum Nal size
22
+ ComplexityMode 0 # 0:low complexity mode 1:medium complexity mode
23
+ # 2:high complexity mode
24
+ #============================== LOOP FILTER ==============================
25
+ LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
26
+ # 2: on except for slice boundaries,
27
+ # 3: two stage. slice boundries on in second stage
28
+ # 4: Luma on but Chroma off (w.r.t. idc=0)
29
+ # 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
30
+ # 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
31
+ LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
32
+ LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
33
+ #============================== SOFTWARE IMPLEMENTATION ==============================
34
+ MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder),
35
+ # 1: multiple threads imp. disabled,
36
+ # >1: count number of threads
37
+ UseLoadBalancing 1 # under particular slice mode, when multi-threading is used, whether apply dynamic slicing for load balancing
38
+
39
+ #============================== RATE CONTROL ==============================
40
+ RCMode 0 # -1: rc off mode, 0: quality mode, 1: bitrate mode,
41
+ # 2: buffer based mode,can't control bitrate,
42
+ # 3: bitrate mode based on timestamp input
43
+ TargetBitrate 5000 # Unit: kbps, controled by EnableRC also
44
+ MaxOverallBitrate 0 # Unit: kbps, max bitrate overall, 0 - unspecified
45
+ EnableFrameSkip 1 # Enable Frame Skip
46
+ MaxQp 51 # maximum quant
47
+ MinQp 0 # minimum quant
48
+ #============================== DENOISE CONTROL ==============================
49
+ EnableDenoise 0 # Enable Denoise (1: enable, 0: disable)
50
+
51
+ #============================== SCENE CHANGE DETECTION CONTROL =======================
52
+ EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
53
+
54
+ #============================== BACKGROUND DETECTION CONTROL ==============================
55
+ EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
56
+
57
+ #============================== ADAPTIVE QUANTIZATION CONTROL =======================
58
+ EnableAdaptiveQuantization 1 # Enable Adaptive Quantization (1: enable, 0: disable)
59
+
60
+ #============================== LONG TERM REFERENCE CONTROL ==============================
61
+ EnableLongTermReference 1 # Enable Long Term Reference (1: enable, 0: disable)
62
+ LtrMarkPeriod 30 # Long Term Reference Marking Period
63
+
64
+ #============================== LAYER DEFINITION ==============================
65
+ PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
66
+ # It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
67
+ # Can be disabled when no inter spatial layer prediction in case of its value as 0
68
+ NumLayers 1 # Number of layers
69
+ //LayerCfg layer0.cfg # Layer 0 configuration file
70
+ //LayerCfg layer1.cfg # Layer 1 configuration file
71
+ LayerCfg layer2.cfg # Layer 2 configuration file
@@ -0,0 +1,70 @@
1
+ # Cisco Scalable H.264/AVC Extension Encoder Configuration File
2
+
3
+ #============================== GENERAL ==============================
4
+ UsageType 0 # 0: camera video 1:screen content
5
+ SimulcastAVC 0 # 0: use SVC syntax for higher layers; 1: use Simulcast AVC
6
+ SourceWidth 152 # Input frame width
7
+ SourceHeight 100 # Input frame height
8
+ InputFile ../res/Static_152_100.yuv # Input file
9
+ OutputFile Static.264 # Bitstream file
10
+ MaxFrameRate 30 # Maximum frame rate [Hz]
11
+ FramesToBeEncoded -1 # Number of frames (at input frame rate)
12
+
13
+ TemporalLayerNum 3 # temporal layer number(1--4
14
+ IntraPeriod 0 # Intra Period ( multiple of GoP size or -1)
15
+ SpsPpsIDStrategy 1 # sps/pps id strategy(0-4):
16
+ # 0: const id, 1: increasing id, 2: sps list,
17
+ # 3: sps list & pps increase, 4: sps/pps list
18
+
19
+ EnableFrameCropping 1 # enable frame cropping flag
20
+ EntropyCodingModeFlag 0 # 0:cavlc 1:cabac
21
+ MaxNalSize 0 # Unit:Byte, Maximum Nal size
22
+ ComplexityMode 0 # 0:low complexity mode 1:medium complexity mode
23
+ # 2:high complexity mode
24
+ #============================== LOOP FILTER ==============================
25
+ LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
26
+ # 2: on except for slice boundaries,
27
+ # 3: two stage. slice boundries on in second stage
28
+ # 4: Luma on but Chroma off (w.r.t. idc=0)
29
+ # 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
30
+ # 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
31
+ LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
32
+ LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
33
+
34
+ #============================== SOFTWARE IMPLEMENTATION ==============================
35
+ MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder),
36
+ # 1: multiple threads imp. disabled,
37
+ # >1: count number of threads
38
+
39
+ #============================== RATE CONTROL ==============================
40
+ RCMode 0 # -1: rc off mode, 0: quality mode, 1: bitrate mode,
41
+ # 2: buffer based mode,can't control bitrate
42
+ # 3: bitrate mode based on timestamp input
43
+ TargetBitrate 5000 # Unit: kbps, controled by EnableRC also
44
+ MaxOverallBitrate 6000 # Unit: kbps, max bitrate overall
45
+ MaxQp 51 # maximum quant
46
+ MinQp 0 # minimum quant
47
+ #============================== DENOISE CONTROL ==============================
48
+ EnableDenoise 0 # Enable Denoise (1: enable, 0: disable)
49
+
50
+ #============================== SCENE CHANGE DETECTION CONTROL =======================
51
+ EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
52
+
53
+ #============================== BACKGROUND DETECTION CONTROL ==============================
54
+ EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
55
+
56
+ #============================== ADAPTIVE QUANTIZATION CONTROL =======================
57
+ EnableAdaptiveQuantization 1 # Enable Adaptive Quantization (1: enable, 0: disable)
58
+
59
+ #============================== LONG TERM REFERENCE CONTROL ==============================
60
+ EnableLongTermReference 0 # Enable Long Term Reference (1: enable, 0: disable)
61
+ LtrMarkPeriod 30 # Long Term Reference Marking Period
62
+
63
+ #============================== LAYER DEFINITION ==============================
64
+ PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
65
+ # It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
66
+ # Can be disabled when no inter spatial layer prediction in case of its value as 0
67
+ NumLayers 1 # Number of layers
68
+ //LayerCfg layer0.cfg # Layer 0 configuration file
69
+ //LayerCfg layer1.cfg # Layer 1 configuration file
70
+ LayerCfg layer2_arbitrary_res.cfg # Layer 2 configuration file
@@ -0,0 +1,71 @@
1
+ # Cisco Scalable H.264/AVC Extension Encoder Configuration File
2
+
3
+ #============================== GENERAL ==============================
4
+ UsageType 0 # 0: camera video 1:screen content
5
+ SimulcastAVC 0 # 0: use SVC syntax for higher layers; 1: use Simulcast AVC
6
+ SourceWidth 320 # input video width
7
+ SourceHeight 192 # input video height
8
+ InputFile ../res/CiscoVT2people_320x192_12fps.yuv # Input file
9
+ OutputFile test.264 # Bitstream file
10
+ MaxFrameRate 30 # Maximum frame rate [Hz]
11
+ FramesToBeEncoded -1 # Number of frames (at input frame rate)
12
+
13
+ TemporalLayerNum 3 # temporal layer number(1--4)
14
+ IntraPeriod 0 # Intra Period ( multipler of GoP size or -1)
15
+ SpsPpsIDStrategy 1 # sps/pps id strategy(0-4):
16
+ # 0: const id, 1: increasing id, 2: sps list,
17
+ # 3: sps list & pps increase, 4: sps/pps list
18
+
19
+ EnableFrameCropping 1 # enable frame cropping flag
20
+ EntropyCodingModeFlag 0 # 0:cavlc 1:cabac
21
+ MaxNalSize 0 # Unit:Byte, Maximum Nal size
22
+ ComplexityMode 0 # 0:low complexity mode 1:medium complexity mode
23
+ # 2:high complexity mode
24
+ #============================== LOOP FILTER ==============================
25
+ LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
26
+ # 2: on except for slice boundaries,
27
+ # 3: two stage. slice boundries on in second stage
28
+ # 4: Luma on but Chroma off (w.r.t. idc=0)
29
+ # 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
30
+ # 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
31
+ LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
32
+ LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
33
+
34
+ #============================== SOFTWARE IMPLEMENTATION ==============================
35
+ MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder),
36
+ # 1: multiple threads imp. disabled,
37
+ # >1: count number of threads
38
+
39
+ #============================== RATE CONTROL ==============================
40
+ RCMode 0 # -1: rc off mode, 0: quality mode, 1: bitrate mode,
41
+ # 2: buffer based mode,can't control bitrate,
42
+ # 3: bitrate mode based on timestamp input
43
+ TargetBitrate 5000 # Unit: kbps, controled by EnableRC also
44
+ MaxOverallBitrate 6000 # Unit: kbps, max bitrate overall
45
+ EnableFrameSkip 1 # Enable Frame Skip
46
+ MaxQp 51 # maximum quant
47
+ MinQp 0 # minimum quant
48
+ #============================== DENOISE CONTROL ==============================
49
+ EnableDenoise 0 # Enable Denoise (1: enable, 0: disable)
50
+
51
+ #============================== SCENE CHANGE DETECTION CONTROL =======================
52
+ EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
53
+
54
+ #============================== BACKGROUND DETECTION CONTROL ==============================
55
+ EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
56
+
57
+ #============================== ADAPTIVE QUANTIZATION CONTROL =======================
58
+ EnableAdaptiveQuantization 1 # Enable Adaptive Quantization (1: enable, 0: disable)
59
+
60
+ #============================== LONG TERM REFERENCE CONTROL ==============================
61
+ EnableLongTermReference 0 # Enable Long Term Reference (1: enable, 0: disable)
62
+ LtrMarkPeriod 30 # Long Term Reference Marking Period
63
+
64
+ #============================== LAYER DEFINITION ==============================
65
+ PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
66
+ # It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
67
+ # Can be disabled when no inter spatial layer prediction in case of its value as 0
68
+ //NumLayers 1 # Number of layers
69
+ //LayerCfg layer0.cfg # Layer 0 configuration file
70
+ //LayerCfg layer1.cfg # Layer 1 configuration file
71
+ //LayerCfg layer2.cfg # Layer 2 configuration file