summaryrefslogtreecommitdiff
path: root/libswscale
Commit message (Collapse)AuthorAge
* swscale: fix signed shift overflows in ff_yuv2rgb_c_init_tables()Mans Rullgard2011-10-21
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* sws/pixfmt/pixdesc: add support for yuv420p9le/be.Ronald S. Bultje2011-10-21
|
* swscale: prevent overflow in coefficient calculation.Ronald S. Bultje2011-10-21
|
* swscale: prevent overflow during initializationRonald Bultje2011-10-18
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_*Anton Khirnov2011-10-12
|
* sws: support yuv444p9/10 output.Anton Khirnov2011-10-12
|
* swscale: use aligned move for storage into temporary buffer.Ronald S. Bultje2011-10-11
| | | | The intermediate buffer is always aligned.
* ppc: fix some pointer to integer castsMans Rullgard2011-09-25
| | | | | | | | Use uintptr_t instead of plain int. Without this change, the comparisons will come out wrong for pointers in certain ranges. Fixes random failures on ppc64. Also fixes some compiler warnings. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Fix unnecessary shift with 9/10bit vertical scalingKieran Kunhya2011-09-23
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* swscale: fix byte overreads in SSE-optimized hscale().Ronald S. Bultje2011-09-15
| | | | | | SSE-optimized hScale() scales up to 4 pixels at once, so we need to allocate up to 3 padding pixels to prevent overreads. This fixes valgrind errors in various swscale-tests on fate.
* 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).
* lavf,lavc,sws: add {avcodec,avformat,sws}_get_class() functions.Anton Khirnov2011-09-03
|
* 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: add dithering to yuv2yuvX_altivec_realLuca Barbato2011-08-13
| | | | | | | It just does that part in scalar form, I doubt using a vector store over 2 array would speed it up particularly. The function should be written to not use a scratch buffer.
* swscale: use 15-bit intermediates for 9/10-bit scaling.Ronald S. Bultje2011-08-12
|
* lsws: remove optimization debug logs in sws_init_context()Stefano Sabatini2011-08-05
| | | | | | | | | The logged information is possibly false, and it tends to be outdated after each change since the logging code needs to be manually updated. Simplify and prevent confusing wrong debug messages. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* lsws: use array for storing the supported in/out informationStefano Sabatini2011-08-05
| | | | | | | | | Also remove the unnecessary isSupportedIn/Out macros. Make the code more compact/readable, and simplify the access to lsws-specific pixel format information. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Revert "swscale: use 15-bit intermediates for 9/10-bit scaling."Ronald S. Bultje2011-08-02
| | | | | | This reverts commit ac0fb5934893be554a44d2a1eb7a3bc7bf39da4a. It causes valgrind errors which I'll want to investigate before resubmitting this.
* swscale: use 15-bit intermediates for 9/10-bit scaling.Ronald S. Bultje2011-08-02
|
* Do not convert RGB buffer at once when stride does not fit exact samples.Kostya Shishkov2011-07-30
| | | | | | | | | | | When converting RGB format to RGB format with the same bits per sample, unscaled path performs conversion on the whole buffer at once. For non-multiple-of-16 BGR24 to RGB24 conversion it means that padding at the end of line will be converted too. Since it may be of arbitrary length (e.g. 8 bytes), operating on the whole buffer produces obviously wrong results. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: mark YUV422P10(LE,BE) as supported for outputJoseph Artsimovich2011-07-21
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* swscale: extend mmx padding.Ronald S. Bultje2011-07-14
| | | | Fixes a crash when forcing libc to strictly adhere to malloc sizes.
* swscale: clip unscaled colorspace conversion path.Ronald S. Bultje2011-07-14
| | | | | Prevents overflows on very bright scenes when adding dither, which may lead to black dots.
* doxygen: Make sure parameter names match between .c and .h files.Diego Biurrun2011-07-14
|
* swscale: fix crash with dithering due incorrect offset calculation.Anton Mitrofanov2011-07-10
| | | | | | | | ptrdiff_t can be 4 bytes, which leads to the next element being 4-byte aligned and thus at a different offset than intended. Forcing 8-byte alignment forces equal offset of dither16/32 on x86-32 and x86-64. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: rename uv_off/uv_off2 to uv_off_px/byte.Ronald S. Bultje2011-07-08
|
* swscale: implement error dithering in planarCopyWrapper.Ronald S. Bultje2011-07-08
| | | | Based on a somewhat similar idea in FFmpeg's swscale.
* 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 overflow in 16-bit vertical scaling.Ronald S. Bultje2011-07-08
| | | | | | We operated on 31-bits, but with e.g. lanczos scaling, values can add up to beyond 0x80000000, thus leading to output of zeroes. Drop one bit of precision fixes this.
* swscale: fix crash in 8-bpc bilinear output without alpha.Ronald S. Bultje2011-07-08
| | | | | We accessed the alpha array even it wasn't used and didn't exist, hence leading to a NULL pointer segfault.
* swscale: fix 16-bit horizontal scaling underflow.Ronald S. Bultje2011-07-08
| | | | | When using e.g. lanczos scaling, values can drop below 0, so they should never be unsigned.
* 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: amend documentation to mention use of native depth for scaling.Ronald S. Bultje2011-07-06
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Remove unused static tables and static inline functions.Diego Biurrun2011-07-04
|
* Do not include log.h in avutil.hMans Rullgard2011-07-03
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Do not include pixfmt.h in avutil.hMans Rullgard2011-07-03
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* doxygen: Remove spurious documentation for non-existing function parameters.Diego Biurrun2011-07-03
|
* swscale: disable full_chroma_int when converting to non-24/32bpp RGB.Ronald S. Bultje2011-07-02
| | | | | This functionality is only implemented for RGB24/32 and causes crashes otherwise.
* 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: fix another yuv range conversion overflow in 16bit scaling.Ronald S. Bultje2011-06-30
|
* swscale: Unbreak build with --enable-smallMohamed Naufal2011-06-30
| | | | | | | This fixes building with --enable-small, by using the correct variable name. Signed-off-by: Martin Storsjö <martin@martin.st>
* swscale: fix yuv range correction when using 16-bit scaling.Ronald S. Bultje2011-06-29
|
* 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: Add Doxygen for hyscale_fast/hScale.Ronald S. Bultje2011-06-29
|
* PPC: swscale: disable altivec functions for unsupported formatsMans Rullgard2011-06-28
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* swscale: Add Doxygen for yuv2planar*/yuv2packed* functions.Ronald S. Bultje2011-06-28
|
* build: include sub-makefiles using full path instead of symlinksMans Rullgard2011-06-28
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* 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: re-add support for non-native endianness.Ronald S. Bultje2011-06-27
| | | | This works through some non-obvious hacks in utils.c.
* swscale: disentangle yuv2rgbX_c_full() into small functions.Ronald S. Bultje2011-06-27
| | | | This is part of the Great Evil Plan to simplify swscale.