- 07 2月, 2012 2 次提交
-
-
由 Ronald S. Bultje 提交于
Signed-off-by: NDiego Biurrun <diego@biurrun.de>
-
由 Ronald S. Bultje 提交于
Signed-off-by: NDiego Biurrun <diego@biurrun.de>
-
- 01 2月, 2012 1 次提交
-
-
由 Ronald S. Bultje 提交于
-
- 30 1月, 2012 1 次提交
-
-
由 Paul B Mahol 提交于
Signed-off-by: NPaul B Mahol <onemda@gmail.com> Signed-off-by: NRonald S. Bultje <rsbultje@gmail.com>
-
- 09 1月, 2012 1 次提交
-
-
由 Paul B Mahol 提交于
Signed-off-by: NRonald S. Bultje <rsbultje@gmail.com>
-
- 05 1月, 2012 1 次提交
-
-
由 Ronald S. Bultje 提交于
Also document the function somewhat.
-
- 04 1月, 2012 2 次提交
-
-
由 Ronald S. Bultje 提交于
-
由 Ronald S. Bultje 提交于
Non-RGB output always uses full chroma interpolation.
-
- 19 12月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
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.
-
- 18 12月, 2011 3 次提交
-
-
由 Ronald S. Bultje 提交于
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: NMans Rullgard <mans@mansr.com>
-
由 Mans Rullgard 提交于
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: NRonald S. Bultje <rsbultje@gmail.com>
-
由 Ronald S. Bultje 提交于
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: NMans Rullgard <mans@mansr.com>
-
- 17 12月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
Signed-off-by: NMans Rullgard <mans@mansr.com>
-
- 12 12月, 2011 1 次提交
-
-
由 Mans Rullgard 提交于
These semicolons cause invalid empty top-level declarations. Signed-off-by: NMans Rullgard <mans@mansr.com>
-
- 27 11月, 2011 1 次提交
-
-
由 Mans Rullgard 提交于
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: NMans Rullgard <mans@mansr.com>
-
- 25 11月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
-
- 23 10月, 2011 4 次提交
-
-
由 Ronald S. Bultje 提交于
-
由 Ronald S. Bultje 提交于
-
由 Kieran Kunhya 提交于
Signed-off-by: NRonald S. Bultje <rsbultje@gmail.com>
-
由 Kieran Kunhya 提交于
Signed-off-by: NRonald S. Bultje <rsbultje@gmail.com>
-
- 21 10月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
-
- 23 9月, 2011 1 次提交
-
-
由 Kieran Kunhya 提交于
Signed-off-by: NDiego Biurrun <diego@biurrun.de>
-
- 18 8月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
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.
-
- 13 8月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
-
- 03 8月, 2011 2 次提交
-
-
由 Ronald S. Bultje 提交于
This reverts commit ac0fb593. It causes valgrind errors which I'll want to investigate before resubmitting this.
-
由 Ronald S. Bultje 提交于
-
- 09 7月, 2011 4 次提交
-
-
由 Ronald S. Bultje 提交于
Based on a somewhat similar idea in FFmpeg's swscale copy.
-
由 Ronald S. Bultje 提交于
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.
-
由 Ronald S. Bultje 提交于
We accessed the alpha array even it wasn't used and didn't exist, hence leading to a NULL pointer segfault.
-
由 Ronald S. Bultje 提交于
When using e.g. lanczos scaling, values can drop below 0, so they should never be unsigned.
-
- 04 7月, 2011 1 次提交
-
-
由 Diego Biurrun 提交于
-
- 02 7月, 2011 1 次提交
-
-
由 Ronald S. Bultje 提交于
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.
-
- 30 6月, 2011 4 次提交
-
-
由 Ronald S. Bultje 提交于
-
由 Mohamed Naufal 提交于
This fixes building with --enable-small, by using the correct variable name. Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Ronald S. Bultje 提交于
-
由 Ronald S. Bultje 提交于
This means that precision is retained when scaling between sample formats with >8 bits per component (48bit RGB, 16bit grayscale, 9/10/16bit YUV).
-
- 28 6月, 2011 4 次提交
-
-
由 Ronald S. Bultje 提交于
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.
-
由 Ronald S. Bultje 提交于
This works through some non-obvious hacks in utils.c.
-
由 Ronald S. Bultje 提交于
This is part of the Great Evil Plan to simplify swscale.
-
由 Ronald Bultje 提交于
This is part of the Great Evil Plan to simplify swscale.
-