src/tiled_yuv.S: stub tiled_to_planar on aarch64
The whole body of tiled_yuv.S is wrapped in #ifndef __aarch64__ — the ARMv7 NEON Thumb code doesn't assemble on aarch64. On 64-bit ARM the .S object is therefore empty and tiled_to_planar comes out as an undefined symbol in the .so, which dlopen rejects at vainfo time: libva error: dlopen ... failed: undefined symbol: tiled_to_planar Runtime-wise, tiled_to_planar is only called when video_format_is_linear() returns false, which only happens for the sunxi-cedrus DRM_FORMAT_MOD_ALLWINNER_TILED NV12 entry — never on hantro/rkvdec. So the right fix is a no-op stub on aarch64 just to satisfy the linker. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -182,4 +182,19 @@ thumb_function tiled_deinterleave_to_planar
|
||||
b 7b
|
||||
end_function tiled_deinterleave_to_planar
|
||||
|
||||
#else /* __aarch64__ */
|
||||
|
||||
/* Fourier-local: aarch64 stub. The body of this file is ARMv7 NEON Thumb
|
||||
* assembly used by sunxi-cedrus (Allwinner-tiled NV12 → linear NV12) and
|
||||
* is never reached on aarch64 hosts because video_format_is_linear()
|
||||
* returns true for our NV12 entries. Provide a stub so the shared object
|
||||
* still resolves the symbol; if ever actually called, return immediately. */
|
||||
.text
|
||||
.global tiled_to_planar
|
||||
.type tiled_to_planar, %function
|
||||
.hidden tiled_to_planar
|
||||
tiled_to_planar:
|
||||
ret
|
||||
.size tiled_to_planar, .-tiled_to_planar
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user