I've been building a gentoo install on my 8gb raspberry pi CM4 on a cm4 to pi4 adapter board, and its been going great. I'm trying to use this to build a handheld machine to carry with me and use as a remote console for my machines at home, using the moonlight streaming system. This has built and runs properly, however, I am really struggling with hw accelerated h265 video decoding. I've followed the instructions here: https://github.com/moonlight-stream/moo ... berry-Pi-4 and I'm able to watch software decoded h.265, but when it streams anything more than a desktop, i drop to about 5 frames per second and its not really useable. From what I've read, this is possible on 64 bit ARM devices now, and functions properly in raspbian using a patched ffmpeg, which is what Sakaki did in the gentoo-on-rpi-64 system, however, the ebuild used fails to compile using the neon CPU flag due to it not wanting to use thumb2, despite that CPU_FLAG being set:
Here is my /etc/portage/package.use/ffmpeg:
Code: Select all
media-video/ffmpeg libdrm mmal libv4l sdl x264 x265 vorbis webp theora vpx fdk v4l openh264 opus pulseaudio CPU_FLAGS_ARM="thumb2"Code: Select all
!!! The ebuild selected to satisfy "ffmpeg" has unmet requirements.
- media-video/ffmpeg-4.3::local USE="X bzip2 encode fdk gpl iconv libdrm libv4l network openh264 opus postproc pulseaudio sdl theora threads v4l vorbis vpx webp x264 x265 zlib -alsa (-amr) -amrenc (-appkit) -bluray (-bs2b) -cdio -chromaprint -chromium -codec2 -cpudetection (-cuda) -dav1d -debug -doc -flite -fontconfig -frei0r -fribidi -gcrypt -gme -gmp -gnutls -gsm -hardcoded-tables -iec61883 (-ieee1394) -jack -jpeg2k -kvazaar -ladspa -libaom -libaribb24 -libass -libcaca -libilbc -libressl -librtmp -libsoxr -libtesseract -libxml2 -lv2 -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-mmal) -modplug -mp3 -openal (-opencl) -opengl -openssl -oss -pic -rubberband -samba -snappy -speex -srt -ssh -svg -test -truetype -twolame -v4l2m2m-fix -vaapi (-vdpau) -vidstab -vulkan -wavpack -xvid -zeromq -zimg (-zvbi)" CPU_FLAGS_ARM="(neon) (v8) (vfp) (vfpv3) (-thumb) (-thumb2) (-v6)" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher" VIDEO_CARDS="-nvidia"
The following REQUIRED_USE flag constraints are unsatisfied:
cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 )
The above constraints are a subset of the following complete expression:
cuda? ( video_cards_nvidia ) libv4l? ( v4l ) v4l2m2m-fix? ( v4l ) fftools_cws2fws? ( zlib ) test? ( encode ) postproc? ( gpl ) frei0r? ( gpl ) cdio? ( gpl ) rubberband? ( gpl ) vidstab? ( gpl ) samba? ( gpl ) encode? ( x264? ( gpl ) x265? ( gpl ) xvid? ( gpl ) ) arm64? ( cpu_flags_arm_v8 ) cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) cpu_flags_x86_xop? ( cpu_flags_x86_avx ) cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx )
I'm a bit stuck here, I've been looking for either a patched ffmpeg that I can make an ebuild for, or else a set of patches that can be placed in /etc/portage/patches to patch ffmpeg at compile, but I've been struggling to find any workable solution over the last two weeks. Has anyone had any success with this?


