@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,411 @@
1
+ ;*!
2
+ ;* \copy
3
+ ;* Copyright (c) 2010-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
+ ;* vaa.asm
33
+ ;*
34
+ ;* Abstract
35
+ ;* sse2 for pVaa routines
36
+ ;*
37
+ ;* History
38
+ ;* 04/14/2010 Created
39
+ ;* 06/07/2010 Added AnalysisVaaInfoIntra_sse2(ssse3)
40
+ ;* 06/10/2010 Tune rc_sad_frame_sse2 and got about 40% improvement
41
+ ;* 08/11/2010 Added abs_difference_mbrow_sse2 & sum_sqrsum_mbrow_sse2
42
+ ;*
43
+ ;*************************************************************************/
44
+ %include "asm_inc.asm"
45
+
46
+
47
+ ;***********************************************************************
48
+ ; Macros and other preprocessor constants
49
+ ;***********************************************************************
50
+
51
+ ; by comparing it outperforms than phaddw(SSSE3) sets
52
+ %macro SUM_WORD_8x2_SSE2 2 ; dst(pSrc), tmp
53
+ ; @sum_8x2 begin
54
+ pshufd %2, %1, 04Eh ; 01001110 B
55
+ paddw %1, %2
56
+ pshuflw %2, %1, 04Eh ; 01001110 B
57
+ paddw %1, %2
58
+ pshuflw %2, %1, 0B1h ; 10110001 B
59
+ paddw %1, %2
60
+ ; end of @sum_8x2
61
+ %endmacro ; END of SUM_WORD_8x2_SSE2
62
+
63
+
64
+ %macro VAA_AVG_BLOCK_SSE2 6 ; dst, t0, t1, t2, t3, t4
65
+ movdqa %1, [r0 ] ; line 0
66
+ movdqa %2, [r0+r1] ; line 1
67
+ movdqa %3, %1
68
+ punpcklbw %1, xmm7
69
+ punpckhbw %3, xmm7
70
+ movdqa %4, %2
71
+ punpcklbw %4, xmm7
72
+ punpckhbw %2, xmm7
73
+ paddw %1, %4
74
+ paddw %2, %3
75
+ movdqa %3, [r0+r2] ; line 2
76
+ movdqa %4, [r0+r3] ; line 3
77
+ movdqa %5, %3
78
+ punpcklbw %3, xmm7
79
+ punpckhbw %5, xmm7
80
+ movdqa %6, %4
81
+ punpcklbw %6, xmm7
82
+ punpckhbw %4, xmm7
83
+ paddw %3, %6
84
+ paddw %4, %5
85
+ paddw %1, %3 ; block 0, 1
86
+ paddw %2, %4 ; block 2, 3
87
+ pshufd %3, %1, 0B1h
88
+ pshufd %4, %2, 0B1h
89
+ paddw %1, %3
90
+ paddw %2, %4
91
+ movdqa %3, %1
92
+ movdqa %4, %2
93
+ pshuflw %5, %1, 0B1h
94
+ pshufhw %6, %3, 0B1h
95
+ paddw %1, %5
96
+ paddw %3, %6
97
+ pshuflw %5, %2, 0B1h
98
+ pshufhw %6, %4, 0B1h
99
+ paddw %2, %5
100
+ paddw %4, %6
101
+ punpcklwd %1, %2
102
+ punpckhwd %3, %4
103
+ punpcklwd %1, %3
104
+ psraw %1, $04
105
+ %endmacro
106
+
107
+ %macro VAA_AVG_BLOCK_SSSE3 6 ; dst, t0, t1, t2, t3, t4
108
+ movdqa %1, [r0 ] ; line 0
109
+ movdqa %2, [r0+r1] ; line 1
110
+ movdqa %3, %1
111
+ punpcklbw %1, xmm7
112
+ punpckhbw %3, xmm7
113
+ movdqa %4, %2
114
+ punpcklbw %4, xmm7
115
+ punpckhbw %2, xmm7
116
+ paddw %1, %4
117
+ paddw %2, %3
118
+ movdqa %3, [r0+r2] ; line 2
119
+ movdqa %4, [r0+r3] ; line 3
120
+ movdqa %5, %3
121
+ punpcklbw %3, xmm7
122
+ punpckhbw %5, xmm7
123
+ movdqa %6, %4
124
+ punpcklbw %6, xmm7
125
+ punpckhbw %4, xmm7
126
+ paddw %3, %6
127
+ paddw %4, %5
128
+ paddw %1, %3 ; block 0, 1
129
+ paddw %2, %4 ; block 2, 3
130
+ phaddw %1, %2 ; block[0]: 0-15, 16-31; block[1]: 32-47, 48-63; ..
131
+ phaddw %1, xmm7 ; block[0]: 0-15; block[1]: 16-31; block[2]: 32-47; block[3]: 48-63; ....
132
+ psraw %1, $04
133
+ %endmacro
134
+
135
+
136
+
137
+ ;***********************************************************************
138
+ ; Code
139
+ ;***********************************************************************
140
+
141
+ SECTION .text
142
+
143
+ ; , 6/7/2010
144
+
145
+ ;***********************************************************************
146
+ ; int32_t AnalysisVaaInfoIntra_sse2( uint8_t *pDataY, const int32_t iLineSize );
147
+ ;***********************************************************************
148
+ WELS_EXTERN AnalysisVaaInfoIntra_sse2
149
+
150
+ %assign push_num 0
151
+ LOAD_2_PARA
152
+ PUSH_XMM 8
153
+ SIGN_EXTENSION r1,r1d
154
+
155
+ %ifdef X86_32
156
+ push r3
157
+ push r4
158
+ push r5
159
+ push r6
160
+ %assign push_num push_num+4
161
+ %endif
162
+
163
+ mov r5,r7
164
+ and r5,0fh
165
+ sub r7,r5
166
+ sub r7,32
167
+
168
+
169
+ mov r2,r1
170
+ sal r2,$01 ;r2 = 2*iLineSize
171
+ mov r3,r2
172
+ add r3,r1 ;r3 = 3*iLineSize
173
+
174
+ mov r4,r2
175
+ sal r4,$01 ;r4 = 4*iLineSize
176
+
177
+ pxor xmm7, xmm7
178
+
179
+ ; loops
180
+ VAA_AVG_BLOCK_SSE2 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
181
+ movq [r7], xmm0
182
+
183
+ lea r0, [r0+r4]
184
+ VAA_AVG_BLOCK_SSE2 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
185
+ movq [r7+8], xmm0
186
+
187
+ lea r0, [r0+r4]
188
+ VAA_AVG_BLOCK_SSE2 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
189
+ movq [r7+16], xmm0
190
+
191
+ lea r0, [r0+r4]
192
+ VAA_AVG_BLOCK_SSE2 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
193
+ movq [r7+24], xmm0
194
+
195
+ movdqa xmm0, [r7] ; block 0~7
196
+ movdqa xmm1, [r7+16] ; block 8~15
197
+ movdqa xmm2, xmm0
198
+ paddw xmm0, xmm1
199
+ SUM_WORD_8x2_SSE2 xmm0, xmm3
200
+
201
+ pmullw xmm1, xmm1
202
+ pmullw xmm2, xmm2
203
+ movdqa xmm3, xmm1
204
+ movdqa xmm4, xmm2
205
+ punpcklwd xmm1, xmm7
206
+ punpckhwd xmm3, xmm7
207
+ punpcklwd xmm2, xmm7
208
+ punpckhwd xmm4, xmm7
209
+ paddd xmm1, xmm2
210
+ paddd xmm3, xmm4
211
+ paddd xmm1, xmm3
212
+ pshufd xmm2, xmm1, 01Bh
213
+ paddd xmm1, xmm2
214
+ pshufd xmm2, xmm1, 0B1h
215
+ paddd xmm1, xmm2
216
+
217
+
218
+
219
+ movd r2d, xmm0
220
+ and r2, 0ffffh ; effective low work truncated
221
+ mov r3, r2
222
+ imul r2, r3
223
+ sar r2, $04
224
+ movd retrd, xmm1
225
+ sub retrd, r2d
226
+
227
+ add r7,32
228
+ add r7,r5
229
+
230
+ %ifdef X86_32
231
+ pop r6
232
+ pop r5
233
+ pop r4
234
+ pop r3
235
+ %endif
236
+ POP_XMM
237
+
238
+ ret
239
+
240
+ ;***********************************************************************
241
+ ; int32_t AnalysisVaaInfoIntra_ssse3( uint8_t *pDataY, const int32_t iLineSize );
242
+ ;***********************************************************************
243
+ WELS_EXTERN AnalysisVaaInfoIntra_ssse3
244
+
245
+ %assign push_num 0
246
+ LOAD_2_PARA
247
+ PUSH_XMM 8
248
+ SIGN_EXTENSION r1,r1d
249
+
250
+ %ifdef X86_32
251
+ push r3
252
+ push r4
253
+ push r5
254
+ push r6
255
+ %assign push_num push_num+4
256
+ %endif
257
+
258
+ mov r5,r7
259
+ and r5,0fh
260
+ sub r7,r5
261
+ sub r7,32
262
+
263
+
264
+ mov r2,r1
265
+ sal r2,$01 ;r2 = 2*iLineSize
266
+ mov r3,r2
267
+ add r3,r1 ;r3 = 3*iLineSize
268
+
269
+ mov r4,r2
270
+ sal r4,$01 ;r4 = 4*iLineSize
271
+
272
+ pxor xmm7, xmm7
273
+
274
+ ; loops
275
+ VAA_AVG_BLOCK_SSSE3 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
276
+ movq [r7],xmm0
277
+
278
+ lea r0,[r0+r4]
279
+ VAA_AVG_BLOCK_SSSE3 xmm1, xmm2, xmm3, xmm4, xmm5, xmm6
280
+ movq [r7+8],xmm1
281
+
282
+
283
+ lea r0,[r0+r4]
284
+ VAA_AVG_BLOCK_SSSE3 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5
285
+ movq [r7+16],xmm0
286
+
287
+ lea r0,[r0+r4]
288
+ VAA_AVG_BLOCK_SSSE3 xmm1, xmm2, xmm3, xmm4, xmm5, xmm6
289
+ movq [r7+24],xmm1
290
+
291
+
292
+ movdqa xmm0,[r7]
293
+ movdqa xmm1,[r7+16]
294
+ movdqa xmm2, xmm0
295
+ paddw xmm0, xmm1
296
+ SUM_WORD_8x2_SSE2 xmm0, xmm3 ; better performance than that of phaddw sets
297
+
298
+ pmullw xmm1, xmm1
299
+ pmullw xmm2, xmm2
300
+ movdqa xmm3, xmm1
301
+ movdqa xmm4, xmm2
302
+ punpcklwd xmm1, xmm7
303
+ punpckhwd xmm3, xmm7
304
+ punpcklwd xmm2, xmm7
305
+ punpckhwd xmm4, xmm7
306
+ paddd xmm1, xmm2
307
+ paddd xmm3, xmm4
308
+ paddd xmm1, xmm3
309
+ pshufd xmm2, xmm1, 01Bh
310
+ paddd xmm1, xmm2
311
+ pshufd xmm2, xmm1, 0B1h
312
+ paddd xmm1, xmm2
313
+
314
+
315
+ movd r2d, xmm0
316
+ and r2, 0ffffh ; effective low work truncated
317
+ mov r3, r2
318
+ imul r2, r3
319
+ sar r2, $04
320
+ movd retrd, xmm1
321
+ sub retrd, r2d
322
+
323
+ add r7,32
324
+ add r7,r5
325
+ %ifdef X86_32
326
+ pop r6
327
+ pop r5
328
+ pop r4
329
+ pop r3
330
+ %endif
331
+ POP_XMM
332
+
333
+ ret
334
+
335
+ ;***********************************************************************
336
+ ; uint8_t MdInterAnalysisVaaInfo_sse41( int32_t *pSad8x8 )
337
+ ;***********************************************************************
338
+ WELS_EXTERN MdInterAnalysisVaaInfo_sse41
339
+ %assign push_num 0
340
+ LOAD_1_PARA
341
+ movdqa xmm0,[r0]
342
+ pshufd xmm1, xmm0, 01Bh
343
+ paddd xmm1, xmm0
344
+ pshufd xmm2, xmm1, 0B1h
345
+ paddd xmm1, xmm2
346
+ psrad xmm1, 02h ; iAverageSad
347
+ movdqa xmm2, xmm1
348
+ psrad xmm2, 06h
349
+ movdqa xmm3, xmm0 ; iSadBlock
350
+ psrad xmm3, 06h
351
+ psubd xmm3, xmm2
352
+ pmulld xmm3, xmm3 ; [comment]: pmulld from SSE4.1 instruction sets
353
+ pshufd xmm4, xmm3, 01Bh
354
+ paddd xmm4, xmm3
355
+ pshufd xmm3, xmm4, 0B1h
356
+ paddd xmm3, xmm4
357
+ movd r0d, xmm3
358
+ cmp r0d, 20 ; INTER_VARIANCE_SAD_THRESHOLD
359
+
360
+ jb near .threshold_exit
361
+ pshufd xmm0, xmm0, 01Bh
362
+ pcmpgtd xmm0, xmm1 ; iSadBlock > iAverageSad
363
+ movmskps retrd, xmm0
364
+ ret
365
+ .threshold_exit:
366
+ mov retrd, 15
367
+ ret
368
+
369
+ ;***********************************************************************
370
+ ; uint8_t MdInterAnalysisVaaInfo_sse2( int32_t *pSad8x8 )
371
+ ;***********************************************************************
372
+ WELS_EXTERN MdInterAnalysisVaaInfo_sse2
373
+ %assign push_num 0
374
+ LOAD_1_PARA
375
+ movdqa xmm0, [r0]
376
+ pshufd xmm1, xmm0, 01Bh
377
+ paddd xmm1, xmm0
378
+ pshufd xmm2, xmm1, 0B1h
379
+ paddd xmm1, xmm2
380
+ psrad xmm1, 02h ; iAverageSad
381
+ movdqa xmm2, xmm1
382
+ psrad xmm2, 06h
383
+ movdqa xmm3, xmm0 ; iSadBlock
384
+ psrad xmm3, 06h
385
+ psubd xmm3, xmm2
386
+
387
+ ; to replace pmulld functionality as below
388
+ movdqa xmm2, xmm3
389
+ pmuludq xmm2, xmm3
390
+ pshufd xmm4, xmm3, 0B1h
391
+ pmuludq xmm4, xmm4
392
+ movdqa xmm5, xmm2
393
+ punpckldq xmm5, xmm4
394
+ punpckhdq xmm2, xmm4
395
+ punpcklqdq xmm5, xmm2
396
+
397
+ pshufd xmm4, xmm5, 01Bh
398
+ paddd xmm4, xmm5
399
+ pshufd xmm5, xmm4, 0B1h
400
+ paddd xmm5, xmm4
401
+
402
+ movd r0d, xmm5
403
+ cmp r0d, 20 ; INTER_VARIANCE_SAD_THRESHOLD
404
+ jb near .threshold_exit
405
+ pshufd xmm0, xmm0, 01Bh
406
+ pcmpgtd xmm0, xmm1 ; iSadBlock > iAverageSad
407
+ movmskps retrd, xmm0
408
+ ret
409
+ .threshold_exit:
410
+ mov retrd, 15
411
+ ret
@@ -0,0 +1,68 @@
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
+ * read_config.h
32
+ *
33
+ * Abstract
34
+ * Class for reading parameter settings in a configure file.
35
+ *
36
+ * History
37
+ * 08/18/2008 Created
38
+ *
39
+ *****************************************************************************/
40
+ #ifndef READ_CONFIG_H__
41
+ #define READ_CONFIG_H__
42
+
43
+ #include <stdlib.h>
44
+ #include <string>
45
+
46
+
47
+ class CReadConfig {
48
+ public:
49
+ CReadConfig();
50
+ CReadConfig (const char* pConfigFileName);
51
+ CReadConfig (const std::string& pConfigFileName);
52
+ virtual ~CReadConfig();
53
+
54
+ void Openf (const char* strFile);
55
+ long ReadLine (std::string* strVal, const int iValSize = 4);
56
+ const bool EndOfFile();
57
+ const int GetLines();
58
+ const bool ExistFile();
59
+ const std::string& GetFileName();
60
+
61
+ private:
62
+ FILE* m_pCfgFile;
63
+ std::string m_strCfgFileName;
64
+ unsigned int m_iLines;
65
+ };
66
+
67
+ #endif // READ_CONFIG_H__
68
+
@@ -0,0 +1,12 @@
1
+ cpp_sources = [
2
+ 'src/read_config.cpp'
3
+ ]
4
+
5
+ conscomminc = [
6
+ inc,
7
+ console_common_inc,
8
+ ]
9
+
10
+ libconsole_common = static_library('console_common', cpp_sources,
11
+ include_directories: conscomminc,
12
+ dependencies: deps)
@@ -0,0 +1,20 @@
1
+ # This file is autogenerated, do not edit it directly, edit build/mktargets.py
2
+ # instead. To regenerate files, run build/mktargets.sh.
3
+
4
+ CONSOLE_COMMON_SRCDIR=codec/console/common
5
+ CONSOLE_COMMON_CPP_SRCS=\
6
+ $(CONSOLE_COMMON_SRCDIR)/src/read_config.cpp\
7
+
8
+ CONSOLE_COMMON_OBJS += $(CONSOLE_COMMON_CPP_SRCS:.cpp=.$(OBJ))
9
+
10
+ OBJS += $(CONSOLE_COMMON_OBJS)
11
+
12
+ $(CONSOLE_COMMON_SRCDIR)/%.$(OBJ): $(CONSOLE_COMMON_SRCDIR)/%.cpp
13
+ $(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(CONSOLE_COMMON_CFLAGS) $(CONSOLE_COMMON_INCLUDES) -c $(CXX_O) $<
14
+
15
+ $(LIBPREFIX)console_common.$(LIBSUFFIX): $(CONSOLE_COMMON_OBJS)
16
+ $(QUIET)rm -f $@
17
+ $(QUIET_AR)$(AR) $(AR_OPTS) $+
18
+
19
+ libraries: $(LIBPREFIX)console_common.$(LIBSUFFIX)
20
+ LIBRARIES += $(LIBPREFIX)console_common.$(LIBSUFFIX)
@@ -0,0 +1,148 @@
1
+ /*!
2
+ * \copy
3
+ * Copyright (c) 2010-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 d3d9_utils.h
32
+ *
33
+ * \brief interface of d3d9 render module
34
+ *
35
+ * \date Created 12/14/2010
36
+ *
37
+ * \description : 1. Rendering in Vista and upper : D3D9Ex method, support host memory / shared surface input
38
+ * 2. Rendering in XP : D3D9 method w/o device lost handling, support host memory input
39
+ * 3. File Dump : support host memory / shared surface input
40
+ *
41
+ *************************************************************************************
42
+ */
43
+ #ifndef WELS_D3D9_UTILS_H__
44
+ #define WELS_D3D9_UTILS_H__
45
+
46
+ #include <stdio.h>
47
+ #include "codec_def.h"
48
+
49
+ #if defined(_MSC_VER) && (_MSC_VER>=1500) // vs2008 and upper
50
+ #ifdef WINAPI_FAMILY
51
+ #include <winapifamily.h>
52
+ #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
53
+ #define ENABLE_DISPLAY_MODULE // enable/disable the render feature
54
+ #endif
55
+ #else /* defined(WINAPI_FAMILY) */
56
+ #define ENABLE_DISPLAY_MODULE // enable/disable the render feature
57
+ #endif
58
+ #endif
59
+
60
+ #ifdef ENABLE_DISPLAY_MODULE
61
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
62
+ #include <d3d9.h>
63
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
64
+
65
+ class CD3D9Utils {
66
+ public:
67
+ CD3D9Utils();
68
+ ~CD3D9Utils();
69
+
70
+ public:
71
+ HRESULT Init (BOOL bWindowed);
72
+ HRESULT Uninit (void);
73
+ HRESULT Process (void* pDst[3], SBufferInfo* Info, FILE* pFile = NULL);
74
+
75
+ private:
76
+ HRESULT InitResource (void* pSharedHandle, SBufferInfo* pInfo);
77
+ HRESULT Render (void* pDst[3], SBufferInfo* pInfo);
78
+ HRESULT Dump (void* pDst[3], SBufferInfo* pInfo, FILE* pFile);
79
+
80
+ private:
81
+ HMODULE m_hDll;
82
+ HWND m_hWnd;
83
+ unsigned char* m_pDumpYUV;
84
+ BOOL m_bInitDone;
85
+ int m_nWidth;
86
+ int m_nHeight;
87
+
88
+ LPDIRECT3D9 m_lpD3D9;
89
+ LPDIRECT3DDEVICE9 m_lpD3D9Device;
90
+
91
+ D3DPRESENT_PARAMETERS m_d3dpp;
92
+ LPDIRECT3DSURFACE9 m_lpD3D9RawSurfaceShare;
93
+ };
94
+
95
+ class CD3D9ExUtils {
96
+ public:
97
+ CD3D9ExUtils();
98
+ ~CD3D9ExUtils();
99
+
100
+ public:
101
+ HRESULT Init (BOOL bWindowed);
102
+ HRESULT Uninit (void);
103
+ HRESULT Process (void* dst[3], SBufferInfo* Info, FILE* fp = NULL);
104
+
105
+ private:
106
+ HRESULT InitResource (void* pSharedHandle, SBufferInfo* Info);
107
+ HRESULT Render (void* pDst[3], SBufferInfo* Info);
108
+ HRESULT Dump (void* pDst[3], SBufferInfo* Info, FILE* fp);
109
+
110
+ private:
111
+ HMODULE m_hDll;
112
+ HWND m_hWnd;
113
+ unsigned char* m_pDumpYUV;
114
+ BOOL m_bInitDone;
115
+ int m_nWidth;
116
+ int m_nHeight;
117
+
118
+ LPDIRECT3D9EX m_lpD3D9;
119
+ LPDIRECT3DDEVICE9EX m_lpD3D9Device;
120
+
121
+ D3DPRESENT_PARAMETERS m_d3dpp;
122
+ LPDIRECT3DSURFACE9 m_lpD3D9RawSurfaceShare;
123
+ };
124
+ #endif
125
+
126
+ enum {
127
+ OS_UNSUPPORTED = 0,
128
+ OS_XP,
129
+ OS_VISTA_UPPER
130
+ };
131
+
132
+ class CUtils {
133
+ public:
134
+ CUtils();
135
+ ~CUtils();
136
+
137
+ int Process (void* dst[3], SBufferInfo* Info, FILE* fp);
138
+
139
+ private:
140
+ int CheckOS (void);
141
+
142
+ private:
143
+ int iOSType;
144
+ void* hHandle;
145
+ };
146
+
147
+ #endif//WELS_D3D9_UTILS_H__
148
+
@@ -0,0 +1,15 @@
1
+ cpp_sources = [
2
+ 'src/d3d9_utils.cpp',
3
+ 'src/h264dec.cpp',
4
+ ]
5
+
6
+ decinc = [
7
+ inc,
8
+ console_common_inc,
9
+ include_directories('inc'),
10
+ ]
11
+
12
+ decexe = executable('h264dec', cpp_sources,
13
+ include_directories: decinc,
14
+ link_with: [libdecoder, libcommon, libconsole_common],
15
+ dependencies: deps)
@@ -0,0 +1,20 @@
1
+ # This file is autogenerated, do not edit it directly, edit build/mktargets.py
2
+ # instead. To regenerate files, run build/mktargets.sh.
3
+
4
+ H264DEC_SRCDIR=codec/console/dec
5
+ H264DEC_CPP_SRCS=\
6
+ $(H264DEC_SRCDIR)/src/d3d9_utils.cpp\
7
+ $(H264DEC_SRCDIR)/src/h264dec.cpp\
8
+
9
+ H264DEC_OBJS += $(H264DEC_CPP_SRCS:.cpp=.$(OBJ))
10
+
11
+ OBJS += $(H264DEC_OBJS)
12
+
13
+ $(H264DEC_SRCDIR)/%.$(OBJ): $(H264DEC_SRCDIR)/%.cpp
14
+ $(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(H264DEC_CFLAGS) $(H264DEC_INCLUDES) -c $(CXX_O) $<
15
+
16
+ h264dec$(EXEEXT): $(H264DEC_OBJS) $(H264DEC_DEPS)
17
+ $(QUIET_CXX)$(CXX) $(CXX_LINK_O) $(H264DEC_OBJS) $(H264DEC_LDFLAGS) $(LDFLAGS)
18
+
19
+ binaries: h264dec$(EXEEXT)
20
+ BINARIES += h264dec$(EXEEXT)
@@ -0,0 +1,9 @@
1
+ cpp_sources = [
2
+ 'src/welsenc.cpp',
3
+ ]
4
+
5
+ encexe = executable('h264enc', cpp_sources,
6
+ include_directories: [inc, console_common_inc, processing_inc, encoder_inc],
7
+
8
+ link_with: [libencoder, libcommon, libprocessing, libconsole_common],
9
+ dependencies: [deps])