mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
0c25caa470
commit
f33f728470
2
configure
vendored
2
configure
vendored
@ -2149,6 +2149,7 @@ SYSTEM_LIBRARIES="
|
||||
|
||||
TOOLCHAIN_FEATURES="
|
||||
as_arch_directive
|
||||
as_dn_directive
|
||||
as_fpu_directive
|
||||
as_func
|
||||
as_object_arch
|
||||
@ -5530,6 +5531,7 @@ EOF
|
||||
check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
|
||||
|
||||
check_as as_arch_directive ".arch armv7-a"
|
||||
check_as as_dn_directive "ra .dn d0.i16"
|
||||
check_as as_fpu_directive ".fpu neon"
|
||||
|
||||
# llvm's integrated assembler supports .object_arch from llvm 3.5
|
||||
|
@ -18,6 +18,8 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#if HAVE_AS_DN_DIRECTIVE
|
||||
#include "rgb2yuv_neon_common.S"
|
||||
|
||||
/* downsampled R16G16B16 x8 */
|
||||
@ -78,3 +80,4 @@ alias_qw c8x8x2, q10
|
||||
.endm
|
||||
|
||||
loop_420sp rgbx, nv12, init, kernel_420_16x2, 16
|
||||
#endif
|
||||
|
@ -18,6 +18,8 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#if HAVE_AS_DN_DIRECTIVE
|
||||
#include "rgb2yuv_neon_common.S"
|
||||
|
||||
/* downsampled R16G16B16 x8 */
|
||||
@ -117,3 +119,4 @@ alias_qw c8x8x2, q10
|
||||
|
||||
|
||||
loop_420sp rgbx, nv12, init, kernel_420_16x2, 32
|
||||
#endif
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "libswscale/swscale_internal.h"
|
||||
#include "libavutil/arm/cpu.h"
|
||||
|
||||
#if HAVE_AS_DN_DIRECTIVE
|
||||
extern void rgbx_to_nv12_neon_32(const uint8_t *src, uint8_t *y, uint8_t *chroma,
|
||||
int width, int height,
|
||||
int y_stride, int c_stride, int src_stride,
|
||||
@ -178,3 +179,8 @@ void ff_get_unscaled_swscale_arm(SwsContext *c)
|
||||
if (have_neon(cpu_flags))
|
||||
get_unscaled_swscale_neon(c);
|
||||
}
|
||||
#else
|
||||
void ff_get_unscaled_swscale_arm(SwsContext *c)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user