summaryrefslogtreecommitdiff
path: root/libswscale/x86/swscale_template.c
Commit message (Collapse)AuthorAge
* 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.
* 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
|
* swscale: force --enable-runtime-cpudetect and remove SWS_CPU_CAPS_*.Ronald S. Bultje2011-05-24
|
* swscale: fix YUV420P 9/10bit support.Ronald S. Bultje2011-05-11
| | | | | | | Fix handling of input if not in native endianness, and add support for 9/10-bit output. This allows us to force endianness of YUV420P 9/10bit in the H264/10bit fate tests, which should fix them on big-endian systems.
* swscale: fix compilation with --enable-runtime-cpudetectJanne Grunau2011-04-15
|
* swscale: further cleanup swscale.cJosh Allmann2011-04-14
| | | | Move x86-specific constants out of swscale.c
* swscale: partially move the arch specific code leftLuca Barbato2011-04-14
PPC and x86 code is split off from swscale_template.c. Lots of code is still duplicated and should be removed later. Again uniformize the init system to be more similar to the dsputil one. Unset h*scale_fast in the x86 init in order to make the output consistent with the previous status. Thanks to Josh for spotting it.