summaryrefslogtreecommitdiffstats
path: root/libswscale/x86
Commit message (Collapse)AuthorAgeFilesLines
...
* swscale: fix V plane memory location in bilinear/unscaled RGB/YUYV case.Ronald S. Bultje2012-02-071-12/+12
| | | | | | Fixes bug 221. CC: libav-stable@libav.org
* win64: add a XMM clobber test configure option.Ronald S. Bultje2012-02-021-0/+31
| | | | | | | This will be useful to test more aggressively for failures to mark XMM registers as clobbered in Win64 builds, and prevent regressions thereof. Based on a patch by Ramiro Polla <ramiro.polla@gmail.com>
* swscale: implement MMX, SSE2 and AVX functions for RGB32 input.Ronald S. Bultje2012-02-012-0/+175
|
* swscale: enable dithering in MMX functions.Ronald S. Bultje2012-02-011-0/+2
| | | | | | This was accidently disabled. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: make rgb24 function macros slightly smaller.Ronald S. Bultje2012-02-011-16/+13
|
* swscale: convert rgb/bgr24ToY/UV_mmx functions from inline asm to yasm.Ronald S. Bultje2012-01-273-178/+300
| | | | Also implement sse2/ssse3/avx versions.
* config.asm: change %ifdef directives to %if directives.Ronald S. Bultje2012-01-273-16/+16
| | | | This allows combining multiple conditionals in a single statement.
* swscale: change yuv2yuvX code to use cpuflag().Ronald S. Bultje2012-01-131-60/+59
|
* swscale: fix crash in fast_bilinear code when compiled with -mred-zone.Ronald S. Bultje2012-01-101-1/+49
| | | | | | | Additional comments from Måns Rullgard have been integrated by Reinhard Tartler. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* swscale: specify register type.Oka Motofumi2012-01-101-2/+2
| | | | | | Fixes a compilation failure on win64. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: convert yuy2/uyvy/nv12/nv21ToY/UV from inline asm to yasm.Ronald S. Bultje2012-01-083-163/+325
| | | | Also implement SSE2/AVX variants.
* swscale: split scale.asm.Ronald S. Bultje2012-01-032-381/+410
| | | | | scale.asm keeps horizontal scaling functions, whereas output.asm gets the vertical scaling/output functions.
* swscale_mmx: drop no longer required parameters from VSCALEX macrosDiego Biurrun2011-12-141-17/+17
|
* swscale: Mark yuv2planeX_8_mmx as MMX2; it contains MMX2 instructions.Diego Biurrun2011-12-142-3/+5
|
* Remove extraneous semicolonsMans Rullgard2011-12-111-1/+1
| | | | | | These semicolons cause invalid empty top-level declarations. Signed-off-by: Mans Rullgard <mans@mansr.com>
* swscale: handle unaligned buffers in yuv2plane1Ronald S. Bultje2011-11-131-0/+2
| | | | | | | The issue had been introduced in c435653627529e22d74214c2266f571255e404d6 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* swscale: write yuv2plane1 MMX/SSE2/SSE4/AVX functions.Ronald S. Bultje2011-11-053-112/+170
|
* swscale: add missing colons to x86 assembly yuv2planeX.Ronald S. Bultje2011-10-231-2/+2
| | | | This fixes assembling using "nasm".
* swscale: make yuv2yuvX_10_sse2/avx 8/9/16-bits aware.Ronald S. Bultje2011-10-223-255/+227
| | | | Also implement MMX/MMX2 versions and SSE4 versions.
* yuv2planeX10 SIMDKieran Kunhya2011-10-222-1/+91
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Split out yuv2yuv1 luma and chroma in order to make them generic DSP functionsKieran Kunhya2011-10-221-4/+4
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: use aligned move for storage into temporary buffer.Ronald S. Bultje2011-10-111-1/+1
| | | | The intermediate buffer is always aligned.
* sws: implement MMX/SSE2/SSSE3/SSE4 versions for horizontal scaling.Ronald S. Bultje2011-09-133-162/+515
| | | | | | Speed: from 3.9x to 9.6x speed improvement over C, and some small (up to 15%) speed improvements over existing MMX code (particularly for bigger filters).
* swscale: split hScale() function pointer into h[cy]Scale().Ronald S. Bultje2011-08-171-1/+1
| | | | | | This allows using more specific implementations for chroma/luma, e.g. we can make assumptions on filterSize being constant, thus avoiding that test at runtime.
* swscale: use 15-bit intermediates for 9/10-bit scaling.Ronald S. Bultje2011-08-121-1/+1
|
* swscale: rename uv_off/uv_off2 to uv_off_px/byte.Ronald S. Bultje2011-07-081-40/+40
|
* swscale: error dithering for 16/9/10-bit to 8-bit.Ronald S. Bultje2011-07-081-17/+118
| | | | Based on a somewhat similar idea in FFmpeg's swscale copy.
* swscale: fix 16-bit scaling when output is 8-bits.Ronald S. Bultje2011-07-081-12/+12
| | | | | We would use the second half of the U plane buffer, rather than the V plane buffer, to output the V plane pixels.
* swscale: for >8bit scaling, read in native bit-depth.Ronald S. Bultje2011-07-011-1/+1
| | | | | | For 9/10bit, it means we don't have to upscale to 16bit before actual scaling or pixel format conversion, and thus a performance gain.
* swscale: implement >8bit scaling support.Ronald S. Bultje2011-06-291-69/+4
| | | | | | This means that precision is retained when scaling between sample formats with >8 bits per component (48bit RGB, 16bit grayscale, 9/10/16bit YUV).
* swscale: change prototypes of scaled YUV output functions.Ronald S. Bultje2011-06-271-76/+83
| | | | | | | | Remove unused variables "flags" and "dstFormat" in yuv2packed1, merge source rows per plane for yuv2packed[12], and make every source argument int16_t (some where invalidly set to uint16_t). This prevents stack pollution and is part of the Great Evil Plan to simplify swscale.
* swscale: don't use planar output functions to write to NV12/21.Ronald S. Bultje2011-06-271-1/+2
| | | | | This prevents a crash when converting to NV12/21 without the bitexact flags enabled.
* swscale: remove unused xInc/srcW arguments from hScale().Ronald S. Bultje2011-06-261-2/+1
|
* swscale: Remove HAVE_MMX from files that are only compiled with MMX enabled.Diego Biurrun2011-06-152-2/+2
|
* swscale: Fix compilation with --disable-mmx2.Diego Biurrun2011-06-152-1/+5
| | | | Some MMX2 functions were being referenced without proper #ifdefs.
* swscale: fix function declaration keywords in x86/swscale_template.c.Ronald S. Bultje2011-06-091-181/+202
| | | | | | | Remove inline keyword for functions that are only called through their function pointers (and thus cannot be inlined); add av_cold keyword to init function, and use av_always_inline instead of inline for functions that must be inlined for performance reasons.
* swscale: fix types of assembly arguments.Ronald S. Bultje2011-06-081-4/+4
| | | | | | | | This prevents the following compiler warnings: "warning: initialization from incompatible pointer type". Since the variables are only ever used in inline assembly, their type is actually irrelevant (so the part where it was wrong did not invoke any buggy behaviour).
* swscale: move two macros that are only used once into caller.Ronald S. Bultje2011-06-081-36/+30
| | | | | This way, they look like regular code, which is easier to understand.
* swscale: reindent x86 init code.Ronald S. Bultje2011-06-071-35/+35
|
* swscale: extract SWS_FULL_CHR_H_INT conditional into init code.Ronald S. Bultje2011-06-071-0/+6
|
* swscale: un-special-case yuv2yuvX16_c().Ronald S. Bultje2011-06-071-1/+4
| | | | | Make yuv2yuvX16_c a function pointer for yuv2yuvX(), so that the function pointer becomes bitdepth-independent.
* swscale: split out x86/swscale_template.c from swscale.c.Ronald S. Bultje2011-06-033-161/+187
|
* sws: replace all long with int.Anton Khirnov2011-05-282-107/+107
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: fix crash in bilinear scaling.Ronald S. Bultje2011-05-281-78/+63
|
* swscale: Remove unused variables in x86 code.Diego Biurrun2011-05-271-4/+0
| | | | | | | libswscale/x86/swscale_template.c:2072: warning: unused variable ‘canMMX2BeUsed’ libswscale/x86/swscale_template.c:2145: warning: unused variable ‘canMMX2BeUsed’ libswscale/x86/swscale_template.c:2209: warning: unused variable ‘chrVPixBuf’ libswscale/x86/swscale_template.c:2237: warning: unused variable ‘chrVSrcPtr’
* swscale: fix build with --disable-swscale-alpha.Ronald S. Bultje2011-05-271-4/+4
|
* swscale: fix non-bitexact yuv2yuv[X2]() MMX/MMX2 functions.Ronald S. Bultje2011-05-271-4/+6
|
* swscale: fix compile on x86-32.Ronald S. Bultje2011-05-261-1/+1
|
* swscale: split chroma buffers into separate U/V planes.Ronald S. Bultje2011-05-261-160/+220
| | | | Preparatory step to implement support for sizes > VOFW.
* rgb2rgb: remove duplicate mmx/mmx2/3dnow/sse2 functions.Ronald S. Bultje2011-05-262-35/+41
| | | | | | | Many functions have such a prefix, but do not actually use any instructions or features from that set, thus giving the false impression that swscale is highly optimized for a particular system, whereas in reality it is not.
OpenPOWER on IntegriCloud