summaryrefslogtreecommitdiff
path: root/libswscale/utils.c
Commit message (Collapse)AuthorAge
* swscale: Fix an undefined behaviourLuca Barbato2014-05-03
| | | | | | | | Prevent a division by zero down the codepath. Sample-Id: 00001721-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* swscale: support converting YVYU422 pixel formatVittorio Giovara2014-04-07
|
* swscale: add endianness conversion for AV_PIX_FMT_BGRA64|RGBA64Janne Grunau2014-04-02
|
* RGBA64 pixel formatsJean First2014-03-16
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* swscale: provide a default scaler if none is setVittorio Giovara2013-10-05
| | | | | | | | | | Lanczos for general case, sinc for upscaling, Gaussian for downscaling. According to current literature these scalers should be the best quality-wise algorithms for each case. Inspired from a patch by wm4 <nfxjfg@googlemail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* x86: Add and use more convenience macros to check CPU extension availabilityDiego Biurrun2013-08-29
|
* swscale: cosmetics: Drop silly camelCase from swScale function pointer nameDiego Biurrun2013-08-29
|
* swscale: ppc: Hide arch-specific initialization detailsDiego Biurrun2013-08-29
| | | | Also give consistent names to init functions.
* ppc: Add and use convenience macro to check for AltiVec availabilityDiego Biurrun2013-08-28
|
* swscale: Move extern declarations for tables to swscale_internal.hDiego Biurrun2013-08-15
| | | | Also add missing ff_ prefixes where necessary.
* swscale: support endianness conversion for AV_PIX_FMT_XYZ12Janne Grunau2013-05-06
|
* swscale: add support for endianness only conversionJanne Grunau2013-05-06
| | | | Use bitfields in FormatEntry array to avoid wasting an int for each flag.
* swscale: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
|
* swscale: Disallow conversion to GBRP16Martin Storsjö2013-02-11
| | | | | | | | | | | | | This reverts parts of d6d5ef5534d582, that didn't work right. (The tests that were added failed on big endian, and the output looked garbled on little endian as well.) This is due to the fact that the intermediate scaling values (from e.g. hScale8To19_c or hScale16To19_c) are stored as int32_t and thus requires a separate output function, while yuv2gbrp_full_X_c only interprets it as int16_t. Signed-off-by: Martin Storsjö <martin@martin.st>
* sws: dont enable chrSrcHSubSample for planar RGBMichael Niedermayer2013-02-09
| | | | | | | | This code path is not implemented and makes not much sense to implement either. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* sws: GBRP9, GBRP10, and GBRP16 output supportMichael Niedermayer2013-02-09
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* swscale: GBRP output supportMichael Niedermayer2013-01-27
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* swscale: fix NULL checking in sws_alloc_context()Xi Wang2013-01-04
| | | | | | | | | | | | | sws_getCachedContext() and sws_getContext() expect sws_alloc_context() to return NULL when out of memory, as follows. if (!(context = sws_alloc_context())) return NULL; This patch fixes sws_alloc_context() to return NULL in that case. Signed-off-by: Xi Wang <xi.wang@gmail.com> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* x86: mmx2 ---> mmxext in function namesDiego Biurrun2012-10-31
|
* x86: mmx2 ---> mmxext in variable namesDiego Biurrun2012-10-31
|
* x86: mmx2 ---> mmxext in comments and messagesDiego Biurrun2012-10-31
|
* pixfmt: support more yuva formatsLuca Barbato2012-10-30
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* swscale: try to use mmap only if availableMans Rullgard2012-10-15
| | | | | | | | | | | | Some systems, e.g. Minix, have sys/mman.h defining MAP_ANONYMOUS without providing (working) mmap and friends. The mmx filter generation code checks only for MAP_ANONYMOUS, not for availability of mmap itself which leads to build errors on aforementioned systems. This changes the conditional compilation to use mmap only if all the required functions are available. Signed-off-by: Mans Rullgard <mans@mansr.com>
* avutil: add yuva422p and yuva444p formatsLuca Barbato2012-10-12
|
* sws: do not use av_pix_fmt_descriptors directly.Anton Khirnov2012-10-12
|
* Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormatAnton Khirnov2012-10-08
|
* swscale: Provide the right alignment for external mmx asmMartin Storsjö2012-09-09
| | | | | | | | | | This reverts parts of e0c6cce4472. There is external mmx asm that requires this alignment. This fixes crashes when using swscale in builds with external mmx, without inline assembly. Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: Replace checks for CPU extensions and flags by convenience macrosDiego Biurrun2012-09-08
| | | | | This separates code relying on inline from that relying on external assembly and fixes instances where the coalesced check was incorrect.
* x86: Split inline and external assembly #ifdefsDiego Biurrun2012-08-31
|
* x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.hMans Rullgard2012-08-09
| | | | | | | This puts x86-specific things in the x86/ subdirectory where they belong. Signed-off-by: Mans Rullgard <mans@mansr.com>
* 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: Mark all init functions as av_coldDiego Biurrun2012-07-23
|
* swscale: place inline assembly bilinear scaler under HAVE_INLINE_ASM.Ronald S. Bultje2012-07-22
|
* swscale: K&R formatting cosmetics (part II)Diego Biurrun2012-04-13
| | | | Also adjust some comments including wording and typo fixes.
* 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
* swscale: fix another integer overflow.Ronald S. Bultje2012-02-29
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* swscale: fix another integer overflow at large dimensions/rescales.Ronald S. Bultje2012-02-24
|
* swscale: fix overflows in filterPos[] calculation for large sizes.Ronald S. Bultje2012-02-23
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* swscale: fix filtersize clipping.Ronald S. Bultje2012-02-22
| | | | if srcW<=2, clip(x, 1, srcW-2) still allows srcW to be < 1.
* swscale: enforce a minimum filtersize.Ronald S. Bultje2012-02-11
| | | | | | | | | | | At very small dimensions, this calculation could lead to zero-sized filters, which leads to uninitialized output, zero-sized allocations, loop overflows in SIMD that uses do{..}while(i++<filtersize); instead of for(i=0;i<filtersize;i++){..} and several other similar failures. Therefore, require a minimum filtersize of 1. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* cosmetics: Remove extra newlines at EOFAlex Converse2012-01-27
|
* Revert "sws/pixfmt/pixdesc: add support for yuva444p"Alex Converse2012-01-26
| | | | | | This reverts commit fc115c80b7bf6f1f5a937ee7f6e14630d99eb4dd. Tests are broken.
* sws/pixfmt/pixdesc: add support for yuva444pPaul B Mahol2012-01-27
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* cosmetics: Move static and inline attributes to more standard places.Diego Biurrun2012-01-14
| | | | Fixes several "‘static’ is not at beginning of declaration" warnings.
* swscale: RGB4444 and BGR444 inputPaul B Mahol2012-01-08
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* swscale: don't show full-chroma-int warning for non-RGB output.Ronald S. Bultje2012-01-03
| | | | Non-RGB output always uses full chroma interpolation.
* swscale: fix overflows in vertical scaling at top/bottom edges.Ronald S. Bultje2011-12-18
| | | | | | | | | | | | | | | | | | | | | | This fixes integer multiplication overflows in RGB48 output (vertical) scaling as detected by IOC. What happens is that for certain types of filters (lanczos, spline, bicubic), the intermediate sum of coefficients in the middle of a filter can be larger than the fixed-point equivalent of 1.0, even if the final sum is 1.0. This is fine and we support that. However, at frame edges, initFilter() will merge the coefficients for the off-screen pixels into the top or bottom pixel, such as to emulate edge extension. This means that suddenly, a single coefficient can be larger than the fixed-point equivalent of 1.0, which the vertical scaling routines do not support. Therefore, remove the merging of coefficients for edges for the vertical scaling filter, and instead add edge detection to the scaler itself so that it copies the pointers (not data) for the edges (i.e. it uses line[0] for line[-1] as well), so that a single coefficient is never larger than the fixed-point equivalent of 1.0.
* swscale: #include "libavutil/mathematics.h"Reinhard Tartler2011-12-01
| | | | | | | | this file uses the M_PI macro since 4e74187db2f5db52f88729efc662df9d6bc763e1, so include the correct header directly. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* swscale: Readd #define _SVID_SOURCEMartin Storsjö2011-11-25
| | | | | | | | | | | | | | | | | This was removed erroneously in 046f081b46c8479820409cf8f530b988221bd15b. This define still is necessary for getting MAP_ANONYMOUS defined on linux/glibc, despite the define reshuffling done in that commit. Without MAP_ANONYMOUS defined, the mprotect calls for setting the generated mmx2 scaler code pages executable are left out, causing crashes if that codepath is chosen. This patch fixes scaling from 192x144 to 320x240 with -sws_flags fast_bilinear, which crashes on linux at the moment. Signed-off-by: Martin Storsjö <martin@martin.st>
* swscale: add support for planar RGB input.Ronald S. Bultje2011-11-24
|