Opened 7 weeks ago

Closed 5 weeks ago

#10945 closed defect (fixed)

Compiling ffmpeg for Raspberry Pi5 fails

Reported by: f1faq Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: compilation
Cc: f1faq Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

I try to compile ffmpeg (master) for a Raspberry Pi5
Compiling is done on the Pi5 which is running "Linux rasp5 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux"
I strictly follow the "Compile FFmpeg for Ubuntu, Debian, or Mint" chapter
Configure step runs well.
Make fails while treating libavfilter giving an error : " invalid operand for code 'w'
Hereafter an extract of the screen when make fails :

CC libavfilter/vf_datascope.o
CC libavfilter/vf_dblur.o
CC libavfilter/vf_dctdnoiz.o
In file included from ./libavutil/bswap.h:38,

from ./libavutil/intreadwrite.h:25,
from libavfilter/vf_curves.c:27:

In function ‘av_bswap16’,

inlined from ‘parse_psfile’ at libavfilter/vf_curves.c:610:5:

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'

33 | asm("rev16 %w0, %w1" : "=r"(y) : "r"(x));

|

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'
In function ‘av_bswap16’,

inlined from ‘parse_psfile’ at libavfilter/vf_curves.c:614:9:

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'

33 | asm("rev16 %w0, %w1" : "=r"(y) : "r"(x));

|

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'
In function ‘av_bswap16’,

inlined from ‘parse_psfile’ at libavfilter/vf_curves.c:617:13:

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'

33 | asm("rev16 %w0, %w1" : "=r"(y) : "r"(x));

|

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'
In function ‘av_bswap16’,

inlined from ‘parse_psfile’ at libavfilter/vf_curves.c:618:13:

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'

33 | asm("rev16 %w0, %w1" : "=r"(y) : "r"(x));

|

./libavutil/aarch64/bswap.h:33:5: error: invalid 'asm': invalid operand for code 'w'
CC libavfilter/vf_deband.o
CC libavfilter/vf_deblock.o
CC libavfilter/vf_decimate.o
make: * [ffbuild/common.mak:81: libavfilter/vf_curves.o] Error 1
make:
* Waiting for unfinished jobs....
cma@rasp5:~/ffmpeg_sources/ffmpeg

Change History (3)

comment:1 by luckyxxl, 5 weeks ago

I have the same issue but got it working by passing --arch=arm to the configure script.

Apparently uname -m yields aarch64 on the 32-bit version of Raspberry Pi OS.

comment:2 by f1faq, 5 weeks ago

Thank you luckyxxl, you have the solution !
Worked for me, many thanks

comment:3 by f1faq, 5 weeks ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.