@scrypted/libav 1.0.181 → 1.0.183

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/package.json +1 -1
  2. package/_openh264install/include/wels/codec_api.h +0 -592
  3. package/_openh264install/include/wels/codec_app_def.h +0 -820
  4. package/_openh264install/include/wels/codec_def.h +0 -216
  5. package/_openh264install/include/wels/codec_ver.h +0 -15
  6. package/_openh264install/lib/libopenh264.a +0 -0
  7. package/_openh264install/lib/pkgconfig/openh264.pc +0 -10
  8. package/openh264/.reviewboardrc +0 -3
  9. package/openh264/.travis.yml +0 -42
  10. package/openh264/CODING_STYLE +0 -8
  11. package/openh264/CONTRIBUTORS +0 -55
  12. package/openh264/LICENSE +0 -23
  13. package/openh264/Makefile +0 -408
  14. package/openh264/README.md +0 -197
  15. package/openh264/RELEASES +0 -467
  16. package/openh264/SECURITY.md +0 -16
  17. package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +0 -431
  18. package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +0 -180
  19. package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
  20. package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
  21. package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +0 -193
  22. package/openh264/autotest/performanceTest/ios/uiascript.js +0 -19
  23. package/openh264/autotest/performanceTest/parsePerfData.sh +0 -107
  24. package/openh264/autotest/performanceTest/run_perfTest.sh +0 -122
  25. package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +0 -112
  26. package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +0 -167
  27. package/openh264/autotest/unitTest/run_ParseUTxml.sh +0 -70
  28. package/openh264/autotest/unitTest/run_unitTest.sh +0 -98
  29. package/openh264/build.gradle +0 -30
  30. package/openh264/code-coverage.sh +0 -6
  31. package/openh264/codec/api/meson.build +0 -1
  32. package/openh264/codec/api/wels/codec_api.h +0 -592
  33. package/openh264/codec/api/wels/codec_app_def.h +0 -820
  34. package/openh264/codec/api/wels/codec_def.h +0 -216
  35. package/openh264/codec/api/wels/codec_ver.h +0 -15
  36. package/openh264/codec/api/wels/meson.build +0 -9
  37. package/openh264/codec/common/arm/arm_arch_common_macro.S +0 -83
  38. package/openh264/codec/common/arm/copy_mb_neon.S +0 -161
  39. package/openh264/codec/common/arm/deblocking_neon.S +0 -857
  40. package/openh264/codec/common/arm/expand_picture_neon.S +0 -154
  41. package/openh264/codec/common/arm/intra_pred_common_neon.S +0 -82
  42. package/openh264/codec/common/arm/mc_neon.S +0 -2283
  43. package/openh264/codec/common/arm64/arm_aarch64_common.h +0 -85
  44. package/openh264/codec/common/arm64/arm_arch64_common_macro.S +0 -79
  45. package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +0 -202
  46. package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +0 -852
  47. package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +0 -150
  48. package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +0 -58
  49. package/openh264/codec/common/arm64/mc_aarch64_neon.S +0 -2614
  50. package/openh264/codec/common/generate_version.sh +0 -28
  51. package/openh264/codec/common/inc/WelsList.h +0 -287
  52. package/openh264/codec/common/inc/WelsLock.h +0 -97
  53. package/openh264/codec/common/inc/WelsTask.h +0 -75
  54. package/openh264/codec/common/inc/WelsTaskThread.h +0 -83
  55. package/openh264/codec/common/inc/WelsThread.h +0 -106
  56. package/openh264/codec/common/inc/WelsThreadLib.h +0 -151
  57. package/openh264/codec/common/inc/WelsThreadPool.h +0 -124
  58. package/openh264/codec/common/inc/asmdefs_mmi.h +0 -345
  59. package/openh264/codec/common/inc/copy_mb.h +0 -103
  60. package/openh264/codec/common/inc/cpu.h +0 -81
  61. package/openh264/codec/common/inc/cpu_core.h +0 -103
  62. package/openh264/codec/common/inc/crt_util_safe_x.h +0 -104
  63. package/openh264/codec/common/inc/deblocking_common.h +0 -124
  64. package/openh264/codec/common/inc/expand_pic.h +0 -107
  65. package/openh264/codec/common/inc/golomb_common.h +0 -166
  66. package/openh264/codec/common/inc/intra_pred_common.h +0 -86
  67. package/openh264/codec/common/inc/loongson_intrinsics.h +0 -1919
  68. package/openh264/codec/common/inc/ls_defines.h +0 -130
  69. package/openh264/codec/common/inc/macros.h +0 -329
  70. package/openh264/codec/common/inc/mc.h +0 -407
  71. package/openh264/codec/common/inc/measure_time.h +0 -88
  72. package/openh264/codec/common/inc/memory_align.h +0 -116
  73. package/openh264/codec/common/inc/msa_macros.h +0 -2393
  74. package/openh264/codec/common/inc/sad_common.h +0 -139
  75. package/openh264/codec/common/inc/typedefs.h +0 -86
  76. package/openh264/codec/common/inc/utils.h +0 -95
  77. package/openh264/codec/common/inc/version.h +0 -10
  78. package/openh264/codec/common/inc/version_gen.h.template +0 -6
  79. package/openh264/codec/common/inc/welsCodecTrace.h +0 -64
  80. package/openh264/codec/common/inc/wels_common_defs.h +0 -373
  81. package/openh264/codec/common/inc/wels_const_common.h +0 -63
  82. package/openh264/codec/common/loongarch/copy_mb_lsx.c +0 -194
  83. package/openh264/codec/common/loongarch/deblock_lsx.c +0 -1489
  84. package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +0 -112
  85. package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +0 -91
  86. package/openh264/codec/common/loongarch/mc_chroma_lsx.c +0 -192
  87. package/openh264/codec/common/loongarch/mc_horver_lsx.c +0 -654
  88. package/openh264/codec/common/loongarch/satd_sad_lasx.c +0 -568
  89. package/openh264/codec/common/meson.build +0 -84
  90. package/openh264/codec/common/mips/copy_mb_mmi.c +0 -477
  91. package/openh264/codec/common/mips/copy_mb_msa.c +0 -80
  92. package/openh264/codec/common/mips/deblock_mmi.c +0 -2826
  93. package/openh264/codec/common/mips/deblock_msa.c +0 -1024
  94. package/openh264/codec/common/mips/expand_picture_mmi.c +0 -673
  95. package/openh264/codec/common/mips/intra_pred_com_mmi.c +0 -548
  96. package/openh264/codec/common/mips/satd_sad_mmi.c +0 -2154
  97. package/openh264/codec/common/targets.mk +0 -136
  98. package/openh264/codec/common/x86/asm_inc.asm +0 -743
  99. package/openh264/codec/common/x86/cpuid.asm +0 -263
  100. package/openh264/codec/common/x86/dct.asm +0 -1036
  101. package/openh264/codec/common/x86/deblock.asm +0 -848
  102. package/openh264/codec/common/x86/expand_picture.asm +0 -728
  103. package/openh264/codec/common/x86/intra_pred_com.asm +0 -117
  104. package/openh264/codec/common/x86/mb_copy.asm +0 -615
  105. package/openh264/codec/common/x86/mc_chroma.asm +0 -313
  106. package/openh264/codec/common/x86/mc_luma.asm +0 -4490
  107. package/openh264/codec/common/x86/satd_sad.asm +0 -2734
  108. package/openh264/codec/common/x86/vaa.asm +0 -411
  109. package/openh264/codec/console/common/inc/read_config.h +0 -68
  110. package/openh264/codec/console/common/meson.build +0 -12
  111. package/openh264/codec/console/common/targets.mk +0 -20
  112. package/openh264/codec/console/dec/inc/d3d9_utils.h +0 -148
  113. package/openh264/codec/console/dec/meson.build +0 -15
  114. package/openh264/codec/console/dec/targets.mk +0 -20
  115. package/openh264/codec/console/enc/meson.build +0 -9
  116. package/openh264/codec/console/enc/targets.mk +0 -19
  117. package/openh264/codec/console/meson.build +0 -3
  118. package/openh264/codec/decoder/core/arm/block_add_neon.S +0 -129
  119. package/openh264/codec/decoder/core/arm/intra_pred_neon.S +0 -635
  120. package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +0 -131
  121. package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +0 -524
  122. package/openh264/codec/decoder/core/inc/au_parser.h +0 -199
  123. package/openh264/codec/decoder/core/inc/bit_stream.h +0 -62
  124. package/openh264/codec/decoder/core/inc/cabac_decoder.h +0 -111
  125. package/openh264/codec/decoder/core/inc/deblocking.h +0 -118
  126. package/openh264/codec/decoder/core/inc/dec_frame.h +0 -156
  127. package/openh264/codec/decoder/core/inc/dec_golomb.h +0 -344
  128. package/openh264/codec/decoder/core/inc/decode_mb_aux.h +0 -83
  129. package/openh264/codec/decoder/core/inc/decode_slice.h +0 -104
  130. package/openh264/codec/decoder/core/inc/decoder.h +0 -186
  131. package/openh264/codec/decoder/core/inc/decoder_context.h +0 -590
  132. package/openh264/codec/decoder/core/inc/decoder_core.h +0 -206
  133. package/openh264/codec/decoder/core/inc/error_code.h +0 -222
  134. package/openh264/codec/decoder/core/inc/error_concealment.h +0 -68
  135. package/openh264/codec/decoder/core/inc/fmo.h +0 -114
  136. package/openh264/codec/decoder/core/inc/get_intra_predictor.h +0 -191
  137. package/openh264/codec/decoder/core/inc/manage_dec_ref.h +0 -62
  138. package/openh264/codec/decoder/core/inc/mb_cache.h +0 -80
  139. package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +0 -66
  140. package/openh264/codec/decoder/core/inc/mv_pred.h +0 -195
  141. package/openh264/codec/decoder/core/inc/nal_prefix.h +0 -56
  142. package/openh264/codec/decoder/core/inc/nalu.h +0 -79
  143. package/openh264/codec/decoder/core/inc/parameter_sets.h +0 -217
  144. package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +0 -89
  145. package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +0 -137
  146. package/openh264/codec/decoder/core/inc/pic_queue.h +0 -62
  147. package/openh264/codec/decoder/core/inc/picture.h +0 -112
  148. package/openh264/codec/decoder/core/inc/rec_mb.h +0 -104
  149. package/openh264/codec/decoder/core/inc/slice.h +0 -208
  150. package/openh264/codec/decoder/core/inc/vlc_decoder.h +0 -177
  151. package/openh264/codec/decoder/core/inc/wels_common_basis.h +0 -317
  152. package/openh264/codec/decoder/core/inc/wels_const.h +0 -65
  153. package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +0 -170
  154. package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +0 -296
  155. package/openh264/codec/decoder/core/mips/dct_mmi.c +0 -786
  156. package/openh264/codec/decoder/core/x86/dct.asm +0 -72
  157. package/openh264/codec/decoder/core/x86/intra_pred.asm +0 -1456
  158. package/openh264/codec/decoder/meson.build +0 -69
  159. package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +0 -170
  160. package/openh264/codec/decoder/targets.mk +0 -115
  161. package/openh264/codec/encoder/core/arm/intra_pred_neon.S +0 -589
  162. package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +0 -735
  163. package/openh264/codec/encoder/core/arm/memory_neon.S +0 -62
  164. package/openh264/codec/encoder/core/arm/pixel_neon.S +0 -882
  165. package/openh264/codec/encoder/core/arm/reconstruct_neon.S +0 -903
  166. package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +0 -366
  167. package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +0 -505
  168. package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +0 -611
  169. package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +0 -63
  170. package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +0 -621
  171. package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +0 -717
  172. package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +0 -350
  173. package/openh264/codec/encoder/core/inc/as264_common.h +0 -138
  174. package/openh264/codec/encoder/core/inc/au_set.h +0 -152
  175. package/openh264/codec/encoder/core/inc/deblocking.h +0 -92
  176. package/openh264/codec/encoder/core/inc/decode_mb_aux.h +0 -112
  177. package/openh264/codec/encoder/core/inc/dq_map.h +0 -58
  178. package/openh264/codec/encoder/core/inc/encode_mb_aux.h +0 -199
  179. package/openh264/codec/encoder/core/inc/encoder.h +0 -148
  180. package/openh264/codec/encoder/core/inc/encoder_context.h +0 -240
  181. package/openh264/codec/encoder/core/inc/extern.h +0 -124
  182. package/openh264/codec/encoder/core/inc/get_intra_predictor.h +0 -186
  183. package/openh264/codec/encoder/core/inc/mb_cache.h +0 -141
  184. package/openh264/codec/encoder/core/inc/md.h +0 -181
  185. package/openh264/codec/encoder/core/inc/mt_defs.h +0 -91
  186. package/openh264/codec/encoder/core/inc/mv_pred.h +0 -191
  187. package/openh264/codec/encoder/core/inc/nal_encap.h +0 -143
  188. package/openh264/codec/encoder/core/inc/param_svc.h +0 -576
  189. package/openh264/codec/encoder/core/inc/parameter_sets.h +0 -181
  190. package/openh264/codec/encoder/core/inc/paraset_strategy.h +0 -310
  191. package/openh264/codec/encoder/core/inc/picture.h +0 -137
  192. package/openh264/codec/encoder/core/inc/picture_handle.h +0 -66
  193. package/openh264/codec/encoder/core/inc/rc.h +0 -284
  194. package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +0 -148
  195. package/openh264/codec/encoder/core/inc/sample.h +0 -154
  196. package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +0 -127
  197. package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +0 -92
  198. package/openh264/codec/encoder/core/inc/slice.h +0 -212
  199. package/openh264/codec/encoder/core/inc/slice_multi_threading.h +0 -97
  200. package/openh264/codec/encoder/core/inc/stat.h +0 -102
  201. package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +0 -102
  202. package/openh264/codec/encoder/core/inc/svc_enc_frame.h +0 -136
  203. package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +0 -123
  204. package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +0 -82
  205. package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +0 -212
  206. package/openh264/codec/encoder/core/inc/svc_encode_mb.h +0 -63
  207. package/openh264/codec/encoder/core/inc/svc_encode_slice.h +0 -184
  208. package/openh264/codec/encoder/core/inc/svc_mode_decision.h +0 -94
  209. package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +0 -369
  210. package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +0 -70
  211. package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +0 -67
  212. package/openh264/codec/encoder/core/inc/vlc_encoder.h +0 -92
  213. package/openh264/codec/encoder/core/inc/wels_common_basis.h +0 -160
  214. package/openh264/codec/encoder/core/inc/wels_const.h +0 -174
  215. package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +0 -300
  216. package/openh264/codec/encoder/core/inc/wels_preprocess.h +0 -251
  217. package/openh264/codec/encoder/core/inc/wels_task_base.h +0 -79
  218. package/openh264/codec/encoder/core/inc/wels_task_encoder.h +0 -142
  219. package/openh264/codec/encoder/core/inc/wels_task_management.h +0 -135
  220. package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +0 -58
  221. package/openh264/codec/encoder/core/loongarch/dct_lasx.c +0 -452
  222. package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +0 -166
  223. package/openh264/codec/encoder/core/loongarch/quant_lsx.c +0 -153
  224. package/openh264/codec/encoder/core/loongarch/sample_lasx.c +0 -87
  225. package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +0 -104
  226. package/openh264/codec/encoder/core/mips/dct_mmi.c +0 -529
  227. package/openh264/codec/encoder/core/mips/quant_mmi.c +0 -553
  228. package/openh264/codec/encoder/core/mips/score_mmi.c +0 -324
  229. package/openh264/codec/encoder/core/x86/coeff.asm +0 -695
  230. package/openh264/codec/encoder/core/x86/dct.asm +0 -108
  231. package/openh264/codec/encoder/core/x86/intra_pred.asm +0 -1129
  232. package/openh264/codec/encoder/core/x86/matrix_transpose.asm +0 -395
  233. package/openh264/codec/encoder/core/x86/memzero.asm +0 -132
  234. package/openh264/codec/encoder/core/x86/quant.asm +0 -507
  235. package/openh264/codec/encoder/core/x86/sample_sc.asm +0 -1829
  236. package/openh264/codec/encoder/core/x86/score.asm +0 -363
  237. package/openh264/codec/encoder/meson.build +0 -98
  238. package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +0 -129
  239. package/openh264/codec/encoder/targets.mk +0 -146
  240. package/openh264/codec/meson.build +0 -9
  241. package/openh264/codec/processing/interface/IWelsVP.h +0 -310
  242. package/openh264/codec/processing/meson.build +0 -71
  243. package/openh264/codec/processing/targets.mk +0 -117
  244. package/openh264/docs/doxygen/Doxyfile +0 -1865
  245. package/openh264/docs/doxygen/Home.rest +0 -25
  246. package/openh264/docs/doxygen/ISVCDecoder.rest +0 -19
  247. package/openh264/docs/doxygen/ISVCEncoder.rest +0 -16
  248. package/openh264/docs/doxygen/UsageExampleForDecoder.rest +0 -10
  249. package/openh264/docs/doxygen/UsageExampleForEncoder.rest +0 -15
  250. package/openh264/docs/doxygen2rst.py +0 -619
  251. package/openh264/gmpopenh264.info +0 -4
  252. package/openh264/gradlew +0 -172
  253. package/openh264/meson.build +0 -218
  254. package/openh264/meson_options.txt +0 -1
  255. package/openh264/module/RefCounted.h +0 -141
  256. package/openh264/module/gmp-openh264.cpp +0 -1196
  257. package/openh264/module/targets.mk +0 -14
  258. package/openh264/module/task_utils.h +0 -38
  259. package/openh264/module/task_utils.py +0 -207
  260. package/openh264/module/task_utils_generated.h +0 -2087
  261. package/openh264/openh264.def +0 -7
  262. package/openh264/openh264.pc.in +0 -10
  263. package/openh264/openh264.rc +0 -61
  264. package/openh264/openh264.rc.template +0 -61
  265. package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
  266. package/openh264/res/BA1_FT_C.264 +0 -0
  267. package/openh264/res/BA1_Sony_D.jsv +0 -0
  268. package/openh264/res/BAMQ1_JVC_C.264 +0 -0
  269. package/openh264/res/BAMQ2_JVC_C.264 +0 -0
  270. package/openh264/res/BANM_MW_D.264 +0 -0
  271. package/openh264/res/BASQP1_Sony_C.jsv +0 -0
  272. package/openh264/res/BA_MW_D.264 +0 -0
  273. package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
  274. package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
  275. package/openh264/res/CI1_FT_B.264 +0 -0
  276. package/openh264/res/CI_MW_D.264 +0 -0
  277. package/openh264/res/CVFC1_Sony_C.jsv +0 -0
  278. package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
  279. package/openh264/res/CiscoVT2people_160x96_6fps.yuv +0 -1
  280. package/openh264/res/CiscoVT2people_320x192_12fps.yuv +0 -1
  281. package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +0 -3607
  282. package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
  283. package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
  284. package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
  285. package/openh264/res/Error_I_P.264 +0 -0
  286. package/openh264/res/LS_SVA_D.264 +0 -0
  287. package/openh264/res/MIDR_MW_D.264 +0 -0
  288. package/openh264/res/MPS_MW_A.264 +0 -0
  289. package/openh264/res/MR1_BT_A.h264 +0 -0
  290. package/openh264/res/MR1_MW_A.264 +0 -0
  291. package/openh264/res/MR2_MW_A.264 +0 -0
  292. package/openh264/res/MR2_TANDBERG_E.264 +0 -0
  293. package/openh264/res/NL1_Sony_D.jsv +0 -0
  294. package/openh264/res/NLMQ1_JVC_C.264 +0 -0
  295. package/openh264/res/NLMQ2_JVC_C.264 +0 -0
  296. package/openh264/res/NRF_MW_E.264 +0 -0
  297. package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
  298. package/openh264/res/SVA_BA1_B.264 +0 -0
  299. package/openh264/res/SVA_BA2_D.264 +0 -0
  300. package/openh264/res/SVA_Base_B.264 +0 -0
  301. package/openh264/res/SVA_CL1_E.264 +0 -0
  302. package/openh264/res/SVA_FM1_E.264 +0 -0
  303. package/openh264/res/SVA_NL1_B.264 +0 -0
  304. package/openh264/res/SVA_NL2_E.264 +0 -0
  305. package/openh264/res/SarVui.264 +0 -0
  306. package/openh264/res/Static.264 +0 -0
  307. package/openh264/res/Static_152_100.yuv +0 -1
  308. package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
  309. package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
  310. package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
  311. package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
  312. package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
  313. package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
  314. package/openh264/res/Zhling_1280x720.264 +0 -0
  315. package/openh264/res/jm_1080p_allslice.264 +0 -0
  316. package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
  317. package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
  318. package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
  319. package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
  320. package/openh264/res/test_qcif_cabac.264 +0 -0
  321. package/openh264/res/test_scalinglist_jm.264 +0 -0
  322. package/openh264/res/test_vd_1d.264 +0 -0
  323. package/openh264/res/test_vd_rc.264 +0 -0
  324. package/openh264/run_Test.sh +0 -91
  325. package/openh264/settings.gradle +0 -4
  326. package/openh264/subprojects/gtest.wrap +0 -10
  327. package/openh264/testbin/AutoBuild_Windows_VS2008.bat +0 -59
  328. package/openh264/testbin/CmdLineExample.sh +0 -7
  329. package/openh264/testbin/CmdLineReadMe +0 -22
  330. package/openh264/testbin/layer2.cfg +0 -37
  331. package/openh264/testbin/layer2_arbitrary_res.cfg +0 -37
  332. package/openh264/testbin/layer2_vd.cfg +0 -38
  333. package/openh264/testbin/layer2_vd_rc.cfg +0 -38
  334. package/openh264/testbin/welsenc.cfg +0 -71
  335. package/openh264/testbin/welsenc_arbitrary_res.cfg +0 -70
  336. package/openh264/testbin/welsenc_ios.cfg +0 -71
  337. package/openh264/testbin/welsenc_vd_1d.cfg +0 -70
  338. package/openh264/testbin/welsenc_vd_rc.cfg +0 -69
  339. package/openh264/ut.def +0 -2
@@ -1,728 +0,0 @@
1
- ;*!
2
- ;* \copy
3
- ;* Copyright (c) 2009-2013, Cisco Systems
4
- ;* All rights reserved.
5
- ;*
6
- ;* Redistribution and use in source and binary forms, with or without
7
- ;* modification, are permitted provided that the following conditions
8
- ;* are met:
9
- ;*
10
- ;* * Redistributions of source code must retain the above copyright
11
- ;* notice, this list of conditions and the following disclaimer.
12
- ;*
13
- ;* * Redistributions in binary form must reproduce the above copyright
14
- ;* notice, this list of conditions and the following disclaimer in
15
- ;* the documentation and/or other materials provided with the
16
- ;* distribution.
17
- ;*
18
- ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- ;* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- ;* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
- ;* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
- ;* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
- ;* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
- ;* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
- ;* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
- ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
- ;* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
- ;* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
- ;* POSSIBILITY OF SUCH DAMAGE.
30
- ;*
31
- ;*
32
- ;* expand_picture.asm
33
- ;*
34
- ;* Abstract
35
- ;* mmxext/sse for expand_frame
36
- ;*
37
- ;* History
38
- ;* 09/25/2009 Created
39
- ;*
40
- ;*
41
- ;*************************************************************************/
42
-
43
- %include "asm_inc.asm"
44
-
45
-
46
-
47
- ;***********************************************************************
48
- ; Macros and other preprocessor constants
49
- ;***********************************************************************
50
-
51
- ;***********************************************************************
52
- ; Code
53
- ;***********************************************************************
54
-
55
-
56
-
57
- SECTION .text
58
-
59
-
60
- ;;;;;;;expanding result;;;;;;;
61
-
62
- ;aaaa|attttttttttttttttb|bbbb
63
- ;aaaa|attttttttttttttttb|bbbb
64
- ;aaaa|attttttttttttttttb|bbbb
65
- ;aaaa|attttttttttttttttb|bbbb
66
- ;----------------------------
67
- ;aaaa|attttttttttttttttb|bbbb
68
- ;llll|l r|rrrr
69
- ;llll|l r|rrrr
70
- ;llll|l r|rrrr
71
- ;llll|l r|rrrr
72
- ;llll|l r|rrrr
73
- ;cccc|ceeeeeeeeeeeeeeeed|dddd
74
- ;----------------------------
75
- ;cccc|ceeeeeeeeeeeeeeeed|dddd
76
- ;cccc|ceeeeeeeeeeeeeeeed|dddd
77
- ;cccc|ceeeeeeeeeeeeeeeed|dddd
78
- ;cccc|ceeeeeeeeeeeeeeeed|dddd
79
-
80
- %macro mov_line_8x4_mmx 3 ; dst, stride, mm?
81
- movq [%1], %3
82
- movq [%1+%2], %3
83
- lea %1, [%1+2*%2]
84
- movq [%1], %3
85
- movq [%1+%2], %3
86
- lea %1, [%1+2*%2]
87
- %endmacro
88
-
89
- %macro mov_line_end8x4_mmx 3 ; dst, stride, mm?
90
- movq [%1], %3
91
- movq [%1+%2], %3
92
- lea %1, [%1+2*%2]
93
- movq [%1], %3
94
- movq [%1+%2], %3
95
- lea %1, [%1+%2]
96
- %endmacro
97
-
98
- %macro mov_line_16x4_sse2 4 ; dst, stride, xmm?, u/a
99
- movdq%4 [%1], %3 ; top(bottom)_0
100
- movdq%4 [%1+%2], %3 ; top(bottom)_1
101
- lea %1, [%1+2*%2]
102
- movdq%4 [%1], %3 ; top(bottom)_2
103
- movdq%4 [%1+%2], %3 ; top(bottom)_3
104
- lea %1, [%1+2*%2]
105
- %endmacro
106
-
107
- %macro mov_line_end16x4_sse2 4 ; dst, stride, xmm?, u/a
108
- movdq%4 [%1], %3 ; top(bottom)_0
109
- movdq%4 [%1+%2], %3 ; top(bottom)_1
110
- lea %1, [%1+2*%2]
111
- movdq%4 [%1], %3 ; top(bottom)_2
112
- movdq%4 [%1+%2], %3 ; top(bottom)_3
113
- lea %1, [%1+%2]
114
- %endmacro
115
-
116
- %macro mov_line_32x4_sse2 3 ; dst, stride, xmm?
117
- movdqa [%1], %3 ; top(bottom)_0
118
- movdqa [%1+16], %3 ; top(bottom)_0
119
- movdqa [%1+%2], %3 ; top(bottom)_1
120
- movdqa [%1+%2+16], %3 ; top(bottom)_1
121
- lea %1, [%1+2*%2]
122
- movdqa [%1], %3 ; top(bottom)_2
123
- movdqa [%1+16], %3 ; top(bottom)_2
124
- movdqa [%1+%2], %3 ; top(bottom)_3
125
- movdqa [%1+%2+16], %3 ; top(bottom)_3
126
- lea %1, [%1+2*%2]
127
- %endmacro
128
-
129
- %macro mov_line_end32x4_sse2 3 ; dst, stride, xmm?
130
- movdqa [%1], %3 ; top(bottom)_0
131
- movdqa [%1+16], %3 ; top(bottom)_0
132
- movdqa [%1+%2], %3 ; top(bottom)_1
133
- movdqa [%1+%2+16], %3 ; top(bottom)_1
134
- lea %1, [%1+2*%2]
135
- movdqa [%1], %3 ; top(bottom)_2
136
- movdqa [%1+16], %3 ; top(bottom)_2
137
- movdqa [%1+%2], %3 ; top(bottom)_3
138
- movdqa [%1+%2+16], %3 ; top(bottom)_3
139
- lea %1, [%1+%2]
140
- %endmacro
141
-
142
- %macro exp_top_bottom_sse2 1 ; iPaddingSize [luma(32)/chroma(16)]
143
- ;r2 [width/16(8)]
144
- ;r0 [pSrc +0], r5 [pSrc -width] r1[-stride], 32(16) ;top
145
- ;r3 [pSrc +(h-1)*stride], r4 [pSrc + (h+31)*stride],32(16); bottom
146
-
147
- %if %1 == 32 ; for luma
148
- sar r2, 04h ; width / 16(8) pixels
149
- .top_bottom_loops:
150
- ; top
151
- movdqa xmm0, [r0] ; first line of picture pData
152
- mov_line_16x4_sse2 r5, r1, xmm0, a ; dst, stride, xmm?
153
- mov_line_16x4_sse2 r5, r1, xmm0, a
154
- mov_line_16x4_sse2 r5, r1, xmm0, a
155
- mov_line_16x4_sse2 r5, r1, xmm0, a
156
- mov_line_16x4_sse2 r5, r1, xmm0, a ; dst, stride, xmm?
157
- mov_line_16x4_sse2 r5, r1, xmm0, a
158
- mov_line_16x4_sse2 r5, r1, xmm0, a
159
- mov_line_end16x4_sse2 r5, r1, xmm0, a
160
-
161
- ; bottom
162
- movdqa xmm1, [r3] ; last line of picture pData
163
- mov_line_16x4_sse2 r4, r1, xmm1, a ; dst, stride, xmm?
164
- mov_line_16x4_sse2 r4, r1, xmm1, a
165
- mov_line_16x4_sse2 r4, r1, xmm1, a
166
- mov_line_16x4_sse2 r4, r1, xmm1, a
167
- mov_line_16x4_sse2 r4, r1, xmm1, a ; dst, stride, xmm?
168
- mov_line_16x4_sse2 r4, r1, xmm1, a
169
- mov_line_16x4_sse2 r4, r1, xmm1, a
170
- mov_line_end16x4_sse2 r4, r1, xmm1, a
171
-
172
- lea r0, [r0+16] ; top pSrc
173
- lea r5, [r5+16] ; top dst
174
- lea r3, [r3+16] ; bottom pSrc
175
- lea r4, [r4+16] ; bottom dst
176
- neg r1 ; positive/negative stride need for next loop?
177
-
178
- dec r2
179
- jnz near .top_bottom_loops
180
- %elif %1 == 16 ; for chroma ??
181
- mov r6, r2
182
- sar r2, 04h ; (width / 16) pixels
183
- .top_bottom_loops:
184
- ; top
185
- movdqa xmm0, [r0] ; first line of picture pData
186
- mov_line_16x4_sse2 r5, r1, xmm0, a ; dst, stride, xmm?
187
- mov_line_16x4_sse2 r5, r1, xmm0, a
188
- mov_line_16x4_sse2 r5, r1, xmm0, a
189
- mov_line_end16x4_sse2 r5, r1, xmm0, a
190
-
191
- ; bottom
192
- movdqa xmm1, [r3] ; last line of picture pData
193
- mov_line_16x4_sse2 r4, r1, xmm1, a ; dst, stride, xmm?
194
- mov_line_16x4_sse2 r4, r1, xmm1, a
195
- mov_line_16x4_sse2 r4, r1, xmm1, a
196
- mov_line_end16x4_sse2 r4, r1, xmm1, a
197
-
198
- lea r0, [r0+16] ; top pSrc
199
- lea r5, [r5+16] ; top dst
200
- lea r3, [r3+16] ; bottom pSrc
201
- lea r4, [r4+16] ; bottom dst
202
- neg r1 ; positive/negative stride need for next loop?
203
-
204
- dec r2
205
- jnz near .top_bottom_loops
206
-
207
- ; for remaining 8 bytes
208
- and r6, 0fh ; any 8 bytes left?
209
- test r6, r6
210
- jz near .to_be_continued ; no left to exit here
211
-
212
- ; top
213
- movq mm0, [r0] ; remained 8 byte
214
- mov_line_8x4_mmx r5, r1, mm0 ; dst, stride, mm?
215
- mov_line_8x4_mmx r5, r1, mm0 ; dst, stride, mm?
216
- mov_line_8x4_mmx r5, r1, mm0 ; dst, stride, mm?
217
- mov_line_end8x4_mmx r5, r1, mm0 ; dst, stride, mm?
218
- ; bottom
219
- movq mm1, [r3]
220
- mov_line_8x4_mmx r4, r1, mm1 ; dst, stride, mm?
221
- mov_line_8x4_mmx r4, r1, mm1 ; dst, stride, mm?
222
- mov_line_8x4_mmx r4, r1, mm1 ; dst, stride, mm?
223
- mov_line_end8x4_mmx r4, r1, mm1 ; dst, stride, mm?
224
- WELSEMMS
225
-
226
- .to_be_continued:
227
- %endif
228
- %endmacro
229
-
230
- %macro exp_left_right_sse2 2 ; iPaddingSize [luma(32)/chroma(16)], u/a
231
- ;r6 [height]
232
- ;r0 [pSrc+0] r5[pSrc-32] r1[stride]
233
- ;r3 [pSrc+(w-1)] r4[pSrc+w]
234
-
235
- %if %1 == 32 ; for luma
236
- .left_right_loops:
237
- ; left
238
- movzx r2d, byte [r0] ; pixel pData for left border
239
- SSE2_Copy16Times xmm0, r2d ; dst, tmp, pSrc [generic register name: a/b/c/d]
240
- movdqa [r5], xmm0
241
- movdqa [r5+16], xmm0
242
-
243
- ; right
244
- movzx r2d, byte [r3]
245
- SSE2_Copy16Times xmm1, r2d ; dst, tmp, pSrc [generic register name: a/b/c/d]
246
- movdqa [r4], xmm1
247
- movdqa [r4+16], xmm1
248
-
249
- lea r0, [r0+r1] ; left pSrc
250
- lea r5, [r5+r1] ; left dst
251
- lea r3, [r3+r1] ; right pSrc
252
- lea r4, [r4+r1] ; right dst
253
-
254
- dec r6
255
- jnz near .left_right_loops
256
- %elif %1 == 16 ; for chroma ??
257
- .left_right_loops:
258
- ; left
259
- movzx r2d, byte [r0] ; pixel pData for left border
260
- SSE2_Copy16Times xmm0, r2d ; dst, tmp, pSrc [generic register name: a/b/c/d]
261
- movdqa [r5], xmm0
262
-
263
- ; right
264
- movzx r2d, byte [r3]
265
- SSE2_Copy16Times xmm1, r2d ; dst, tmp, pSrc [generic register name: a/b/c/d]
266
- movdq%2 [r4], xmm1 ; might not be aligned 16 bytes in case chroma planes
267
-
268
- lea r0, [r0+r1] ; left pSrc
269
- lea r5, [r5+r1] ; left dst
270
- lea r3, [r3+r1] ; right pSrc
271
- lea r4, [r4+r1] ; right dst
272
-
273
- dec r6
274
- jnz near .left_right_loops
275
- %endif
276
- %endmacro
277
-
278
- %macro exp_cross_sse2 2 ; iPaddingSize [luma(32)/chroma(16)], u/a
279
- ; top-left: (x)mm3, top-right: (x)mm4, bottom-left: (x)mm5, bottom-right: (x)mm6
280
- ; edi: TL, ebp: TR, eax: BL, ebx: BR, ecx, -stride
281
- ;r3:TL ,r4:TR,r5:BL,r6:BR r1:-stride
282
- %if %1 == 32 ; luma
283
- ; TL
284
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
285
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
286
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
287
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
288
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
289
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
290
- mov_line_32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
291
- mov_line_end32x4_sse2 r3, r1, xmm3 ; dst, stride, xmm?
292
-
293
- ; TR
294
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
295
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
296
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
297
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
298
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
299
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
300
- mov_line_32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
301
- mov_line_end32x4_sse2 r4, r1, xmm4 ; dst, stride, xmm?
302
-
303
- ; BL
304
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
305
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
306
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
307
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
308
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
309
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
310
- mov_line_32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
311
- mov_line_end32x4_sse2 r5, r1, xmm5 ; dst, stride, xmm?
312
-
313
- ; BR
314
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
315
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
316
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
317
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
318
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
319
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
320
- mov_line_32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
321
- mov_line_end32x4_sse2 r6, r1, xmm6 ; dst, stride, xmm?
322
- %elif %1 == 16 ; chroma
323
- ; TL
324
- mov_line_16x4_sse2 r3, r1, xmm3, a ; dst, stride, xmm?
325
- mov_line_16x4_sse2 r3, r1, xmm3, a ; dst, stride, xmm?
326
- mov_line_16x4_sse2 r3, r1, xmm3, a ; dst, stride, xmm?
327
- mov_line_end16x4_sse2 r3, r1, xmm3, a ; dst, stride, xmm?
328
-
329
- ; TR
330
- mov_line_16x4_sse2 r4, r1, xmm4, %2 ; dst, stride, xmm?
331
- mov_line_16x4_sse2 r4, r1, xmm4, %2 ; dst, stride, xmm?
332
- mov_line_16x4_sse2 r4, r1, xmm4, %2 ; dst, stride, xmm?
333
- mov_line_end16x4_sse2 r4, r1, xmm4, %2 ; dst, stride, xmm?
334
-
335
- ; BL
336
- mov_line_16x4_sse2 r5, r1, xmm5, a ; dst, stride, xmm?
337
- mov_line_16x4_sse2 r5, r1, xmm5, a ; dst, stride, xmm?
338
- mov_line_16x4_sse2 r5, r1, xmm5, a ; dst, stride, xmm?
339
- mov_line_end16x4_sse2 r5, r1, xmm5, a ; dst, stride, xmm?
340
-
341
- ; BR
342
- mov_line_16x4_sse2 r6, r1, xmm6, %2 ; dst, stride, xmm?
343
- mov_line_16x4_sse2 r6, r1, xmm6, %2 ; dst, stride, xmm?
344
- mov_line_16x4_sse2 r6, r1, xmm6, %2 ; dst, stride, xmm?
345
- mov_line_end16x4_sse2 r6, r1, xmm6, %2 ; dst, stride, xmm?
346
- %endif
347
- %endmacro
348
-
349
- ;***********************************************************************----------------
350
- ; void ExpandPictureLuma_sse2( uint8_t *pDst,
351
- ; const int32_t iStride,
352
- ; const int32_t iWidth,
353
- ; const int32_t iHeight );
354
- ;***********************************************************************----------------
355
- WELS_EXTERN ExpandPictureLuma_sse2
356
-
357
- push r4
358
- push r5
359
- push r6
360
-
361
- %assign push_num 3
362
- LOAD_4_PARA
363
- PUSH_XMM 7
364
-
365
- SIGN_EXTENSION r1, r1d
366
- SIGN_EXTENSION r2, r2d
367
- SIGN_EXTENSION r3, r3d
368
-
369
- ;also prepare for cross border pData top-left:xmm3
370
-
371
- movzx r6d,byte[r0]
372
- SSE2_Copy16Times xmm3,r6d ;xmm3: pSrc[0]
373
-
374
- neg r1
375
- lea r5,[r0+r1] ;last line of top border r5= dst top pSrc[-stride]
376
- neg r1
377
-
378
- push r3
379
-
380
-
381
- dec r3 ;h-1
382
- imul r3,r1 ;(h-1)*stride
383
- lea r3,[r0+r3] ;pSrc[(h-1)*stride] r3 = src bottom
384
-
385
- mov r6,r1 ;r6 = stride
386
- sal r6,05h ;r6 = 32*stride
387
- lea r4,[r3+r6] ;r4 = dst bottom
388
-
389
- ;also prepare for cross border data: bottom-left with xmm5,bottom-right xmm6
390
-
391
- movzx r6d,byte [r3] ;bottom-left
392
- SSE2_Copy16Times xmm5,r6d
393
-
394
- lea r6,[r3+r2-1]
395
- movzx r6d,byte [r6]
396
- SSE2_Copy16Times xmm6,r6d ;bottom-right
397
-
398
- neg r1 ;r1 = -stride
399
-
400
- push r0
401
- push r1
402
- push r2
403
-
404
- exp_top_bottom_sse2 32
405
-
406
- ; for both left and right border
407
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
408
-
409
- pop r2
410
- pop r1
411
- pop r0
412
-
413
- lea r5,[r0-32] ;left border dst luma =32 chroma = -16
414
-
415
- lea r3,[r0+r2-1] ;right border src
416
- lea r4,[r3+1] ;right border dst
417
-
418
- ;prepare for cross border data: top-rigth with xmm4
419
- movzx r6d,byte [r3] ;top -rigth
420
- SSE2_Copy16Times xmm4,r6d
421
-
422
- neg r1 ;r1 = stride
423
-
424
-
425
- pop r6 ; r6 = height
426
-
427
-
428
-
429
- push r0
430
- push r1
431
- push r2
432
- push r6
433
-
434
- exp_left_right_sse2 32,a
435
-
436
- pop r6
437
- pop r2
438
- pop r1
439
- pop r0
440
-
441
- ; for cross border [top-left, top-right, bottom-left, bottom-right]
442
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
443
- ; have done xmm3,..,xmm6 cross pData initialization above, perform pading as below, To be continued..
444
-
445
- neg r1 ;r1 = -stride
446
- lea r3,[r0-32]
447
- lea r3,[r3+r1] ;last line of top-left border
448
-
449
- lea r4,[r0+r2] ;psrc +width
450
- lea r4,[r4+r1] ;psrc +width -stride
451
-
452
-
453
- neg r1 ;r1 = stride
454
- add r6,32 ;height +32(16) ,luma = 32, chroma = 16
455
- imul r6,r1
456
-
457
- lea r5,[r3+r6] ;last line of bottom-left border
458
- lea r6,[r4+r6] ;last line of botoom-right border
459
-
460
- neg r1 ; r1 = -stride
461
-
462
- ; for left & right border expanding
463
- exp_cross_sse2 32,a
464
-
465
- POP_XMM
466
- LOAD_4_PARA_POP
467
-
468
- pop r6
469
- pop r5
470
- pop r4
471
-
472
- %assign push_num 0
473
-
474
-
475
- ret
476
-
477
- ;***********************************************************************----------------
478
- ; void ExpandPictureChromaAlign_sse2( uint8_t *pDst,
479
- ; const int32_t iStride,
480
- ; const int32_t iWidth,
481
- ; const int32_t iHeight );
482
- ;***********************************************************************----------------
483
- WELS_EXTERN ExpandPictureChromaAlign_sse2
484
-
485
- push r4
486
- push r5
487
- push r6
488
-
489
- %assign push_num 3
490
- LOAD_4_PARA
491
- PUSH_XMM 7
492
-
493
- SIGN_EXTENSION r1,r1d
494
- SIGN_EXTENSION r2,r2d
495
- SIGN_EXTENSION r3,r3d
496
-
497
- ;also prepare for cross border pData top-left:xmm3
498
-
499
- movzx r6d,byte [r0]
500
- SSE2_Copy16Times xmm3,r6d ;xmm3: pSrc[0]
501
-
502
- neg r1
503
- lea r5,[r0+r1] ;last line of top border r5= dst top pSrc[-stride]
504
- neg r1
505
-
506
- push r3
507
-
508
-
509
- dec r3 ;h-1
510
- imul r3,r1 ;(h-1)*stride
511
- lea r3,[r0+r3] ;pSrc[(h-1)*stride] r3 = src bottom
512
-
513
- mov r6,r1 ;r6 = stride
514
- sal r6,04h ;r6 = 32*stride
515
- lea r4,[r3+r6] ;r4 = dst bottom
516
-
517
- ;also prepare for cross border data: bottom-left with xmm5,bottom-right xmm6
518
-
519
- movzx r6d,byte [r3] ;bottom-left
520
- SSE2_Copy16Times xmm5,r6d
521
-
522
- lea r6,[r3+r2-1]
523
- movzx r6d,byte [r6]
524
- SSE2_Copy16Times xmm6,r6d ;bottom-right
525
-
526
- neg r1 ;r1 = -stride
527
-
528
- push r0
529
- push r1
530
- push r2
531
-
532
- exp_top_bottom_sse2 16
533
-
534
- ; for both left and right border
535
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
536
-
537
- pop r2
538
- pop r1
539
- pop r0
540
-
541
- lea r5,[r0-16] ;left border dst luma =32 chroma = -16
542
-
543
- lea r3,[r0+r2-1] ;right border src
544
- lea r4,[r3+1] ;right border dst
545
-
546
- ;prepare for cross border data: top-rigth with xmm4
547
- movzx r6d,byte [r3] ;top -rigth
548
- SSE2_Copy16Times xmm4,r6d
549
-
550
- neg r1 ;r1 = stride
551
-
552
-
553
- pop r6 ; r6 = height
554
-
555
-
556
-
557
- push r0
558
- push r1
559
- push r2
560
- push r6
561
- exp_left_right_sse2 16,a
562
-
563
- pop r6
564
- pop r2
565
- pop r1
566
- pop r0
567
-
568
- ; for cross border [top-left, top-right, bottom-left, bottom-right]
569
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
570
- ; have done xmm3,..,xmm6 cross pData initialization above, perform pading as below, To be continued..
571
-
572
- neg r1 ;r1 = -stride
573
- lea r3,[r0-16]
574
- lea r3,[r3+r1] ;last line of top-left border
575
-
576
- lea r4,[r0+r2] ;psrc +width
577
- lea r4,[r4+r1] ;psrc +width -stride
578
-
579
-
580
- neg r1 ;r1 = stride
581
- add r6,16 ;height +32(16) ,luma = 32, chroma = 16
582
- imul r6,r1
583
-
584
- lea r5,[r3+r6] ;last line of bottom-left border
585
- lea r6,[r4+r6] ;last line of botoom-right border
586
-
587
- neg r1 ; r1 = -stride
588
-
589
- ; for left & right border expanding
590
- exp_cross_sse2 16,a
591
-
592
- POP_XMM
593
- LOAD_4_PARA_POP
594
-
595
- pop r6
596
- pop r5
597
- pop r4
598
-
599
- %assign push_num 0
600
-
601
-
602
- ret
603
-
604
- ;***********************************************************************----------------
605
- ; void ExpandPictureChromaUnalign_sse2( uint8_t *pDst,
606
- ; const int32_t iStride,
607
- ; const int32_t iWidth,
608
- ; const int32_t iHeight );
609
- ;***********************************************************************----------------
610
- WELS_EXTERN ExpandPictureChromaUnalign_sse2
611
- push r4
612
- push r5
613
- push r6
614
-
615
- %assign push_num 3
616
- LOAD_4_PARA
617
- PUSH_XMM 7
618
-
619
- SIGN_EXTENSION r1,r1d
620
- SIGN_EXTENSION r2,r2d
621
- SIGN_EXTENSION r3,r3d
622
-
623
- ;also prepare for cross border pData top-left:xmm3
624
-
625
- movzx r6d,byte [r0]
626
- SSE2_Copy16Times xmm3,r6d ;xmm3: pSrc[0]
627
-
628
- neg r1
629
- lea r5,[r0+r1] ;last line of top border r5= dst top pSrc[-stride]
630
- neg r1
631
-
632
- push r3
633
-
634
-
635
- dec r3 ;h-1
636
- imul r3,r1 ;(h-1)*stride
637
- lea r3,[r0+r3] ;pSrc[(h-1)*stride] r3 = src bottom
638
-
639
- mov r6,r1 ;r6 = stride
640
- sal r6,04h ;r6 = 32*stride
641
- lea r4,[r3+r6] ;r4 = dst bottom
642
-
643
- ;also prepare for cross border data: bottom-left with xmm5,bottom-right xmm6
644
-
645
- movzx r6d,byte [r3] ;bottom-left
646
- SSE2_Copy16Times xmm5,r6d
647
-
648
- lea r6,[r3+r2-1]
649
- movzx r6d,byte [r6]
650
- SSE2_Copy16Times xmm6,r6d ;bottom-right
651
-
652
- neg r1 ;r1 = -stride
653
-
654
- push r0
655
- push r1
656
- push r2
657
-
658
- exp_top_bottom_sse2 16
659
-
660
- ; for both left and right border
661
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
662
-
663
- pop r2
664
- pop r1
665
- pop r0
666
-
667
- lea r5,[r0-16] ;left border dst luma =32 chroma = -16
668
-
669
- lea r3,[r0+r2-1] ;right border src
670
- lea r4,[r3+1] ;right border dst
671
-
672
- ;prepare for cross border data: top-rigth with xmm4
673
- movzx r6d,byte [r3] ;top -rigth
674
- SSE2_Copy16Times xmm4,r6d
675
-
676
- neg r1 ;r1 = stride
677
-
678
-
679
- pop r6 ; r6 = height
680
-
681
-
682
-
683
- push r0
684
- push r1
685
- push r2
686
- push r6
687
- exp_left_right_sse2 16,u
688
-
689
- pop r6
690
- pop r2
691
- pop r1
692
- pop r0
693
-
694
- ; for cross border [top-left, top-right, bottom-left, bottom-right]
695
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
696
- ; have done xmm3,..,xmm6 cross pData initialization above, perform pading as below, To be continued..
697
-
698
- neg r1 ;r1 = -stride
699
- lea r3,[r0-16]
700
- lea r3,[r3+r1] ;last line of top-left border
701
-
702
- lea r4,[r0+r2] ;psrc +width
703
- lea r4,[r4+r1] ;psrc +width -stride
704
-
705
-
706
- neg r1 ;r1 = stride
707
- add r6,16 ;height +32(16) ,luma = 32, chroma = 16
708
- imul r6,r1
709
-
710
- lea r5,[r3+r6] ;last line of bottom-left border
711
- lea r6,[r4+r6] ;last line of botoom-right border
712
-
713
- neg r1 ; r1 = -stride
714
-
715
- ; for left & right border expanding
716
- exp_cross_sse2 16,u
717
-
718
- POP_XMM
719
- LOAD_4_PARA_POP
720
-
721
- pop r6
722
- pop r5
723
- pop r4
724
-
725
- %assign push_num 0
726
-
727
-
728
- ret