Alan Kelly
dc57762cb4
libswscale/x86/swscale: Only call ff_yuv2yuvX functions if the input size is > 0
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-04-01 20:47:52 +02:00
Andreas Rheinhardt
c23a5523b5
swscale/x86/swscale: Remove unused ASM constants
...
The last user of g15Mask, r15Mask, g16Mask and r16Mask was disabled
in 77a416e8aab77058b542030870fd7178b62d2a62 and finally removed in
36e8de07ed62609df45d064b56501e3084d25723; b15Mask and b16Mask were
apparently always unused (except for in_asm_used_var_warning_killer,
a function that only existed to make the compiler not optimize ASM
constants away).
w10 is unused since d604bab901f6dfaaad672ef2164e42b1f350474c, w02
since ef423a661818f3c0d8206a2abbc65ff555cc0c67.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-02-24 09:47:54 +01:00
James Almer
c00567647e
swscale/x86/swscale: fix mix of inline and external function definitions
...
This includes removing pointless static function forward declarations.
Signed-off-by: James Almer <jamrial@gmail.com>
2021-02-18 18:47:42 -03:00
James Almer
c2bf1dcace
swscale/x86/swscale: fix compilation with old yasm
...
Where AVX2 may not be supported.
Signed-off-by: James Almer <jamrial@gmail.com>
2021-02-17 21:09:36 -03:00
Alan Kelly
554c2bc708
swscale: move yuv2yuvX_sse3 to yasm, unrolls main loop
...
And other small optimizations for ~20% speedup.
2021-02-17 21:21:03 +01:00
Anton Khirnov
e15371061d
lavu/mem: move the DECLARE_ALIGNED macro family to mem_internal on next+1 bump
...
They are not properly namespaced and not intended for public use.
2021-01-01 14:14:57 +01:00
Nelson Gomez
bc01337db4
swscale/x86/output: add AVX2 version of yuv2nv12cX
...
256 bits is just wide enough to fit all the operands needed to vectorize
the software implementation, but AVX2 is needed to for a couple of
instructions like cross-lane permutation.
Output is bit-for-bit identical to C.
Signed-off-by: Nelson Gomez <nelson.gomez@microsoft.com>
2020-06-14 16:34:07 +01:00
Ruiling Song
4700f7d6fc
swscale/swscale: remove useless code
...
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-04-03 00:58:07 +02:00
Ting Fu
e934194b6a
libswscale/x86/yuv2rgb: Change inline assembly into nasm code
...
The original inline assembly and nasm code have the same fps when called by command.
NASM code almost has no impact on the perfromance.
Signed-off-by: Ting Fu <ting.fu@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-02-05 17:41:59 +01:00
Andreas Rheinhardt
736c7c20e7
swscale/x86/swscale: Fix undefined left shifts of negative numbers
...
This affected many FATE-tests: The number of failing tests went down
from 663 to 344. (Both numbers exclude tests that failed because of
unaligned accesses in code that is inside #if HAVE_FAST_UNALIGNED.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-28 17:24:32 +02:00
Thomas Köppe
43171a2a73
Fix missing used attribute for inline assembly variables
...
Variables used in inline assembly need to be marked with attribute((used)).
Static constants already were, via the define of DECLARE_ASM_CONST.
But DECLARE_ALIGNED does not add this attribute, and some of the variables
defined with it are const only used in inline assembly, and therefore
appeared dead. This change adds a macro DECLARE_ASM_ALIGNED that marks
variables as used.
This change makes FFMPEG work with Clang's ThinLTO.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-13 03:58:34 +01:00
Timo Rothenpieler
99882d05a6
swscale: add support for P010LE/BE output
2016-08-31 13:19:46 +02:00
Matthieu Bouron
9eb3da2f99
asm: FF_-prefix internal macros used in inline assembly
...
See merge commit '39d6d3618d48625decaff7d9bdbb45b44ef2a805'.
2016-06-27 17:21:18 +02:00
Hendrik Leppkes
c142dc203e
Merge commit 'dc40a70c5755bccfb1a1349639943e1f408bea50'
...
* commit 'dc40a70c5755bccfb1a1349639943e1f408bea50':
Drop unnecessary libavutil/x86/asm.h #includes
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:53:00 +02:00
Diego Biurrun
dc40a70c57
Drop unnecessary libavutil/x86/asm.h #includes
2016-05-28 19:18:26 +02:00
Pedro Arthur
6de58b4903
swscale: cleanup unused code
...
Removed previous swscale code under '#ifndef NEW_FILTER'
and removed unused fields of SwsContext
2016-03-31 16:36:16 -03:00
Hendrik Leppkes
5d8e836d0e
Replace all remaining occurances of step/depth_minus1 and offset_plus1
2015-09-08 17:10:48 +02:00
Pedro Arthur
62d176de12
swscale: refactor vertical scaler
2015-08-19 10:43:52 -03:00
Pedro Arthur
ed80dec621
swscale: fixed compiler warnings
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 22:56:50 +02:00
Pedro Arthur
e0a3173a94
swscale: refactor horizontal scaling
...
+ split color conversion from scaling
- disabled gamma correction, until it's refactored too
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 01:33:32 +02:00
Michael Niedermayer
54e64eaf68
swscale/x86/swscale: Fix warning about loosing significant bits in cast
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 15:09:04 +02:00
Michael Niedermayer
ae20682f6b
swscale: Add prefix to updateMMXDitherTables()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-27 19:23:46 +01:00
Kieran Kunhya
b546023b93
swscale: fix yuv2yuvX_8 assembly on x86
...
use_mmx_vfilter check/fix by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09 23:52:17 +01:00
Vitor Sessak
55d11d277b
swscale/x86: do not expect registers to be preserved across inline ASM blocks
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 00:03:29 +02:00
Michael Niedermayer
4c8bc6fdee
Merge commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5'
...
* commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5':
avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8
Conflicts:
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/raw.c
libavutil/pixdesc.c
libavutil/pixfmt.h
libavutil/version.h
libswscale/swscale_internal.h
libswscale/swscale_unscaled.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:48:00 +02:00
Vittorio Giovara
e96c3b81ca
avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8
...
The rationale is that you have a packed format in form
<greyscale sample> <alpha sample> <greyscale sample> <alpha sample>
and shortening greyscale to 'G' might make one thing about Greenscale instead.
An alias pixel format and color space name are provided for compatibility.
2014-08-04 12:55:08 +01:00
Carl Eugen Hoyos
891307b4d1
s86/scale: Do not return the result of a (void) function from a void function.
...
Fixes compilation with Sun C 5.12.
Reported by Bradley Mitchell in ticket #3649 .
2014-06-19 18:45:13 +02:00
Michael Niedermayer
2f955d572b
swscale/x86/swscale: remove unused constants
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 00:06:45 +01:00
Michael Niedermayer
6c47a4e972
swscale/x86/swscale: fix missing xmm clobbers in yuv2yuvX_sse3()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 22:52:22 +01:00
Michael Niedermayer
b148a39d55
Merge commit '46bacb5cc6169ff5e8e982495c4925467c1d8bb7'
...
* commit '46bacb5cc6169ff5e8e982495c4925467c1d8bb7':
x86: Consistently use cpu flag detection macros in places that still miss it
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:44:59 +01:00
Diego Biurrun
46bacb5cc6
x86: Consistently use cpu flag detection macros in places that still miss it
2014-01-14 00:04:58 +01:00
Michael Niedermayer
8733b363ac
Merge commit 'c16bfb147df8a9d350e8a0dbc01937b78faf5949'
...
* commit 'c16bfb147df8a9d350e8a0dbc01937b78faf5949':
swscale: x86: Consistently use lowercase function name suffixes
Conflicts:
libswscale/x86/rgb2rgb.c
libswscale/x86/swscale.c
See: 1de064e21e7f1bbdd2347ba8967089a18669fcf8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 12:10:40 +01:00
Diego Biurrun
c16bfb147d
swscale: x86: Consistently use lowercase function name suffixes
2013-11-22 23:01:51 +01:00
Michael Niedermayer
db6b389c7f
Merge commit 'a519583991c38d38503ab08357716513facc5725'
...
* commit 'a519583991c38d38503ab08357716513facc5725':
swscale: x86: Hide arch-specific initialization details
Conflicts:
libswscale/x86/Makefile
libswscale/x86/swscale.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 14:42:34 +02:00
Diego Biurrun
a519583991
swscale: x86: Hide arch-specific initialization details
...
Also give consistent names to init functions.
2013-08-28 23:59:24 +02:00
Michael Niedermayer
920dd84bf1
sws/x86: remove 8bit rgb2yuv coefficient case for rgb24toyv12 special converter
...
This simplifies the code and improves quality at the expense of a slight
slowdown of a rarely used function (no fate test uses it).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-15 03:19:52 +02:00
Michael Niedermayer
63a97d5674
Merge commit 'b6649ab5037fb55f78c2606f3d23cea0867cdeaa'
...
* commit 'b6649ab5037fb55f78c2606f3d23cea0867cdeaa':
cosmetics: Remove unnecessary extern keywords from function declarations
Conflicts:
libswscale/x86/swscale.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-28 11:20:41 +01:00
Diego Biurrun
b6649ab503
cosmetics: Remove unnecessary extern keywords from function declarations
2013-03-27 14:21:45 +01:00
Michael Niedermayer
5e947aeb59
sws/x86: improve rounding for yuv2yuvX
...
This tries to compensate for the errors introduced by
the rounding of pmulhw
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 23:33:04 +01:00
Michael Niedermayer
a1b5c9634e
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
x86: mmx2 ---> mmxext in asm constructs
Conflicts:
libavcodec/x86/h264_chromamc_10bit.asm
libavcodec/x86/h264_deblock.asm
libavcodec/x86/h264dsp_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 12:34:30 +01:00
Diego Biurrun
26301caaa1
x86: mmx2 ---> mmxext in asm constructs
2012-11-14 00:58:51 +01:00
Michael Niedermayer
add7513e64
Merge commit 'fa8fcab1e0d31074c0644c4ac5194474c6c26415'
...
* commit 'fa8fcab1e0d31074c0644c4ac5194474c6c26415':
x86: h264_chromamc_10bit: drop pointless PAVG %define
x86: mmx2 ---> mmxext in function names
swscale: do not forget to swap data in formats with different endianness
Conflicts:
libavcodec/x86/dsputil_mmx.c
libavfilter/x86/gradfun.c
libswscale/input.c
libswscale/utils.c
libswscale/x86/swscale.c
tests/ref/lavfi/pixfmts_scale
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 13:11:51 +01:00
Diego Biurrun
d8eda37080
x86: mmx2 ---> mmxext in function names
2012-10-31 17:53:57 +01:00
Michael Niedermayer
78ec407d5a
Merge commit '652f5185945c8405fc57aed353286858df8d066f'
...
* commit '652f5185945c8405fc57aed353286858df8d066f':
x86: mmx2 ---> mmxext in comments and messages
Conflicts:
libswscale/x86/swscale_template.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:02:35 +01:00
Diego Biurrun
652f518594
x86: mmx2 ---> mmxext in comments and messages
2012-10-31 00:37:42 +01:00
Hendrik Leppkes
79393a8363
Replace usage of the deprecated av_pix_fmt_descriptors array with av_pix_fmt_desc_get
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 18:00:13 +02:00
Michael Niedermayer
ac627b3d38
Merge commit '716d413c13981da15323c7a3821860536eefdbbb'
...
* commit '716d413c13981da15323c7a3821860536eefdbbb':
Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat
Conflicts:
doc/examples/muxing.c
ffmpeg.h
ffmpeg_filter.c
ffmpeg_opt.c
ffplay.c
ffprobe.c
libavcodec/8bps.c
libavcodec/aasc.c
libavcodec/aura.c
libavcodec/avcodec.h
libavcodec/avs.c
libavcodec/bfi.c
libavcodec/bmp.c
libavcodec/bmpenc.c
libavcodec/c93.c
libavcodec/cscd.c
libavcodec/cyuv.c
libavcodec/dpx.c
libavcodec/dpxenc.c
libavcodec/eatgv.c
libavcodec/escape124.c
libavcodec/ffv1.c
libavcodec/flashsv.c
libavcodec/fraps.c
libavcodec/h264.c
libavcodec/huffyuv.c
libavcodec/iff.c
libavcodec/imgconvert.c
libavcodec/indeo3.c
libavcodec/kmvc.c
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/libx264.c
libavcodec/ljpegenc.c
libavcodec/mjpegdec.c
libavcodec/mjpegenc.c
libavcodec/motionpixels.c
libavcodec/mpeg12.c
libavcodec/mpeg12enc.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo_enc.c
libavcodec/pamenc.c
libavcodec/pcxenc.c
libavcodec/pgssubdec.c
libavcodec/pngdec.c
libavcodec/pngenc.c
libavcodec/pnm.c
libavcodec/pnmdec.c
libavcodec/pnmenc.c
libavcodec/ptx.c
libavcodec/qdrw.c
libavcodec/qpeg.c
libavcodec/qtrleenc.c
libavcodec/raw.c
libavcodec/rawdec.c
libavcodec/rl2.c
libavcodec/sgidec.c
libavcodec/sgienc.c
libavcodec/snowdec.c
libavcodec/snowenc.c
libavcodec/sunrast.c
libavcodec/targa.c
libavcodec/targaenc.c
libavcodec/tiff.c
libavcodec/tiffenc.c
libavcodec/tmv.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/vb.c
libavcodec/vp3.c
libavcodec/wnv1.c
libavcodec/xl.c
libavcodec/xwddec.c
libavcodec/xwdenc.c
libavcodec/yop.c
libavdevice/v4l2.c
libavdevice/x11grab.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/buffersrc.c
libavfilter/drawutils.c
libavfilter/formats.c
libavfilter/src_movie.c
libavfilter/vf_ass.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_format.c
libavfilter/vf_hflip.c
libavfilter/vf_lut.c
libavfilter/vf_overlay.c
libavfilter/vf_pad.c
libavfilter/vf_scale.c
libavfilter/vf_transpose.c
libavfilter/vf_yadif.c
libavfilter/video.c
libavfilter/vsrc_testsrc.c
libavformat/movenc.c
libavformat/mxf.h
libavformat/utils.c
libavformat/yuv4mpeg.c
libavutil/imgutils.c
libavutil/pixdesc.c
libswscale/input.c
libswscale/output.c
libswscale/swscale_internal.h
libswscale/swscale_unscaled.c
libswscale/utils.c
libswscale/x86/swscale_template.c
libswscale/x86/yuv2rgb.c
libswscale/x86/yuv2rgb_template.c
libswscale/yuv2rgb.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 21:06:57 +02:00
Anton Khirnov
716d413c13
Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat
2012-10-08 07:13:26 +02:00
Clément Bœsch
178ecfc257
swscale: fix To{Y,UV} extern prototypes.
...
This fix a bunch of "assignment from incompatible pointer type" warnings
with GCC.
2012-09-30 20:45:32 +02:00
Michael Niedermayer
ef912134f0
x86/swscale: use unsigned to build SIMD values to avoid signed overflow
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 03:02:51 +02:00