summaryrefslogtreecommitdiff
path: root/libswscale/x86/swscale_template.c
Commit message (Collapse)AuthorAge
* Add missing headers to make template files compile (more) standaloneDiego Biurrun2014-03-26
|
* swscale: x86: Hide arch-specific initialization detailsDiego Biurrun2013-08-28
| | | | Also give consistent names to init functions.
* x86: MMX2 ---> MMXEXT in macro namesDiego Biurrun2012-10-31
|
* x86: mmx2 ---> mmxext in variable namesDiego Biurrun2012-10-31
|
* x86: mmx2 ---> mmxext in comments and messagesDiego Biurrun2012-10-31
|
* Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormatAnton Khirnov2012-10-08
|
* x86: build: replace mmx2 by mmxextDiego Biurrun2012-08-03
| | | | | | | 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.
* swscale: make filterPos 32bit.Ronald S. Bultje2012-03-06
| | | | | | | Fixes overflows for large image sizes. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* Revert two swscale commits.Ronald S. Bultje2012-02-19
| | | | | | | | | | | Revert "swscale: update context offsets after removal of AlpMmxFilter." (commit a95e3fa90b4190381b65d180eec5a4027075e2da) and Revert "swscale: Remove some write-only variables related to alpha handling." (commit 9d03cb9fc5ddf914920ab0dbe13f19a34c754966). They broke alpha handling - it's the evil inline asm that still uses that variable, so it's not truely write-only.
* swscale: make access to filter data conditional on filter type.Ronald S. Bultje2012-02-17
| | | | | Prevents crashes on 1-tap filter (unscaled). Also rename "bguf" argument to "vbuf", seems that was a typo.
* swscale: update context offsets after removal of AlpMmxFilter.Ronald S. Bultje2012-02-17
|
* swscale: fix V plane memory location in bilinear/unscaled RGB/YUYV case.Ronald S. Bultje2012-02-07
| | | | | | Fixes bug 221. CC: libav-stable@libav.org
* swscale: convert rgb/bgr24ToY/UV_mmx functions from inline asm to yasm.Ronald S. Bultje2012-01-27
| | | | Also implement sse2/ssse3/avx versions.
* swscale: fix crash in fast_bilinear code when compiled with -mred-zone.Ronald S. Bultje2012-01-10
| | | | | | | Additional comments from Måns Rullgard have been integrated by Reinhard Tartler. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* swscale: convert yuy2/uyvy/nv12/nv21ToY/UV from inline asm to yasm.Ronald S. Bultje2012-01-08
| | | | Also implement SSE2/AVX variants.
* swscale: write yuv2plane1 MMX/SSE2/SSE4/AVX functions.Ronald S. Bultje2011-11-05
|
* swscale: make yuv2yuvX_10_sse2/avx 8/9/16-bits aware.Ronald S. Bultje2011-10-22
| | | | Also implement MMX/MMX2 versions and SSE4 versions.
* 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>
* 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: 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 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.
* 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: 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.