summaryrefslogtreecommitdiffstats
path: root/libswscale/x86/rgb2rgb_template.c
Commit message (Collapse)AuthorAgeFilesLines
* swscale/x86/rgb2rgb: DetemplatizeAndreas Rheinhardt2024-06-091-2315/+0
| | | | | | | | Every function in rgb2rgb_template.c is only compiled exactly once; there is no overlap at all between the MMXEXT and the SSE2 functions, so detemplatize it. Signed-off-by: Andreas Rheinhardt <[email protected]>
* swscale/x86/rgb2rgb_template: Remove unused uyvytoyv12Andreas Rheinhardt2024-06-091-104/+0
| | | | Signed-off-by: Andreas Rheinhardt <[email protected]>
* swscale/x86/rgb2rgb: Don't unnecessarily check for inline ASMAndreas Rheinhardt2024-06-091-30/+0
| | | | | | | The SSE2 and AVX versions of deinterleaveBytes are external ASM. Move them out of the inline ASM template. Signed-off-by: Andreas Rheinhardt <[email protected]>
* swscale/x86/rgb2rgb_template: Remove unnecessary SFENCEAndreas Rheinhardt2024-06-091-4/+0
| | | | | | | The ff_nv12ToUV_* functions don't use non-temporal stores at all. Signed-off-by: Andreas Rheinhardt <[email protected]>
* swscale/x86/rgb_2_rgb: Add opaque pointer to missed definitions of ff_nv12ToUVAlfred Wingate2023-12-021-2/+3
| | | | | | | | | | | Opaque parameters were previously added to the original definition of ff_nv12ToUV, leading to gcc noticing a type mismatch with -Wlto-type-mismatch. https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/f2de911818fbd7e73343803626b697fd0c968121 https://bugs.gentoo.org/907484 Signed-off-by: Alfred Wingate <[email protected]> Signed-off-by: Anton Khirnov <[email protected]>
* swscale/x86/rgb2rgb: Remove obsolete MMX, 3dnow functionsAndreas Rheinhardt2022-06-221-108/+15
| | | | | | | | | | | x64 always has MMX, MMXEXT, SSE and SSE2 and this means that some functions for MMX, MMXEXT and 3dnow are always overridden by other functions (unless one e.g. explicitly disables SSE2) for x64. So given that the only systems that benefit from these functions are truely ancient 32bit x86s they are removed. Signed-off-by: Andreas Rheinhardt <[email protected]>
* swscale/x86/rgb2rgb : port shuffle 2103 mmxext to external asm and remove ↵Martin Vignali2018-10-131-48/+0
| | | | inline asm version
* swscale/x86/rgb2rgb : remove mmx version for shuffle2103Martin Vignali2018-10-131-19/+4
|
* build: Generalize yasm/nasm-related variable namesDiego Biurrun2017-06-211-2/+2
| | | | | | | | None of them are specific to the YASM assembler. (Cherry-picked from libav commit 39e208f4d4756367c7cd2d581847e0c1b8a429c1) Signed-off-by: James Almer <[email protected]>
* asm: FF_-prefix internal macros used in inline assemblyMatthieu Bouron2016-06-271-193/+193
| | | | See merge commit '39d6d3618d48625decaff7d9bdbb45b44ef2a805'.
* avutil: Rename FF_CEIL_COMPAT to AV_CEIL_COMPATDerek Buitenhuis2016-01-271-4/+4
| | | | | | | | | | Libav, for some reason, merged this as a public API function. This will aid in future merges. A define is left for backwards compat, just in case some person used it, since it is in a public header. Signed-off-by: Derek Buitenhuis <[email protected]>
* swscale/x86/rgb2rgb_template: Fix planar2x() for short widthMichael Niedermayer2016-01-171-1/+8
| | | | | | | Fixes: 451b3e0cf956c0bd2f27ed753ac24050/asan_heap-oob_2873c01_3231_7ed10a9464d15f0d57277f5917c566a8.AVI Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/x86/rgb2rgb_template: Fallback to mmx in interleaveBytes() if the ↵Michael Niedermayer2015-12-151-8/+6
| | | | | | | | alignment is insufficient for SSE* This also as a sideeffect fixes the non aligned case Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/x86/rgb2rgb_template: Do not crash on misaligend strideMichael Niedermayer2015-12-151-1/+4
| | | | | | Fixes Ticket5013 Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/x86/rgb2rgb_template: fix signedness of v in ↵James Almer2015-06-231-1/+1
| | | | | | | shuffle_bytes_2103_{mmx,mmxext} Reviewed-by: Michael Niedermayer <[email protected]> Signed-off-by: James Almer <[email protected]>
* swscale/x86/rgb2rgb_template: don't call emms on sse2/avx functionsJames Almer2015-06-231-0/+4
| | | | | Reviewed-by: Michael Niedermayer <[email protected]> Signed-off-by: James Almer <[email protected]>
* swscale/x86/rgb2rgb_template: add missing xmm clobbersJames Almer2015-06-231-1/+1
| | | | | Reviewed-by: Michael Niedermayer <[email protected]> Signed-off-by: James Almer <[email protected]>
* swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 outputMichael Niedermayer2014-12-031-0/+1
| | | | | | Fixes Ticket4151 Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/x86/rgb2rgb_template: handle the first 2 lines with C in rgb24toyv12_*()Michael Niedermayer2014-11-201-0/+10
| | | | | | | This avoids out of array accesses Should fix Ticket3451 Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/x86/rgb2rgb_template: fix 1 byte overread in yuyvtoyuv420 and ↵Michael Niedermayer2014-07-131-2/+40
| | | | | | | | uyvytoyuv420 might fix ticket 3410 Signed-off-by: Michael Niedermayer <[email protected]>
* Merge commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f'Michael Niedermayer2014-03-261-0/+2
|\ | | | | | | | | | | | | * commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f': Add missing headers to make template files compile (more) standalone Merged-by: Michael Niedermayer <[email protected]>
| * Add missing headers to make template files compile (more) standaloneDiego Biurrun2014-03-261-0/+2
| |
* | Automatically change MANGLE() into named inline asm operands when direct ↵Matt Oliver2014-03-181-0/+11
| | | | | | | | | | | | | | | | symbol reference in inline asm are not supported. This is part of the patch-set for intel C inline asm on windows support Signed-off-by: Michael Niedermayer <[email protected]>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2014-01-211-6/+7
|\| | | | | | | | | | | | | | | | | | | | | * qatar/master: rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytes Conflicts: libswscale/x86/rgb2rgb_template.c See: 3033cd7555921242cbdc06d0d8aee9f8925d6a3c Merged-by: Michael Niedermayer <[email protected]>
| * rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytesMichael Niedermayer2014-01-211-0/+27
| | | | | | | | Signed-off-by: Anton Khirnov <[email protected]>
* | Merge commit '7597e6efe492cb2449bb771054d64cc7fdf62ff5'Michael Niedermayer2014-01-211-2/+2
|\| | | | | | | | | | | | | | | | | | | | | * commit '7597e6efe492cb2449bb771054d64cc7fdf62ff5': swscale/x86/rgb2rgb: add support for AVX Conflicts: libswscale/x86/rgb2rgb_template.c See: 4729b529e60fb99356a1d9e13793835af50b3e87 Merged-by: Michael Niedermayer <[email protected]>
| * swscale/x86/rgb2rgb: add support for AVXMichael Niedermayer2014-01-211-4/+4
| | | | | | | | | | | | This does not yet include any actual AVX code Signed-off-by: Anton Khirnov <[email protected]>
* | swscale/x86/rgb2rgb_template: try to fix build failure with avx disabledMichael Niedermayer2013-12-161-0/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | swscale/x86/rgb2rgb_template: try to fix build without AVXMichael Niedermayer2013-12-141-0/+2
| | | | | | | | | | Found-by: iive Signed-off-by: Michael Niedermayer <[email protected]>
* | swscale/x86: SIMD deinterleaveBytes() depends on YASMMichael Niedermayer2013-11-191-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | swscale/x86/rgb2rgb_template: add mmx/sse2/avx optimized deinterleaveBytesMichael Niedermayer2013-11-191-0/+29
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | swscale/x86/rgb2rgb: extend framework to also include AVXMichael Niedermayer2013-11-191-3/+3
| | | | | | | | | | | | This does not yet include any actual AVX code Signed-off-by: Michael Niedermayer <[email protected]>
* | lavu: add FF_CEIL_RSHIFT and use it in various places.Clément Bœsch2013-05-091-4/+4
| |
* | Merge commit '2b677ffca54a5fbef9c8860841c32f28ecd68f70'Michael Niedermayer2013-05-051-1/+3
|\| | | | | | | | | | | | | | | | | | | * commit '2b677ffca54a5fbef9c8860841c32f28ecd68f70': swscale: Add av_cold attributes to init functions missing them Conflicts: libswscale/utils.c Merged-by: Michael Niedermayer <[email protected]>
| * swscale: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-041-1/+3
| |
* | Fix libswscale compilation with --disable-optimizations on x86-32.Carl Eugen Hoyos2013-04-181-0/+4
| | | | | | | | Fixes ticket #2477.
* | sws/x86: update RENAME(rgb24toyv12)() to using the user provided rgb2yuv tableMichael Niedermayer2013-04-151-8/+11
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | sws/x86: remove 8bit rgb2yuv coefficient case for rgb24toyv12 special converterMichael Niedermayer2013-04-151-8/+0
| | | | | | | | | | | | | | 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 <[email protected]>
* | sws: Update rgb24toyv12_c() to user supplied rgb2yuv tablesMichael Niedermayer2013-04-151-3/+4
| | | | | | | | | | | | | | | | As the function arguments change, we also change the function name to ensure that anyone using this (non public) function doesnt end with hard to debug crashes. The new name also has a proper prefix. Signed-off-by: Michael Niedermayer <[email protected]>
* | Merge commit '652f5185945c8405fc57aed353286858df8d066f'Michael Niedermayer2012-10-311-1/+1
|\| | | | | | | | | | | | | | | | | | | * commit '652f5185945c8405fc57aed353286858df8d066f': x86: mmx2 ---> mmxext in comments and messages Conflicts: libswscale/x86/swscale_template.c Merged-by: Michael Niedermayer <[email protected]>
| * x86: mmx2 ---> mmxext in comments and messagesDiego Biurrun2012-10-311-1/+1
| |
| * swscale: x86: fix #endif comments in rgb2rgb template fileGiorgio Vazzana2012-08-191-2/+2
| | | | | | | | Signed-off-by: Diego Biurrun <[email protected]>
* | Remove redundant masks in STORE_BGR24_MMX.Hans-Kristian Arntzen2012-09-021-3/+0
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | libswscale: fix #endif comments in rgb2rgb_template.cGiorgio Vazzana2012-08-161-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <[email protected]>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-08-141-231/+137
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: g723.1: simplify scale_vector() g723.1: simplify normalize_bits() vda: cosmetics: fix Doxygen comment formatting vda: better frame allocation vda: Merge implementation into one file vda: support synchronous decoding vda: Reuse the bitstream buffer and reallocate it only if needed build: Factor out mpegvideo encoding dependencies to CONFIG_MPEGVIDEOENC avprobe: Include libm.h for the log2 fallback proresenc: use the edge emulation buffer rtmp: handle bytes read reports configure: Fix typo in mpeg2video/svq1 decoder dependency declaration Use log2(x) instead of log(x) / log(2) x86: swscale: fix fragile memory accesses x86: swscale: remove disabled code x86: yadif: fix asm with suncc x86: cabac: allow building with suncc x86: mlpdsp: avoid taking address of void ARM: intmath: use native-size return types for clipping functions Conflicts: configure ffprobe.c libavcodec/Makefile libavcodec/g723_1.c libavcodec/v210dec.h libavcodec/vda.h libavcodec/vda_h264.c libavcodec/x86/cabac.h libavfilter/x86/yadif_template.c libswscale/x86/rgb2rgb_template.c Merged-by: Michael Niedermayer <[email protected]>
| * x86: swscale: fix fragile memory accessesMans Rullgard2012-08-131-147/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To access data at multiple fixed offsets from a base address, this code uses a single "m" operand and code of the form "32%0", relying on the memory operand instantiation having no displacement, giving a final result of the form "32(%rax)". If the compiler uses a register and displacement, e.g. "64(%rax)", the end result becomes "3264(%rax)", which obviously does not work. Replacing the "m" operands with "r" operands allows safe addition of a displacement. In theory, multiple memory operands could use a shared base register with different index registers, "(%rax,%rbx)", potentially making more efficient use of registers. In the cases at hand, no such sharing is possible since the addresses involved are entirely unrelated. After this change, the code somewhat rudely accesses memory without using a corresponding memory operand, which in some cases can lead to unwanted "optimisations" of surrounding code. However, the original code also accesses memory not covered by a memory operand, so this is not adding any defect not already present. It is also hightly unlikely that any such optimisations could be performed here since the memory locations in questions are not accessed elsewhere in the same functions. This fixes crashes with suncc. Signed-off-by: Mans Rullgard <[email protected]>
| * x86: swscale: remove disabled codeMans Rullgard2012-08-131-84/+0
| | | | | | | | | | | | | | This code has been disabled since 2003. Nobody will ever look at it again. Signed-off-by: Mans Rullgard <[email protected]>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-08-041-9/+9
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: lavr: fix handling of custom mix matrices fate: force pix_fmt in lagarith-rgb32 test fate: add tests for lagarith lossless video codec. ARMv6: vp8: fix stack allocation with Apple's assembler ARM: vp56: allow inline asm to build with clang fft: 3dnow: fix register name typo in DECL_IMDCT macro x86: dct32: port to cpuflags x86: build: replace mmx2 by mmxext Revert "wmapro: prevent division by zero when sample rate is unspecified" wmapro: prevent division by zero when sample rate is unspecified lagarith: fix color plane inversion for YUY2 output. lagarith: pad RGB buffer by 1 byte. dsputil: make add_hfyu_left_prediction_sse4() support unaligned src. Conflicts: doc/APIchanges libavcodec/lagarith.c libavfilter/x86/gradfun.c libavutil/cpu.h libavutil/version.h libswscale/utils.c libswscale/version.h libswscale/x86/yuv2rgb.c Merged-by: Michael Niedermayer <[email protected]>
| * x86: build: replace mmx2 by mmxextDiego Biurrun2012-08-031-9/+9
| | | | | | | | | | | | | | Refactoring mmx2/mmxext YASM code with cpuflags will force renames. So switching to a consistent naming scheme beforehand is sensible. The name "mmxext" is more official and widespread and also the name of the CPU flag, as reported e.g. by the Linux kernel.
* | MANGLEd swscale x86 asm to save registersMichael Bradshaw2012-06-051-19/+19
| | | | | | | | | | | | | | | | register starvation caused gcc4.2 to fail building 32 bit shared libs on 64 bit OS X Signed-off-by: Michael Bradshaw <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>