Ronald S. Bultje
f99654d470
swscale: reintroduce full precision in 16-bit output.
13 years ago
Kieran Kunhya
ff7913aef1
Split up yuv2yuvX functions
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
13 years ago
Kieran Kunhya
34e8d147b3
Split out yuv2yuv1 luma and chroma in order to make them generic DSP functions
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
13 years ago
Ronald S. Bultje
dc49bf1270
sws/pixfmt/pixdesc: add support for yuv420p9le/be.
13 years ago
Michael Niedermayer
cca81e7eb0
sws: gbr24p input support
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
bd141af460
swscale: Fix prototypes of *toyv12 so they can be used with planar rgb input.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Kieran Kunhya
4d4d0e8176
Fix unnecessary shift with 9/10bit vertical scaling
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
13 years ago
Michael Niedermayer
d06c5b44cc
swscale: drop redundant code.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Clément Bœsch
7c14c24250
sws: fix a huge amount of incompatible pointer type arguments warnings.
13 years ago
Ronald S. Bultje
3f04ab4fcd
swscale: split hScale() function pointer into h[cy]Scale().
...
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 years ago
Michael Niedermayer
d9c9a0c767
sws: remove hScale16NX_c()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
66bb5cd592
sws: remove hScale16N() and use ronalds reformated version of it.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
3652409f5b
sws: remove unneeded code from last merge
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Ronald S. Bultje
28c1115a91
swscale: use 15-bit intermediates for 9/10-bit scaling.
13 years ago
Ronald S. Bultje
62ee0e6a97
Revert "swscale: use 15-bit intermediates for 9/10-bit scaling."
...
This reverts commit ac0fb59348
. It
causes valgrind errors which I'll want to investigate before
resubmitting this.
13 years ago
Ronald S. Bultje
ac0fb59348
swscale: use 15-bit intermediates for 9/10-bit scaling.
13 years ago
Ronald S. Bultje
c59f9a68e2
swscale: error dithering for 16/9/10-bit to 8-bit.
...
Based on a somewhat similar idea in FFmpeg's swscale copy.
14 years ago
Ronald S. Bultje
93a10dd561
swscale: fix overflow in 16-bit vertical scaling.
...
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.
14 years ago
Ronald S. Bultje
71a04bc19d
swscale: fix crash in 8-bpc bilinear output without alpha.
...
We accessed the alpha array even it wasn't used and didn't
exist, hence leading to a NULL pointer segfault.
(cherry picked from commit bf2cba4532
)
14 years ago
Michael Niedermayer
08b57574c6
sws: fix non native endian 9-15 bit input with 16bit out
14 years ago
Michael Niedermayer
ca78fa24b7
sws: disable scale16 when int32 is used
14 years ago
Michael Niedermayer
987e4c1787
sws: fix rgb -> 16bit
14 years ago
Michael Niedermayer
d2c910b9a4
sws: fix gray16_1
14 years ago
Michael Niedermayer
9470205414
sws:ix yuv2rgb48_1_c_template()
14 years ago
Michael Niedermayer
ae05dd8731
sws: fix 16/32 bug from merge
14 years ago
Ronald S. Bultje
948ccdadf4
swscale: for >8bit scaling, read in native bit-depth.
...
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.
14 years ago
Ronald S. Bultje
4e3e333a79
swscale: error dithering for 16/9/10-bit to 8-bit.
...
Based on a somewhat similar idea in FFmpeg's swscale copy.
14 years ago
Ronald S. Bultje
7d7bacf0f1
swscale: fix overflow in 16-bit vertical scaling.
...
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.
14 years ago
Ronald S. Bultje
bf2cba4532
swscale: fix crash in 8-bpc bilinear output without alpha.
...
We accessed the alpha array even it wasn't used and didn't
exist, hence leading to a NULL pointer segfault.
14 years ago
Ronald S. Bultje
f44d50a94c
swscale: fix 16-bit horizontal scaling underflow.
...
When using e.g. lanczos scaling, values can drop below 0, so they
should never be unsigned.
14 years ago
Diego Biurrun
e589e4b82d
Remove unused static tables and static inline functions.
14 years ago
Ronald S. Bultje
8a8d0ce208
swscale: for >8bit scaling, read in native bit-depth.
...
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.
14 years ago
Ronald S. Bultje
afb9d4e8f1
swscale: fix another yuv range conversion overflow in 16bit scaling.
...
(cherry picked from commit 81cc7d0bd1
)
14 years ago
Ronald S. Bultje
ebb0d60353
swscale: fix yuv range correction when using 16-bit scaling.
...
(cherry picked from commit e0b8fff6c7
)
14 years ago
Ronald S. Bultje
81cc7d0bd1
swscale: fix another yuv range conversion overflow in 16bit scaling.
14 years ago
Mohamed Naufal
705b21a06e
swscale: Unbreak build with --enable-small
...
This fixes building with --enable-small, by using the correct
variable name.
Signed-off-by: Martin Storsjö <martin@martin.st>
14 years ago
Ronald S. Bultje
e0b8fff6c7
swscale: fix yuv range correction when using 16-bit scaling.
14 years ago
Ronald S. Bultje
45f6ffe5e9
swscale: implement >8bit scaling support.
...
This means that precision is retained when scaling between sample
formats with >8 bits per component (48bit RGB, 16bit grayscale,
9/10/16bit YUV).
14 years ago
Ronald S. Bultje
ef1ee362b3
swscale: implement >8bit scaling support.
...
This means that precision is retained when scaling between sample
formats with >8 bits per component (48bit RGB, 16bit grayscale,
9/10/16bit YUV).
14 years ago
Ronald S. Bultje
13a099799e
swscale: change prototypes of scaled YUV output functions.
...
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.
14 years ago
Ronald S. Bultje
dff5a83532
swscale: re-add support for non-native endianness.
...
This works through some non-obvious hacks in utils.c.
14 years ago
Ronald S. Bultje
3d3c814937
swscale: disentangle yuv2rgbX_c_full() into small functions.
...
This is part of the Great Evil Plan to simplify swscale.
14 years ago
Ronald Bultje
6fba14eecb
swscale: split yuv2packed[12X]_c() remainders into small functions.
...
This is part of the Great Evil Plan to simplify swscale.
14 years ago
Ronald S. Bultje
97535ffb97
swscale: remove unused xInc/srcW arguments from hScale().
14 years ago
Michael Niedermayer
15b4f6449d
swscale: fix mono input for width%8
...
Fixes ticket193
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14 years ago
Ronald S. Bultje
4e05830205
swscale: remove misplaced comment.
...
The comment should have been placed only in
yuv2rgb48_X_c_template, not yuv2rgb48_1_c_template.
14 years ago
Ronald S. Bultje
9f63211175
swscale: split out RGB48 output functions from yuv2packed[12X]_c().
...
This is part of the Great Evil Plan to simplify swscale. Note that
you'll see some code duplication between the output functions for
different RGB variants, and even between packed-YUV and RGB
variants. This is intentional because it improves readability.
14 years ago
Michael Niedermayer
0af8a71d66
swscale: fix JPEG-range YUV scaling artifacts.
...
YUV planes were marked as uint16_t, but they contained signed data.
Fixes issue 1108 and 675.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
14 years ago
Ronald S. Bultje
103278f7b0
libavutil/swscale: YUV444P10/YUV444P9 support.
...
Also add missing glue code for recently added YUV422P10 formats
to swscale.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
14 years ago
Ronald S. Bultje
af2faf2076
swscale: split YUYV output out of yuv2packed[12X]_c().
...
This is part of the Great Evil Plan to simplify swscale.
14 years ago