summaryrefslogtreecommitdiff
path: root/libswscale/x86
Commit message (Collapse)AuthorAge
* swscale: handle unaligned buffers in yuv2plane1Ronald S. Bultje2011-11-13
| | | | | | | 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-05
|
* swscale: add missing colons to x86 assembly yuv2planeX.Ronald S. Bultje2011-10-23
| | | | This fixes assembling using "nasm".
* swscale: make yuv2yuvX_10_sse2/avx 8/9/16-bits aware.Ronald S. Bultje2011-10-22
| | | | Also implement MMX/MMX2 versions and SSE4 versions.
* yuv2planeX10 SIMDKieran Kunhya2011-10-22
| | | | 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-22
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: use aligned move for storage into temporary buffer.Ronald S. Bultje2011-10-11
| | | | The intermediate buffer is always aligned.
* sws: implement MMX/SSE2/SSSE3/SSE4 versions for horizontal scaling.Ronald S. Bultje2011-09-13
| | | | | | 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-17
| | | | | | 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-12
|
* swscale: rename uv_off/uv_off2 to uv_off_px/byte.Ronald S. Bultje2011-07-08
|
* swscale: error dithering for 16/9/10-bit to 8-bit.Ronald S. Bultje2011-07-08
| | | | 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-08
| | | | | 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-01
| | | | | | 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-29
| | | | | | 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-27
| | | | | | | | 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-27
| | | | | 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-26
|
* swscale: Remove HAVE_MMX from files that are only compiled with MMX enabled.Diego Biurrun2011-06-15
|
* swscale: Fix compilation with --disable-mmx2.Diego Biurrun2011-06-15
| | | | Some MMX2 functions were being referenced without proper #ifdefs.
* swscale: fix function declaration keywords in x86/swscale_template.c.Ronald S. Bultje2011-06-09
| | | | | | | 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-08
| | | | | | | | 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-08
| | | | | This way, they look like regular code, which is easier to understand.
* swscale: reindent x86 init code.Ronald S. Bultje2011-06-07
|
* swscale: extract SWS_FULL_CHR_H_INT conditional into init code.Ronald S. Bultje2011-06-07
|
* swscale: un-special-case yuv2yuvX16_c().Ronald S. Bultje2011-06-07
| | | | | 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-03
|
* sws: replace all long with int.Anton Khirnov2011-05-28
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: fix crash in bilinear scaling.Ronald S. Bultje2011-05-28
|
* swscale: Remove unused variables in x86 code.Diego Biurrun2011-05-27
| | | | | | | 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-27
|
* swscale: fix non-bitexact yuv2yuv[X2]() MMX/MMX2 functions.Ronald S. Bultje2011-05-27
|
* swscale: fix compile on x86-32.Ronald S. Bultje2011-05-26
|
* swscale: split chroma buffers into separate U/V planes.Ronald S. Bultje2011-05-26
| | | | Preparatory step to implement support for sizes > VOFW.
* rgb2rgb: remove duplicate mmx/mmx2/3dnow/sse2 functions.Ronald S. Bultje2011-05-26
| | | | | | | 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.
* swscale: reindent h[cy]scale_fast() and updateDitherTables().Ronald S. Bultje2011-05-26
|
* swscale: reformat x86/swscale_template.c.Ronald S. Bultje2011-05-26
| | | | | | Interleave macros and code so that it's easier to find the actual code that belongs to a function. Also reindent where appropriate and remove dead code.
* swscale: remove duplicate mmx/mmx2 functions if they are identical.Ronald S. Bultje2011-05-26
|
* swscale: remove if (c->dstFormat) branch from yuv2packed[12X]().Ronald S. Bultje2011-05-26
| | | | | This allows cutting up the function in much smaller and easier- to-maintain chunks.
* swscale: remove if(full_chr_int) from yuv2packed1().Ronald S. Bultje2011-05-26
| | | | | | If that flag is set, swScale() already proxies the call to yuv2rgbXinC_full(). Therefore, this flag is never set when yuv2packed1() is called.
* swscale: remove if(accurate_rnd) branch from functions.Ronald S. Bultje2011-05-26
|
* swscale: Remove commented-out printf cruft.Diego Biurrun2011-05-26
|
* swscale: Eliminate rgb24toyv12_c() duplication.Michael Niedermayer2011-05-26
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* swscale: remove if(bitexact) branch from functions.Ronald S. Bultje2011-05-24
| | | | | | | Instead, only set the function pointers if bitexact flag is not set during initialization. Since a change in flags triggers a re-init anyway, this doesn't situations where flag values change during runtime.
* swscale: remove if(canMMX2BeUsed) conditional.Ronald S. Bultje2011-05-24
| | | | | | Instead, set function pointers conditionally during init. This patch also reveals a whole branch of dead assembly code that is therefore also removed.
* swscale: remove swScale_{c,MMX,MMX2} duplication.Ronald S. Bultje2011-05-24
|
* swscale: use emms_c().Ronald S. Bultje2011-05-24
|
* swscale: remove dead macro WRITEBGR24OLD.Ronald S. Bultje2011-05-24
|
* swscale: remove AMD3DNOW "optimizations".Ronald S. Bultje2011-05-24
| | | | | | The functions are identical to their MMX counterparts. Thus, pretending that swscale is highly optimized for AMD3DNOW extensions is a poorly executed practical joke at best.
* swscale: remove duplicated x86/ functions.Ronald S. Bultje2011-05-24
|