1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

36 Commits

Author SHA1 Message Date
Niklas Haas
67adb30322 swscale: rename SwsContext to SwsInternal
And preserve the public SwsContext as separate name. The motivation here
is that I want to turn SwsContext into a public struct, while keeping the
internal implementation hidden. Additionally, I also want to be able to
use multiple internal implementations, e.g. for GPU devices.

This commit does not include any functional changes. For the most part, it is
a simple rename. The only complications arise from the public facing API
functions, which preserve their current type (and hence require an additional
unwrapping step internally), and the checkasm test framework, which directly
accesses SwsInternal.

For consistency, the affected functions that need to maintain a distionction
have generally been changed to refer to the SwsContext as *sws, and the
SwsInternal as *c.

In an upcoming commit, I will provide a backing definition for the public
SwsContext, and update `sws_internal()` to dereference the internal struct
instead of merely casting it.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
2024-10-24 22:50:00 +02:00
Martin Storsjö
77e6293735 arm: Consistently use proper interworking function returns
Use "bx lr", or "pop {lr}", which do proper mode switching
between thumb and arm modes. A plain "mov pc, lr" does not switch
from thumb mode to arm mode (while in arm mode, it does switch
mode for a thumb caller).

This is normally not an issue, as CONFIG_THUMB only is enabled if
the C compiler defaults to thumb; but stick to patterns that can
do mode switching if needed, for consistency.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-10-09 15:52:51 +03:00
Niklas Haas
c1a0e65763 swscale/internal: constify SwsFunc
I want to move away from having random leaf processing functions mutate
plane pointers, and while we're at it, we might as well make the strides
and tables const as well.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
2024-10-07 19:51:34 +02:00
Martin Storsjö
507c2a5774 libswscale: arm: Don't assume aligned output in yuv2rgb functions
This fixes failures in recently added checkasm tests.

While the buffers in most cases are aligned, libswscale in general
can't assume the output to be aligned.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-08-19 23:04:52 +03:00
Anton Khirnov
1f80789bf7 sws: rename SwsContext.swscale to convert_unscaled
That function pointer is now used only for unscaled conversion.
2021-07-03 15:57:53 +02:00
Andreas Rheinhardt
f3c197b129 Include attributes.h directly
Some files currently rely on libavutil/cpu.h to include it for them;
yet said file won't use include it any more after the currently
deprecated functions are removed, so include attributes.h directly.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-19 14:34:10 +02:00
Josh de Kock
70b14cc8d6 swscale: arm: fix NEON hscale init
The NEON hscale function only supports X8 filter sizes and should only
be selected when these are being used. At the moment filterAlign is
set to 8 but in the future when extra NEON assembly for specific sizes is
added they will need to have checks here too.

The immediate usecase for this change is making the hscale checkasm
test easier and without NEON specific edge-cases (x86 already has these
guards).

This applies the same fix from 718c8f9aa5
on the 32 bit arm version of the function, fixing fate-checkasm-sw_scale
there.

Signed-off-by: Martin Storsjö <martin@martin.st>
2020-05-15 23:33:46 +03:00
Martin Storsjö
f33f728470 arm: swscale: Only compile the rgb2yuv asm if .dn aliases are supported
Vanilla clang supports altmacro since clang 5.0, and thus doesn't
require gas-preprocessor for building the arm assembly any longer.

However, the built-in assembler doesn't support .dn directives.

This readds checks that were removed in d7320ca3ed, when
the last usage of .dn directives within libav were removed.

Alternatively, the assembly could be rewritten to not use the
.dn directive, making it available to clang users.

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-03-31 21:54:56 +03:00
Matthieu Bouron
4c22441276 swscale/arm: add yuv2planeX_8_neon 2016-04-11 18:13:36 +02:00
Matthieu Bouron
7abc8e7ae3 swscale/arm: add ff_hscale_8_to_15_neon 2016-04-09 00:16:56 +02:00
Matthieu Bouron
58994d7bca swscale/arm/yuv2rgb: make the code bitexact with its aarch64 counter part 2016-04-01 17:23:45 +02:00
Matthieu Bouron
5629361cc2 swscale/arm/yuv2rgb: save a few instructions by processing the luma line interleaved 2016-04-01 17:23:45 +02:00
Matthieu Bouron
339668301e swscale/arm/yuv2rgb: re-order compute_rgba macro arguments 2016-04-01 17:23:45 +02:00
Matthieu Bouron
ff4885face swscale/arm/yuv2rgb: rename {process_1l,process_2l,compute}_16px{,_internal} macros 2016-04-01 17:23:45 +02:00
Matthieu Bouron
562653b731 swscale/arm/yuv2rgb: macro-ify 2016-04-01 17:23:45 +02:00
Matthieu Bouron
0286b56f2f swscale/arm/yuv2rgb: factorize lsl in load_args_nvx 2016-04-01 17:23:45 +02:00
Matthieu Bouron
0649fe0fae swscale/arm/yuv2rgb: factorize lsl in load_args_yuv420p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
2aec59c07c swscale/arm/yuv2rgb: remove unused store of dst + linesize in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
b3ea901945 swscale/arm/yuv2rgb: factorize lsl in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
466e209e6e swscale/arm/yuv2rgb: fix comments in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
11b4acab8b swscale/arm/yuv2rgb: remove 32bit code path 2016-04-01 17:23:45 +02:00
Xiaolei Yu
5a91589476 swscale/arm: re-enable neon rgbx to nv12 routines
Commit '842b8f4ba2e79b9c004a67f6fdb3d5c5d05805d3' fixed clang/iphone
build but failed on some versions of cygwin. It has now been verified
to work on both platforms.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-22 17:29:58 +01:00
Matthieu Bouron
e4e9b9454e swscale/arm/yuv2rgb: add ff_yuv422p_to_{argb,rgba,abgr,bgra}_neon_{16,32} 2016-01-04 18:56:52 +01:00
Matthieu Bouron
44913d1945 swscale/arm/yuv2rgb: fix typo 2016-01-04 18:56:52 +01:00
Matthieu Bouron
b32a42295a swscale/arm/yuv2rgb: add ff_yuv420p_to_{argb,rgba,abgr,bgra}_neon_{16,32} 2015-12-19 22:09:28 +01:00
Matthieu Bouron
e0dc22b99e swscale/arm/yuv2rgb: disable neon if accurate_rnd is enabled
This disables the 32bit precision neon code path in favor of the
default C one and avoids breaking fate.
2015-12-19 22:09:28 +01:00
Matthieu Bouron
c2ad248321 swscale/arm/yuv2rgb: simplify process_16px_* macro call 2015-12-19 10:42:33 +01:00
Clément Bœsch
91b4afd58d swscale/arm/yuv2rgb: fix slicing 2015-12-18 16:21:49 +01:00
Matthieu Bouron
5aca33c2cf swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon_16 2015-12-08 08:12:42 +01:00
Matthieu Bouron
46feb66972 swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon
Signed-off-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
Signed-off-by: Clément Bœsch <clement@stupeflix.com>
2015-11-23 14:47:12 +01:00
Michael Niedermayer
6bd001d766 swscale: disable ARM code until its build failure with clang/iphone is fixed
See: "19:40 Yu Xiaolei Re: [FFmpeg-devel] [PATCH] fix build with gas-preprocessor.pl"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 19:58:38 +01:00
Michael Niedermayer
6044f161d3 Revert "swscale: disable ARM code until its build failure with clang/iphone is fixed"
This reverts commit c8c7736c10.
2014-01-12 18:01:39 +01:00
Yu Xiaolei
842b8f4ba2 fix build with gas-preprocessor.pl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 18:01:39 +01:00
Michael Niedermayer
c8c7736c10 swscale: disable ARM code until its build failure with clang/iphone is fixed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 17:17:34 +01:00
Yu Xiaolei
af228a9f9f swscale/arm: fix build error with --enable-shared
use string comparison in assembler derivatives to prevents assembler from treating names in test expressions as imported symbols

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 14:28:25 +01:00
Yu Xiaolei
1c67ad9d93 swscale: NEON optimized unscaled rgba to nv12 conversion
Signed-off-by: Yu Xiaolei <dreifachstein@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 00:47:39 +01:00