Age | Commit message (Collapse) | Author |
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
This functionality is only implemented for RGB24/32 and causes crashes
otherwise.
|
|
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.
|
|
|
|
This fixes building with --enable-small, by using the correct
variable name.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
This means that precision is retained when scaling between sample
formats with >8 bits per component (48bit RGB, 16bit grayscale,
9/10/16bit YUV).
|
|
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
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.
|
|
This works through some non-obvious hacks in utils.c.
|
|
This is part of the Great Evil Plan to simplify swscale.
|
|
This is part of the Great Evil Plan to simplify swscale.
|
|
This will likely lead to a considerable performance boost,
since it removes a branch from the inner loop. Part of the
Great Evil Plan to simplify swscale.
|
|
This prevents a crash when converting to NV12/21 without the bitexact
flags enabled.
|
|
|
|
Calling Make from subdirectories is not supported and config.mak has
multiple inclusion guards anyway, so the top-level include is enough.
|
|
|
|
On architectures such as x86 (both 32 bit and 64bit), the stack element
size is fixed, which maintains alignment. Here, this change does not
break anything. However, we also support also other architectures where
this property is not maintained and therefore, applications will crash
horribly.
This change effectively forces all applications to be recompiled against
libswscale.
|
|
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
|
|
|
Some MMX2 functions were being referenced without proper #ifdefs.
|
|
The comment should have been placed only in
yuv2rgb48_X_c_template, not yuv2rgb48_1_c_template.
|
|
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.
|
|
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>
|
|
Also add missing glue code for recently added YUV422P10 formats
to swscale.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
This is part of the Great Evil Plan to simplify swscale.
|
|
This is part of the Great Evil Plan to simplify swscale.
|
|
Inline functions are easier to read, maintain, modify and test,
which justifies the slightly increased source size. This patch
also adds support for non-native endianness RGB15/16 and fixes
isSupportedOutput() to no longer claim that we support writing
non-native RGB565/555/444.
|
|
This way the code in the file is less cluttered all-over-the-
place.
|
|
Inline functions are slightly larger in source code, but
are easier to handle in source code editors. The binary code
generated is the same.
|
|
Inline functions are slightly larger in source code, but
are easier to handle in source code editors. The binary code
generated is the same.
|
|
This is part of the Great Evil Plan to simplify swscale.
|
|
This generates better code on some non-x86 architectures.
|
|
This reduces source code size without affecting the binary.
|
|
Remove inline keyword from functions that are never inlined.
Use av_always_inline for functions that should be force-inlined
for performance reasons. Use av_cold for init functions.
|
|
Remove inline keyword for functions that are only called through
their function pointers (and thus cannot be inlined); add av_cold
keyword to init function, and use av_always_inline instead of
inline for functions that must be inlined for performance reasons.
|
|
This prevents the following compiler warnings: "warning:
initialization from incompatible pointer type". Since the
variables are only ever used in inline assembly, their type
is actually irrelevant (so the part where it was wrong did
not invoke any buggy behaviour).
|
|
This way, they look like regular code, which is easier to
understand.
|
|
Use of this wrapper was removed in a previous patch, but I
forgot to actually remove the function itself.
|
|
|
|
|
|
|
|
|
|
|
|
|