Diego Biurrun
17337f54c0
x86: Split inline and external assembly #ifdefs
12 years ago
Diego Biurrun
a886b279a0
x86: cosmetics: Comment some #endifs for better readability
12 years ago
Ronald S. Bultje
b64a72e1b2
yuv2rgb: handle line widths that are not a multiple of 4.
...
This introduces support for width%4==2 in addition to width%4==0. For
odd widths, some more checks are needed, since the current code always
handles two luma items in a row, thus there is a possibility of an
overread by one.
13 years ago
Martin Storsjö
3ad9eac5a0
testprogs: Remove unused includes
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Giorgio Vazzana
1e6072139b
swscale: x86: fix #endif comments in rgb2rgb template file
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
13 years ago
Martin Storsjö
1d9c2dc89a
Don't include common.h from avutil.h
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Mans Rullgard
90540c2d5a
x86: swscale: fix fragile memory accesses
...
To access data at multiple fixed offsets from a base address, this
code uses a single "m" operand and code of the form "32%0", relying on
the memory operand instantiation having no displacement, giving a final
result of the form "32(%rax)". If the compiler uses a register and
displacement, e.g. "64(%rax)", the end result becomes "3264(%rax)",
which obviously does not work.
Replacing the "m" operands with "r" operands allows safe addition of a
displacement. In theory, multiple memory operands could use a shared
base register with different index registers, "(%rax,%rbx)", potentially
making more efficient use of registers. In the cases at hand, no such
sharing is possible since the addresses involved are entirely unrelated.
After this change, the code somewhat rudely accesses memory without
using a corresponding memory operand, which in some cases can lead to
unwanted "optimisations" of surrounding code. However, the original
code also accesses memory not covered by a memory operand, so this is
not adding any defect not already present. It is also hightly unlikely
that any such optimisations could be performed here since the memory
locations in questions are not accessed elsewhere in the same functions.
This fixes crashes with suncc.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Mans Rullgard
10b83cb653
x86: swscale: remove disabled code
...
This code has been disabled since 2003. Nobody will ever look at
it again.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Mans Rullgard
c318626ce2
x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.h
...
This puts x86-specific things in the x86/ subdirectory where they
belong.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Diego Biurrun
239fdf1b4a
x86: build: replace mmx2 by mmxext
...
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.
13 years ago
Ronald S. Bultje
8e5d71d110
swscale: bury one more piece of inline asm under HAVE_INLINE_ASM.
13 years ago
Ronald S. Bultje
3b175384bb
swscale: add missing HAVE_INLINE_ASM check.
...
The function called in this block is under HAVE_INLINE_ASM itself also.
13 years ago
Diego Biurrun
5a6e3c039c
swscale: Mark all init functions as av_cold
13 years ago
Diego Biurrun
16d2a1a51c
swscale: x86: Drop pointless _mmx suffix from filenames
...
The files do not contain only MMX code.
13 years ago
Ronald S. Bultje
a6e922ffa2
swscale: place inline assembly bilinear scaler under HAVE_INLINE_ASM.
13 years ago
Ronald S. Bultje
b2668c85e9
x86: swscale: Place inline assembly code under appropriate #ifdefs
...
Fixes compilation for compilers that do not support gcc inline assembly.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
13 years ago
Martin Storsjö
557519189f
swscale: yuv2planeX 8bit >=sse2 functions need aligned stack on x86-32.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
13 years ago
Diego Biurrun
2047e40e6e
Clarify Doxygen comment for FF_API_* #defines.
13 years ago
Diego Biurrun
86ab7b0f2f
Create version.h headers for libraries that lack them
13 years ago
Mans Rullgard
4996e8f510
bfin: libswscale: add const where appropriate to fix warnings
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Mans Rullgard
6bac8971cc
bfin: libswscale: remove unnecessary #includes
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Ronald S. Bultje
404410a53a
sws: fix planar RGB input conversions for 9/10/16 bpp.
...
Fixes bug 282.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years ago
Diego Biurrun
9eb83a56aa
build: cosmetics: Split HEADERS/OBJS/PROGS lists into one entry per line.
13 years ago
Diego Biurrun
9b75ae05cf
swscale: K&R formatting cosmetics (part III)
13 years ago
Ronald S. Bultje
7f77e9041a
swscale: clip before assigning tables in RGB output functions.
13 years ago
Ronald S. Bultje
4860625236
swscale: fix off-by-one in second coefficient in bilinear filters.
...
If coefficient A is 12-bits xixed-point number "X", then the other
coefficient is (1 << 12) - X, not (1 << 12) - X - 1.
13 years ago
Ronald S. Bultje
9206ac80a5
swscale: handle last pixel if lines have an odd width.
...
Fixes bug 270.
13 years ago
Diego Biurrun
ef0ee7f657
swscale: K&R formatting cosmetics (part II)
...
Also adjust some comments including wording and typo fixes.
13 years ago
Diego Biurrun
baaab6069a
build: Move all arch OBJS declarations into arch subdirectory Makefiles.
13 years ago
Diego Biurrun
7bb3a302fe
build: Consistently handle conditional compilation for all optimization OBJS.
13 years ago
Henrik Gramner
729f90e268
x86inc improvements for 64-bit
...
Add support for all x86-64 registers
Prefer caller-saved register over callee-saved on WIN64
Support up to 15 function arguments
Also (by Ronald S. Bultje)
Fix up our asm to work with new x86inc.asm.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
13 years ago
Diego Biurrun
02c39f056a
ppc: Add/remove a number of const qualifiers to fix related warnings.
13 years ago
Ronald S. Bultje
bc0bdda77b
swscale: handle complete dimensions for monoblack/white.
...
Fixes bug 269.
13 years ago
Hans-Kristian Arntzen
b991b300f2
Unscaled Planar RGB -> RGB support in swscale.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
13 years ago
Diego Biurrun
e7e19b15c7
build: Only clean the architecture subdirectory we build for.
...
This allows simplifying the Makefiles; it is no longer necessary to register
arch subdirectory Makefiles, just putting them in place is enough.
13 years ago
Diego Biurrun
ad0e31f134
build: prettyprinting cosmetics
13 years ago
Ronald S. Bultje
45fdcc8e2d
swscale: convert hscale() to use named arguments.
13 years ago
Ronald S. Bultje
aba7a827aa
swscale: convert hscale to cpuflags().
13 years ago
Ronald S. Bultje
9487fb4dea
swscale: clip unscaled output intermediates.
...
Fixes bug 240, as well as several integer overflows (visible as glitches)
in other scaling output routines, e.g. YUV422.
13 years ago
Ronald S. Bultje
2254b559cb
swscale: make filterPos 32bit.
...
Fixes overflows for large image sizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Ronald S. Bultje
1c97b5c4a3
swscale: remove "cpu flags" from -sws_flags description.
13 years ago
Ronald S. Bultje
dccb2cd3f9
swscale: make %rep unconditional.
...
Fixes pre-processing with latest versions of nasm.
13 years ago
Ronald S. Bultje
8249a23fc1
swscale: remove now unnecessary hack.
13 years ago
Diego Biurrun
36697be187
swscale: K&R formatting cosmetics for PowerPC code (part II/II)
13 years ago
Ronald S. Bultje
791de61bbb
swscale: fix another integer overflow.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Ronald S. Bultje
2bb628f870
swscale: fix another integer overflow at large dimensions/rescales.
13 years ago
Ronald S. Bultje
1d8c4af396
swscale: take first/lastline over/underflows into account for MMX.
...
Fixes crashes for extremely large resizes (several 100-fold).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Ronald S. Bultje
491865b57d
swscale: fix underflows in firstline calculations for extreme resizes.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Ronald S. Bultje
19a65b5be4
swscale: fix overflows in filterPos[] calculation for large sizes.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Ronald S. Bultje
1254022ea7
swscale: fix filtersize clipping.
...
if srcW<=2, clip(x, 1, srcW-2) still allows srcW to be < 1.
13 years ago