game-stop / veejay

Veejay is a visual instrument and realtime video sampler (for live video improvisation)
http://veejayhq.net
81 stars 11 forks source link

[question] Any hints on how to cross-compile for rpi4 #275

Open gui-lux opened 1 year ago

gui-lux commented 1 year ago

Hi, just curious, I'd love to see how veejay is running on rpi. I don't even know if it's possible and not sure at all how I would proceed.

From my non-existent knowledge into this, I understand I need to install gcc-10-arm-linux-gnueabihf or something similar, install all dependencies on the rpi4 and that's all I know. I'm running debian on an x86_64 host and my rpi4 runs diet-pi, a nice debian derivative.

Many thanks if you have ideas !

game-stop commented 1 year ago

Did you try this on rpi4 ?

gui-lux commented 1 year ago

Hi, no, didn't try, because I can't figure out clearly the steps to achieve this. Still open to suggestions : )

game-stop commented 1 year ago

The same as usual. If there is any error that stops the configure or build process, just let me know.

$ sh autogen.sh $ ./configure $ make $ make install

gui-lux commented 1 year ago

I tried several months ago, can't remember clearly the error. It was something architecture related, some -MARCH parameter maybe...

Currently backing up the rpi and I get back to you.

gui-lux commented 1 year ago

There it is, at the ./configure step and I don't know what to do here :


checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown
game-stop commented 1 year ago

Okay, I added the definitions for aarch64 architecture. You can try again ( and we take the next problem )

gui-lux commented 1 year ago

Just the same output from a fresh clone I'm afraid :

checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown
game-stop commented 1 year ago

Updated the rule to match against aarch64* , that should do it.

gui-lux commented 1 year ago

Fresh clone and same output. Pasting anyway, just in case.

checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown
game-stop commented 1 year ago

Updated the configure script to output a more informative error, can you try again ? It will still fail.

gui-lux commented 1 year ago

About the same

checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown
game-stop commented 1 year ago

Did you run autogen.sh ? The error I was expecting here is 'unknown arch' instead of 'unknown'

gui-lux commented 1 year ago

Output from autogen.sh :

dietpi@x3800:~/compilation/veejay/veejay-current/veejay-core$ ./autogen.sh 
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4 --force -I m4 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --include=m4 --force
autoreconf: running: /usr/bin/autoheader --include=m4 --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:76: installing './compile'
configure.ac:15: installing './config.guess'
configure.ac:15: installing './config.sub'
configure.ac:19: installing './install-sh'
configure.ac:19: installing './missing'
Makefile.am: installing './INSTALL'
libvevo/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'

And as expected, ./configure output is the same.

gui-lux commented 1 year ago

Just to make sure, do I need any extra deps on rpi or not ?

game-stop commented 1 year ago

No, no extra deps are needed. I pushed changes to all configure.ac scripts now

gui-lux commented 1 year ago

Well, autoconf and configure went fine. It fails when building veejay-core :

libtool: link: ar cr .libs/libmjpegutils.a .libs/mjpeg_logging.o .libs/mpegconsts.o .libs/mpegtimecode.o .libs/yuv4mpeg.o .libs/yuv4mpeg_ratio.o 
libtool: link: ranlib .libs/libmjpegutils.a
libtool: link: ( cd ".libs" && rm -f "libmjpegutils.la" && ln -s "../libmjpegutils.la" "libmjpegutils.la" )
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/mjpegtools »
Making all in fastarm
make[3] : on entre dans le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
depbase=`echo new_arm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB     -MT new_arm.lo -MD -MP -MF $depbase.Tpo -c -o new_arm.lo new_arm.S &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB -MT new_arm.lo -MD -MP -MF .deps/new_arm.Tpo -c new_arm.S  -fPIC -DPIC -o .libs/new_arm.o
gcc: error: unrecognized command-line option ‘-mthumb’
gcc: error: unrecognized command-line option ‘-mthumb-interwork’
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2
game-stop commented 1 year ago

Okay, I changed the configure.ac scripts and removed the -mthumb -mthumb-interwork for this architecture.

game-stop commented 1 year ago

Also, please share the output of

$ cat /proc/cpuinfo

to see what optimizations can be enabled to speed up operations like memcpy, subsample, supersample, convert etc

gui-lux commented 1 year ago
root@x3800:~# cat /proc/cpuinfo 
processor       : 0
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 1
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 2
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 3
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

Hardware        : BCM2835
Revision        : c03114
Serial          : 10000000243c58e3
Model           : Raspberry Pi 4 Model B Rev 1.4

My lunch break is ending, more to come later. : )

gui-lux commented 1 year ago
libtool: link: ar cr .libs/libmjpegutils.a .libs/mjpeg_logging.o .libs/mpegconsts.o .libs/mpegtimecode.o .libs/yuv4mpeg.o .libs/yuv4mpeg_ratio.o 
libtool: link: ranlib .libs/libmjpegutils.a
libtool: link: ( cd ".libs" && rm -f "libmjpegutils.la" && ln -s "../libmjpegutils.la" "libmjpegutils.la" )
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/mjpegtools »
Making all in fastarm
make[3] : on entre dans le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
depbase=`echo new_arm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB     -MT new_arm.lo -MD -MP -MF $depbase.Tpo -c -o new_arm.lo new_arm.S &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB -MT new_arm.lo -MD -MP -MF .deps/new_arm.Tpo -c new_arm.S  -fPIC -DPIC -o .libs/new_arm.o
gcc: error: unrecognized command-line option ‘-mthumb’
gcc: error: unrecognized command-line option ‘-mthumb-interwork’
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2

From a fresh clone

game-stop commented 1 year ago

Can you send the config.h file that is created after running ./configure ? Updates have been pushed to veejay-core configure.ac script

gui-lux commented 1 year ago

config.h.txt

gui-lux commented 1 year ago

huge output when building veejay-core :

new_arm.S:1855: Erreur: mnémonique inconnue « strge » — « strge r1,[r0,#4] »
new_arm.S:1855: Erreur: mnémonique inconnue « addge » — « addge r0,r0,#8 »
new_arm.S:1855: Erreur: mnémonique inconnue « subge » — « subge r2,r2,#8 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#4 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r3,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « sub r2,r2,#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « strble » — « strble r1,[r0] »
new_arm.S:1855: Erreur: mnémonique inconnue « strble » — « strble r1,[r0,#1] »
new_arm.S:1855: Erreur: mnémonique inconnue « addle » — « addle r0,r0,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « add r2,r2,r3 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbne » — « strbne r1,[r0],#1 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#2 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbge » — « strbge r1,[r0] »
new_arm.S:1855: Erreur: mnémonique inconnue « strbge » — « strbge r1,[r0,#1] »
new_arm.S:1855: Erreur: mnémonique inconnue « addge » — « addge r0,r0,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « tst r2,#1 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbne » — « strbne r1,[r0] »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « mov r0,ip »
new_arm.S:1855: Erreur: mnémonique inconnue « bx » — « bx lr »
new_arm.S:1855: Erreur: mnémonique inconnue « pop » — « pop {r4} »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « mov r0,ip »
new_arm.S:1855: Erreur: mnémonique inconnue « bx » — « bx lr »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « tst r0,#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « strne » — « strne r1,[r0],#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « subne » — « subne r2,r2,#4 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#16 »
new_arm.S:1855: Erreur: mnémonique inconnue « poplt » — « poplt {r4} »
new_arm.S:1488: Erreur: symbole non défini ip utilisé comme valeur immédiate
new_arm.S:1500: Erreur: symbole non défini ip utilisé comme valeur immédiate
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2

Sorry for so much French Won't touch anything now, let me know if you need any file(s) related to this output.

game-stop commented 1 year ago

Yes, the first error that happens will be the most useful. You can redirect stderr to a file, this leaves just the errors. However, most likely your platform can't support the assembly included by new_arm.S and it needs to be excluded from the build when your platform is targeted.

game-stop commented 1 year ago

Can you run the following C program ?

#include <arm_neon.h>
      int main() {
        uint8x8_t v = vdup_n_u8(1);
        return 0
     } 

$ gcc -march=armv8-a+crc -mfpu=neon -o test test.c && ./test

$ gcc -march=native -o test test.c && ./test

$ gcc -march=armv8-a+crc -o test test.c && ./test

This will test for a SIMD NEON instruction. One of the gcc commands should compile and run with exit code 0

game-stop commented 1 year ago

Please try building veejay-core from https://github.com/game-stop/veejay/tree/arm8 and send me the output from configure & make

gui-lux commented 1 year ago

errors while building veejay-core : make.txt

gui-lux commented 1 year ago
dietpi@x3800:~/test$ gcc -march=armv8-a+crc -mfpu=neon -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: error: unrecognized command-line option ‘-mfpu=neon’
gcc: fatal error: no input files
compilation terminated.
dietpi@x3800:~/test$ gcc -march=native -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: fatal error: no input files
compilation terminated.
dietpi@x3800:~/test$ gcc -march=armv8-a+crc -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: fatal error: no input files
compilation terminated.

I might be misunderstanding what you asked, I'll just skip to try to build the new veejay-core for now.

gui-lux commented 1 year ago

And the errors from when running make for the custom veejay-core : makevjcorecustom.txt

But diff tells me these two outputs are the same.

One question here, ./configure says the following at the end :

configure: 
configure:  Veejay-Core 1.5.65 build configuration :
configure: 
configure:  Compiler flags: -march=armv8-a+crc -march=native -ftree-vectorize  -O3 -fno-stack-protector -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -Wall -Wunused  -fno-stack-protector
configure:    architecture: auto
configure: 
configure:  Architecture: aarch64 
configure: 
configure:    arm
configure:     NEON    enabled     : no
configure: 
configure:    Platform: Linux
configure: 
configure:  Required dependencies:
configure:   - POSIX Threads (pthread)       : true
configure:   - FFmpeg/AV AVFormat            : true 
configure:   - FFmpeg/AV AVCodec             : true 
configure:   - FFmpeg/AV Swscaler            : true 
configure:   - FFmpeg/AV AVUtil              : true 

Am I supposed to install one or more of the packages listed below ?

dietpi@x3800:~/compilation/vjc/veejay/veejay-current/veejay-core$ apt-cache search neon
libne10-10 - ARM neon (SIMD) library
libne10-dev - ARM neon (SIMD) library - development files
libneon27 - HTTP and WebDAV client library
libneon27-dbg - Detached symbols for libneon27
libneon27-dev - Header and static library files for libneon27
libneon27-gnutls - HTTP and WebDAV client library (GnuTLS enabled)
libneon27-gnutls-dbg - Detached symbols for libneon27 (GnuTLS enabled)
libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled)
librust-packed-simd-dev - Portable Packed SIMD vectors - Rust source code
gui-lux commented 1 year ago

However, I can manage an ssh access for you if you believe it does help.

game-stop commented 1 year ago

That would be much appreciated, saves me a lot of time

game-stop commented 1 year ago

Your system does not have NEON support as I understand it

On Wed, Sep 6, 2023 at 6:08 PM gui-lux @.***> wrote:

And the errors from when running make for the custom veejay-core : makevjcorecustom.txt https://github.com/game-stop/veejay/files/12539977/makevjcorecustom.txt

But diff tells me these two outputs are the same.

One question here, ./configure says the following at the end :

configure: configure: Veejay-Core 1.5.65 build configuration : configure: configure: Compiler flags: -march=armv8-a+crc -march=native -ftree-vectorize -O3 -fno-stack-protector -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -Wall -Wunused -fno-stack-protector configure: architecture: auto configure: configure: Architecture: aarch64 configure: configure: arm configure: NEON enabled : no configure: configure: Platform: Linux configure: configure: Required dependencies: configure: - POSIX Threads (pthread) : true configure: - FFmpeg/AV AVFormat : true configure: - FFmpeg/AV AVCodec : true configure: - FFmpeg/AV Swscaler : true configure: - FFmpeg/AV AVUtil : true

Am I supposed to install one or more of the packages listed below ?

@.***:~/compilation/vjc/veejay/veejay-current/veejay-core$ apt-cache search neon libne10-10 - ARM neon (SIMD) library libne10-dev - ARM neon (SIMD) library - development files libneon27 - HTTP and WebDAV client library libneon27-dbg - Detached symbols for libneon27 libneon27-dev - Header and static library files for libneon27 libneon27-gnutls - HTTP and WebDAV client library (GnuTLS enabled) libneon27-gnutls-dbg - Detached symbols for libneon27 (GnuTLS enabled) libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled) librust-packed-simd-dev - Portable Packed SIMD vectors - Rust source code

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1708684021, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467DFEKSTQAEQDZJEW33XZCNYZANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

game-stop commented 1 year ago

Those 4 lines of C code need to be put in test.c , but once I have shell access I can sort it out what exactly your CPU supports and what not. Maybe it has NEON after all, the error message is just saying it cannot find the source file.

On Wed, Sep 6, 2023 at 5:53 PM gui-lux @.***> wrote:

@.:~/test$ gcc -march=armv8-a+crc -mfpu=neon -o test test.c && ./test gcc: error: test.c: Aucun fichier ou dossier de ce type gcc: error: unrecognized command-line option ‘-mfpu=neon’ gcc: fatal error: no input files compilation terminated. @.:~/test$ gcc -march=native -o test test.c && ./test gcc: error: test.c: Aucun fichier ou dossier de ce type gcc: fatal error: no input files compilation terminated. @.***:~/test$ gcc -march=armv8-a+crc -o test test.c && ./test gcc: error: test.c: Aucun fichier ou dossier de ce type gcc: fatal error: no input files compilation terminated.

I might be misunderstanding what you asked, I'll just skip to try to build the new veejay-core for now.

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1708655082, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467ASY2O3FCVMTISGT7LXZCMBFANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

game-stop commented 1 year ago

I started work in another branch

$ git clone .... $ git checkout arm8

On Wed, Sep 6, 2023 at 5:46 PM gui-lux @.***> wrote:

errors while building veejay-core : make.txt https://github.com/game-stop/veejay/files/12539836/make.txt

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1708643039, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467CPWJKDSO3FAMSL7LDXZCLFVANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

gui-lux commented 1 year ago

That would be much appreciated, saves me a lot of time

May I write an email to the address found in veejay's banner ?

game-stop commented 1 year ago

Yes, either veejayhq@gmail.com or nwelburg@gmail.com will be fine

gui-lux commented 1 year ago

Email sent, please check spam folder as I'm not standard GAFAM domain.

gui-lux commented 1 year ago

So, my rpi has burnt in flames while building veejay...

Sorry, this is my Friday's poorest joke ! Everything went fine - core, server, client, utils. \o/

Currently watching veejay running loaded with a bunch of avi/mjpeg 640x480 25fps samples + mixing FX, veejay eats roughly 120% of CPU, reloaded about 40%, temperature raising but fine. I need a better cooling system anyway.

About the FX, yes, some of them produce unexpected result : all overlay type, effectv type produce vertical green lines. magic tracer produces big horizontal snow lines. luma based run fine.

chroma based, LVD, produces vertical green lines.

Frei0r plugins from source produce vertical green lines and basically run between 10 and 15 fps.

I'll see how it behaves with v4l2, http/mp4 streams and midi controller but I guess these features will be fine. No crash observed so far.

I have an HDMI touchscreen plugged to the rpi, but it's only left-click capable so not really useful with reloaded.

Anyway, this is really great, holidays well deserved ! Your pleasure to close this issue : )

game-stop commented 1 year ago

Hey again

Thanks for the feedback, I have an idea what to look for but the fixes could take a few attempts. Is it possible for you to setup a graphical interface or to allow me to connect on port 3490 to get a picture remotely?

See you

On Fri, 8 Sept 2023, 21:29 gui-lux, @.***> wrote:

So, my rpi has burnt in flames while building veejay...

Sorry, this is my Friday's poorest joke ! Everything went fine - core, server, client, utils. \o/

Currently watching veejay running loaded with a bunch of avi/mjpeg 640x480 25fps samples + mixing FX, veejay eats roughly 120% of CPU, reloaded about 40%, temperature raising but fine. I need a better cooling system anyway.

About the FX, yes, some of them produce unexpected result : all overlay type, effectv type produce vertical green lines. magic tracer produces big horizontal snow lines. luma based run fine.

chroma based, LVD, produces vertical green lines.

Frei0r plugins from source produce vertical green lines and basically run between 10 and 15 fps.

I'll see how it behaves with v4l2, http/mp4 streams and midi controller but I guess these features will be fine. No crash observed so far.

I have an HDMI touchscreen plugged to the rpi, but it's only left-click capable so not really useful with reloaded.

Anyway, this is really great, holidays well deserved !

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1712131030, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467GUYBX5KMR6UXTJO3DXZNW2XANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

gui-lux commented 1 year ago

Sure, do you have wireguard ?

gui-lux commented 1 year ago

Or wait, you should be able to connect through ssh, with -L argument and localport:host:remoteport format.

game-stop commented 1 year ago

Alright, I'll try that .. sometime during the holiday 😂

On Fri, Sep 8, 2023 at 11:31 PM gui-lux @.***> wrote:

Or wait, you should be able to connect through ssh, with -L argument and localport:host:remoteport format.

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1712245434, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467AUFFCWN3I6BCOIQRLXZOFBNANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

game-stop commented 1 year ago

avi/mjpeg 640x480 25fps

For ARM / pi based system, mjpeg is quite wasteful . Maybe, by increasing bandwidth you can free up cpu resources, with lzo yuv or raw yuv or simply reduce resolution instead

I reverted the changes to libsubsample, to see if this is where the routines fail

It's currently building

Can you try Normal Overlay and Soft Blur at your next opportunity ?

On Fri, Sep 8, 2023 at 9:29 PM gui-lux @.***> wrote:

So, my rpi has burnt in flames while building veejay...

Sorry, this is my Friday's poorest joke ! Everything went fine - core, server, client, utils. \o/

Currently watching veejay running loaded with a bunch of avi/mjpeg 640x480 25fps samples + mixing FX, veejay eats roughly 120% of CPU, reloaded about 40%, temperature raising but fine. I need a better cooling system anyway.

About the FX, yes, some of them produce unexpected result : all overlay type, effectv type produce vertical green lines. magic tracer produces big horizontal snow lines. luma based run fine.

chroma based, LVD, produces vertical green lines.

Frei0r plugins from source produce vertical green lines and basically run between 10 and 15 fps.

I'll see how it behaves with v4l2, http/mp4 streams and midi controller but I guess these features will be fine. No crash observed so far.

I have an HDMI touchscreen plugged to the rpi, but it's only left-click capable so not really useful with reloaded.

Anyway, this is really great, holidays well deserved !

— Reply to this email directly, view it on GitHub https://github.com/game-stop/veejay/issues/275#issuecomment-1712131030, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3467GUYBX5KMR6UXTJO3DXZNW2XANCNFSM6AAAAAAXH5GIEU . You are receiving this because you commented.Message ID: @.***>

game-stop commented 1 year ago

But to forward what, I tried but I think I didn't really understood what you meant

On Fri, Sep 8, 2023 at 11:31 PM gui-lux @.***> wrote:

Or wait, you should be able to connect through ssh, with -L argument and localport:host:remoteport format.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

gui-lux commented 1 year ago

Hi Niels,

just rebuilt with latest fixes.

About this ssh trick, you should be able to connect a local reloaded to the remote veejay. Once connected with -L and 3490:remotehost:3490, your local port 3490 and the remote 3490 will be linked, then connect reloaded to your 3490 port on localhost. The cmdline still needs the -p argument. Wireguard will be easier to setup if you're not inspired with ssh.

gui-lux commented 1 year ago

I left a server running in case you're around.

gui-lux commented 1 year ago

Can you try Normal Overlay and Soft Blur at your next opportunity ?

Both work well.

gui-lux commented 1 year ago

Not an expert at video processing here, and not familiar with lzo. From my knowledge, lzo is used in many cases but never knew that could be used with live video processing.

EDIT : Sorry if it feels like a dumb question but could you explain a bit more about these formats you're recommending ?

Question is more like : how do I create video samples in a more veejay-compliant format ? I know veejay can export to required formats, I guess I should play more with this features but I find it less easy when it's about cutting videos into samples.

And did you have enough of the wonderful 'Comté' and the pretty unique 'Vin Jaune' ?