- 22 Dec, 2011 1 commit
-
-
Anton Khirnov authored
Fixes PAL8 to YUV conversion.
-
- 18 Dec, 2011 2 commits
-
-
Nathan Adil Maxson authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Ronald S. Bultje authored
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.
-
- 17 Dec, 2011 6 commits
-
-
Ronald S. Bultje authored
This fixes the same overflow as in the RGB48/16-bit YUV scaling; some filters can overflow both negatively and positively (e.g. spline/lanczos), so we bias a signed integer so it's "half signed" and "half unsigned", and can cover overflows in both directions while maintaining full 31-bit depth. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
We're shifting individual components (8-bit, unsigned) left by 24, so making them unsigned should give the same results without the overflow. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Janne Grunau authored
Add a macro to shorten the if condition.
-
Ronald S. Bultje authored
For certain types of filters where the intermediate sum of coefficients can go above the fixed-point equivalent of 1.0 in the middle of a filter, the sum of a 31-bit calculation can overflow in both directions and can thus not be represented in a 32-bit signed or unsigned integer. To work around this, we subtract 0x40000000 from a signed integer base, so that we're halfway signed/unsigned, which makes it fit even if it overflows. After the filter finishes, we add the scaled bias back after a shift. We use the same trick for 16-bit bpc YUV output routines. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Janne Grunau authored
-
Ronald S. Bultje authored
Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 16 Dec, 2011 1 commit
-
-
Janne Grunau authored
-
- 14 Dec, 2011 2 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
-
- 13 Dec, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 12 Dec, 2011 1 commit
-
-
Diego Biurrun authored
-
- 11 Dec, 2011 1 commit
-
-
Mans Rullgard authored
These semicolons cause invalid empty top-level declarations. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 01 Dec, 2011 1 commit
-
-
Reinhard Tartler authored
this file uses the M_PI macro since 4e74187d, so include the correct header directly. Signed-off-by:
Reinhard Tartler <siretart@tauware.de>
-
- 26 Nov, 2011 1 commit
-
-
Mans Rullgard authored
As old bits are shifted out of the accumulator, they cause signed overflows when they reach the end. Making the variable unsigned fixes this. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 25 Nov, 2011 1 commit
-
-
Martin Storsjö authored
This was removed erroneously in 046f081b. 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>
-
- 24 Nov, 2011 3 commits
-
-
Ronald S. Bultje authored
isGray() is left as a FIXME for later.
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
-
- 19 Nov, 2011 1 commit
-
-
John Stebbins authored
Although gcc guarantees 16 byte stack alignment, threads under WinXP don't appear to be guaranteed to start stack aligned. So fix the alignment. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
- 13 Nov, 2011 1 commit
-
-
Ronald S. Bultje authored
The issue had been introduced in c4356536Signed-off-by:
Luca Barbato <lu_zero@gentoo.org>
-
- 11 Nov, 2011 1 commit
-
-
Sean McGovern authored
Altivec does unaligned reads from this buffer in hscale_altivec_real(), and can thus read up to 16 bytes beyond the end of the buffer. Therefore, add an extra 16 bytes of padding at the end of the conversion buffer. This fixes fate-lavfi-pixfmts_scale on AltiVec-enabled builds under valgrind. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
- 06 Nov, 2011 1 commit
-
-
Ronald S. Bultje authored
-
- 05 Nov, 2011 1 commit
-
-
Ronald S. Bultje authored
The vertical scaler handles 2 rows at a time and thus requires alignment by 2, or else it'll read invalid memory and result in corrupt output.
-
- 23 Oct, 2011 1 commit
-
-
Ronald S. Bultje authored
This fixes assembling using "nasm".
-
- 22 Oct, 2011 7 commits
-
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
Also implement MMX/MMX2 versions and SSE4 versions.
-
Kieran Kunhya authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
-
Kieran Kunhya authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Kieran Kunhya authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
- 21 Oct, 2011 3 commits
-
-
Mans Rullgard authored
Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
-
- 18 Oct, 2011 1 commit
-
-
Ronald Bultje authored
Signed-off-by:
Janne Grunau <janne-libav@jannau.net>
-
- 12 Oct, 2011 2 commits
-
-
Anton Khirnov authored
-
Anton Khirnov authored
-