Git Product home page Git Product logo

salsaman / lives Goto Github PK

View Code? Open in Web Editor NEW
89.0 89.0 11.0 197.14 MB

LiVES is a feature rich application which combines elements of VJ and video editing software. The current version runs on Linux / BSD. Check_out_the_new_discussion_area https://github.com/salsaman/LiVES/discussions

Home Page: http://lives-video.com

License: GNU General Public License v3.0

Makefile 0.37% Shell 0.39% Perl 3.09% C 87.81% M4 0.33% C++ 4.06% Python 3.66% Java 0.29%

lives's People

Contributors

gf-robocup avatar salsaman avatar yurchor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lives's Issues

Warning messages under Xubuntu 20.04

Opening LiVES 3.0.2 under Xubuntu 20.04, I get these error messages when opening it with a terminal:

Warning, frei0r plugin skipping blacklisted plugin Timeout indicator
LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect image_stabilizer, line 4

LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect motion_analyser, line 4

3.2.0 GitHub release?

The LiVES website says 3.2.0 was released 2020-11-08

image

However, the GitHub releases page shows 3.0.2 released 2019-09-08 as the latest

image

Will there be a GitHub release for LiVES 3.2.0?

LiVES freezes at startup

The photo shows. It freezes on checking mpv for decoding png. The next line, should be checking mpv for jpeg, but has "????" in place of mpv:

lives-startup-freeze

That's it, goes no further and I have to kill the process.

LiVES 3.0.2 works fine, at startup detects mpv does not decode to png, and does decode to jpeg.

LiVES fails to start

Hi,
LiVES fails to start. I'm in a computer with Manjaro (Arch Linux) and installed LiVES 3.0.2 via the aur package https://aur.archlinux.org/packages/lives/.

Here is the dump:

$ lives -debug

LiVES 3.0.2
Copyright 2002 - 2019 Gabriel Finch ([email protected]) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

Warning, frei0r plugin skipping blacklisted plugin Timeout indicator
LiVES info: No usable filters found in plugin /usr/lib/lives/plugins/effects/realtime/weed/libvisual/libvis.so

LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect image_stabilizer, line 4

LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect motion_analyser, line 4


(process:303974): GLib-GObject-WARNING (recursed) **: ../glib/gobject/gsignal.c:1282: no emission of signal "draw" to stop for instance '0x557c69a61570'
Unfortunately LiVES crashed.
Please report this bug at https://github.com/salsaman/LiVES/issues
Thanks. Recovery should be possible if you restart LiVES.


When reporting crashes, please include details of your operating system, distribution, and the LiVES version (3.0.2)
and any information shown below:

lives-exe (pid:303974): [E]xit, [H]alt, show [S]tack trace or [P]roceed: S
#0  0x00007f01931c79af in wait4 () at /usr/lib/libc.so.6
#1  0x00007f0193c38494 in g_on_error_stack_trace ()
#2  0x00007f0193c3c360 in g_on_error_query () at /usr/lib/libglib-2.0.so.0
#3  0x0000557c6884ea12 in  ()
#4  0x00007f01932d5800 in <signal handler called> ()
#5  0x00007f0193136ce5 in raise () at /usr/lib/libc.so.6
#6  0x00007f0193120857 in abort () at /usr/lib/libc.so.6
#7  0x00007f0193bc206e in  () at /usr/lib/libglib-2.0.so.0
#8  0x00007f0193c098db in g_logv () at /usr/lib/libglib-2.0.so.0
#9  0x00007f0193c09ac0 in g_log () at /usr/lib/libglib-2.0.so.0
#10 0x00007f0193cfcca3 in g_signal_stop_emission_by_name ()
#11 0x0000557c6883cfba in  ()
#12 0x0000557c688ab4a2 in  ()
#13 0x00007f0193d0c61a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#14 0x00007f0193ced3a5 in  () at /usr/lib/libgobject-2.0.so.0
#15 0x00007f0193cf0ab9 in g_signal_emit_valist ()
#16 0x00007f0193cf26b0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#17 0x00007f0194545dd0 in  () at /usr/lib/libgtk-3.so.0
#18 0x0000557c6884194a in  ()
#19 0x0000557c688aaed7 in  ()
#20 0x0000557c688bc011 in  ()
#21 0x0000557c689b1cd2 in  ()
#22 0x0000557c6884f1bb in  ()
#23 0x00007f0193c098be in g_logv () at /usr/lib/libglib-2.0.so.0
#24 0x00007f0193c09ac0 in g_log () at /usr/lib/libglib-2.0.so.0
#25 0x00007f01943a56fe in gtk_scale_get_layout () at /usr/lib/libgtk-3.so.0
#26 0x00007f0194232e38 in  () at /usr/lib/libgtk-3.so.0
#27 0x00007f0192b6049c in  () at /usr/lib/libatk-bridge-2.0.so.0
#28 0x00007f0192b60827 in  () at /usr/lib/libatk-bridge-2.0.so.0
#29 0x00007f0193d0c61a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#30 0x00007f0193ced97e in  () at /usr/lib/libgobject-2.0.so.0
#31 0x00007f0193cf0ab9 in g_signal_emit_valist ()
#32 0x00007f0193cf26b0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#33 0x00007f0192b64d5c in  () at /usr/lib/libatk-bridge-2.0.so.0
#34 0x00007f0193c1188f in g_main_context_dispatch ()
#35 0x00007f0193c13831 in  () at /usr/lib/libglib-2.0.so.0
#36 0x00007f0193c13871 in g_main_context_iteration ()
#37 0x00007f0194416827 in gtk_main_iteration () at /usr/lib/libgtk-3.so.0
#38 0x0000557c68846da4 in  ()
#39 0x0000557c6886320b in  ()
#40 0x00007f0193c1188f in g_main_context_dispatch ()
#41 0x00007f0193c13831 in  () at /usr/lib/libglib-2.0.so.0
#42 0x00007f0193c14843 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#43 0x00007f019441694f in gtk_main () at /usr/lib/libgtk-3.so.0
#44 0x0000557c6885615e in  ()
#45 0x00007f0193122023 in __libc_start_main () at /usr/lib/libc.so.6
#46 0x0000557c6883b07e in  ()
lives-exe (pid:303974): [E]xit, [H]alt, show [S]tack trace or [P]roceed: P

Let me know if I can help providing more info.

build fails with error: expected identifier or '(' before 'if' (future_prefs->jack_opts & JACK_INFO_TEST_SETUP)

building from git using gcc-10.2 on an RPi4 using aarch64 fails:

CC="gcc -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --localstatedir=/var --disable-jack

The build still assumes jack is present/enabled?

Note also "--disable-static" fails because libOSC links with the static lib.

gcc -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.1-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"\$\{datarootdir\}/locale\" -DPREFIX=\"/usr/local\" -DLiVES_VERSION=\"3.2.1-pre\" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -I.  -DPACKAGE_DATA_DIR=\""/usr/local/share"\" -DLIVES_DIR=\"""\" -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\" -I .. -I "../libOSC" -pthread -I/usr/local/include/gtk-3.0 -I/usr/local/include/at-spi2-atk/2.0 -I/usr/local/include/at-spi-2.0 -I/usr/local/include -I/usr/local/include/dbus-1.0 -I/usr/local/lib/dbus-1.0/include -I/usr/local/include -I/usr/local/include/gtk-3.0 -I/usr/local/include/gio-unix-2.0 -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include -I/usr/local/include/pango-1.0 -I/usr/local/include/harfbuzz -I/usr/local/include/pango-1.0 -I/usr/local/include/fribidi -I/usr/local/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/harfbuzz -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/include/uuid -I/usr/local/include -I/usr/local/include    -fcommon -fPIE -Wstrict-aliasing=0 -Wall     -pthread -I/usr/local/include/gtk-3.0 -I/usr/local/include/gio-unix-2.0 -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include -I/usr/local/include/pango-1.0 -I/usr/local/include/harfbuzz -I/usr/local/include/pango-1.0 -I/usr/local/include/fribidi -I/usr/local/include -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/harfbuzz -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/include/uuid -I/usr/local/include -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1    -DIS_LINUX_GNU=1   -DENABLE_OSC=1 -I/usr/local/include -DALSA_MIDI=1 -I/usr/local/include/libpng16 -DUSE_LIBPNG=1 -I/usr/local/include -I/usr/local/include -DUSE_SWSCALE=1  -D_REENTRANT -I/usr/local/include -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1  -DENABLE_GIW=1  -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DDISABLE_GSLICE=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\""/usr/local/lib"\"      -DHAVE_XRENDER=1 -DHAVE_X11=1 -DHAVE_OPENGL=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1  -Wall -MT main.o -MD -MP -MF $depbase.Tpo -c -o main.o main.c &&\
mv -f $depbase.Tpo $depbase.Po
main.c: In function 'lives_init':
main.c:2218:1: warning: label 'post_audio_choice' defined but not used [-Wunused-label]
 2218 | post_audio_choice:
      | ^~~~~~~~~~~~~~~~~
main.c:2204:1: warning: label 'audio_choice' defined but not used [-Wunused-label]
 2204 | audio_choice:
      | ^~~~~~~~~~~~
main.c:2550:3: warning: no return statement in function returning non-void [-Wreturn-type]
 2550 |   }
      |   ^
main.c: At top level:
main.c:2552:3: error: expected identifier or '(' before 'if'
 2552 |   if (future_prefs->jack_opts & JACK_INFO_TEST_SETUP) {
      |   ^~
main.c:2556:3: warning: data definition has no type or storage class
 2556 |   reset_font_size();
      |   ^~~~~~~~~~~~~~~
main.c:2556:3: warning: type defaults to 'int' in declaration of 'reset_font_size' [-Wimplicit-int]
main.c:2556:3: error: conflicting types for 'reset_font_size'
In file included from main.h:620,
                 from main.c:48:
pangotext.h:58:6: note: previous declaration of 'reset_font_size' was here
   58 | void reset_font_size(void);
      |      ^~~~~~~~~~~~~~~
main.c:2558:3: error: expected identifier or '(' before 'if'
 2558 |   if (prefs->startup_phase != 0) {
      |   ^~
main.c:2596:3: error: expected identifier or '(' before 'if'
 2596 |   if (strcmp(future_prefs->theme, prefs->theme)) {
      |   ^~
main.c:2602:3: error: expected identifier or '(' before 'if'
 2602 |   if (mainw->vpp && mainw->vpp->get_audio_fmts) mainw->vpp->audio_codec = get_best_audio(mainw->vpp);
      |   ^~
main.c:2603:3: error: expected identifier or '(' before 'return'
 2603 |   return TRUE;
      |   ^~~~~~
main.c:2604:1: error: expected identifier or '(' before '}' token
 2604 | } // end of lives_init
      | ^
make[1]: *** [Makefile:1220: main.o] Error 1
make[1]: Leaving directory '/usr/src/LiVES/src'
make: *** [Makefile:609: all-recursive] Error 1

widget-helper compile fail on EasyOS

Could you please help me out, I get this error:

In file included from main.h:352, from widget-helper.c:9: widget-helper.h:588:36: error: unknown type name ‘LiVESHeaderBar’ 588 | boolean lives_header_bar_set_title(LiVESHeaderBar *, const char *title); | ^~~~~~~~~~~~~~ widget-helper.h:589:37: error: unknown type name ‘LiVESHeaderBar’ 589 | boolean lives_header_bar_pack_start(LiVESHeaderBar *, LiVESWidget *); | ^~~~~~~~~~~~~~ widget-helper.h:1194:46: error: unknown type name ‘LiVESFontChooser’; did you mean ‘LiVESFileChooser’? 1194 | boolean lives_standard_font_chooser_set_size(LiVESFontChooser *, int fsize); | ^~~~~~~~~~~~~~~~ | LiVESFileChooser

...etc., more errors.

The packages in EasyOS are plain-vanilla, nothing strange about them. glibc is 2.33, gcc 9.3.0. I tried to explicitly tell configure exactly my requirement:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=x86_64-pc-linux-gnu --disable-gtk3 --disable-libvisual --disable-system-weed --disable-sdl2 --disable-projectM --disable-jack --disable-GIW --disable-frei0r --disable-liboil --enable-pulse --enable-dirac --enable-theora --enable-ogg --enable-libdv --enable-v4l2 --disable-unicap --disable-ladspa --disable-libexplain --disable-libbz --enable-libz --enable-libpng --enable-mjpegtools --enable-opengl --disable-toonz --disable-turbo --disable-freenect --disable-fftw3 --disable-opencv --enable-ffmpeg --enable-sdl1 --disable-wayland --enable-xrender --disable-prctl --disable-doxygen --enable-threads=posix

...can do --enable-jack, the above was just trying it without.

Anyway, still get the errors as shown above.

Note on the side: if you think that any of those explicit --disable options will significantly compromise the usefulness of LiVes, let me know.

Direct stream copy - editing without reencoding

ffmpeg support this via -vcodec copy -acodec copy options.
Example: ffmpeg -i INFILE.mkv -vcodec copy -acodec copy -ss 00:01:00.000 -t 00:00:10.000 OUTFILE.mkv

It can be used for crop video from begin and from end, cut parts from middle.
From end video can be cut on every frame, but at begin on keyframes only. If user need to crop video at begin and not on keyframe - he/she must reencode this part. Some codecs can produce video tracks with all frames are keyframes.

Advanced possibility: concatenate different video files (if video streams are compatible - same codec, resolution and framerate).

P.S. Sorry for my poor English.

Can't build Release 3.0.1 on Debian 10

Hey, I'm very interested in your project but I have issues building the latest release.
First of our install instructions are a bit out-of-date. You are saying to execute configure directly. However, autogen.sh has to be run before to actually generate configure. But my actual issue is that autogen.sh fails as well:

Preparing the LiVES build system...please wait

Found GNU Autoconf version 2.69
Found GNU Automake version 1.16.1
Found GNU Libtool version 2.4.6

Automatically preparing build ... Warning: autoreconf failed
Attempting to run the preparation steps individually

Preparing build ... 
Warning:  Unsupported macros were found in ./configure.ac

The configure.ac file was scanned in order to determine if any
unsupported macros are used that exceed the minimum version
settings specified within this file.  As such, the following macros
should be removed from configure.ac or the version numbers in this
file should be increased:

AC_GNU_SOURCE

Ignorantly continuing build preparation ... 
Warning: autoconf seems to have succeeded by removing the following options:
	AUTOCONF_OPTIONS="-f"

Removing those options should not be necessary and indicate some other
problem with the build system.  The build preparation is highly suspect
and may result in configuration or compilation errors.  Consider
rerunning the build preparation with verbose output enabled.
	./autogen.sh --verbose

Continuing build preparation ... configure.ac:935: error: required file 'intl/Makefile.in' not found
Makefile.am:35: error: required directory ./intl does not exist
ERROR: automake failed

farneback_analyser.cpp not compiled

Hi all.

lives-3.0.2's farneback_analyser.cpp is not compiled on Fedora with this error:

libtool: compile:  g++ -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.0.2\" "-DPACKAGE_STRING=\"LiVES 3.0.2\"" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.0.2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.0.2\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_JACK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LIBV4L1_VIDEODEV_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I. -fPIC -DPIC -Wno-unused-function -ffast-math -Wall -I/usr/include/tirpc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fcommon -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c farneback_analyser.cpp  -fPIC -DPIC -o .libs/farneback_analyser_la-farneback_analyser.o
make[3]: Leaving directory '/builddir/build/BUILD/LiVES-3.0.2/lives-plugins/weed-plugins'
farneback_analyser.cpp: In function 'int farneback_process(weed_plant_t*, weed_timecode_t)':
farneback_analyser.cpp:178:31: error: 'CV_RGB2GRAY' was not declared in this scope
  178 |     cvtColor(srcMat, *cvgrey, CV_RGB2GRAY); // may segfault here, not sure what causes it. Bug in opencv 2.4 ?
      |                               ^~~~~~~~~~~
farneback_analyser.cpp:182:31: error: 'CV_BGR2GRAY' was not declared in this scope
  182 |     cvtColor(srcMat, *cvgrey, CV_BGR2GRAY);
      |                               ^~~~~~~~~~~
make[3]: *** [Makefile:1625: farneback_analyser_la-farneback_analyser.lo] Error 1

GCC-10.0.1
Fedora 32+
Opencv-4.2.0
Full build log: http://koji.rpmfusion.org/koji/getfile?taskID=388630&volume=DEFAULT&name=build.log

Compilation in the debug mode fails: ld: error: undefined symbol: lives_dialog_new

libtool: link: cc -fcommon -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -I/usr/local/include/liboil-0.3 -DENABLE_OIL=1 -I/usr/local/include/gtk-3.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/fribidi -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/libdrm -I/usr/local/include/libpng16 -I/usr/local/include/harfbuzz -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/gio-unix-2.0 -I/usr/local/include/libepoll-shim -D_THREAD_SAFE -pthread -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_FREEBSD=1 -DENABLE_OSC=1 -I/usr/local/include/libpng16 -DUSE_LIBPNG=1 -I/usr/local/include -I/usr/local/include -DUSE_SWSCALE=1 -DENABLE_JACK=1 -I/usr/local/include -DENABLE_JACK_TRANSPORT=1 -DENABLE_GIW=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\"/usr/local/lib\" -DHAVE_LADSPA=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -pipe -fno-omit-frame-pointer -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -Wall -pthread -fstack-protector-strong -o .libs/lives-exe rpmalloc.o widget-helper.o alarms.o messaging.o maths.o main.o support.o effects.o lsd-tab.o plugins.o effects-weed.o effects-data.o framedraw.o interface.o paramspecial.o paramwindow.o rfx-builder.o lives-yuv4mpeg.o preferences.o rte_window.o gui.o ce_thumbs.o htmsocket.o merge.o cliphandler.o dialogs.o saveplay.o player.o audio.o events.o resample.o osc.o omc-learn.o callbacks.o colourspace.o keyboard.o utils.o multitrack.o multitrack-gui.o stream.o cvirtual.o startup.o pangotext.o memory.o threading.o machinestate.o filesystem.o lists.o weed-effects-utils.o diagnostics.o transcode.o jack.o giw/giwknob.o giw/giwvslider.o giw/giwled.o giw/giwtimeline.o -pthread  -L/usr/local/lib -lgtk-3 -latk-1.0 -lgio-2.0 -lrt -loil-0.3 -lX11 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lpthread -lgobject-2.0 -lmjpegutils ../libOSC/.libs/libOSC.a ../libOSC/client/.libs/libOSC_client.a -ljack -ljackserver -lpng16 -lz -lswscale -lavutil /usr/ports/multimedia/lives/work/LiVES-3.2.0-124-g86cae9fd/libweed/.libs/libweed_gslice.so /usr/ports/multimedia/lives/work/LiVES-3.2.0-124-g86cae9fd/libweed/.libs/libweed-utils.so -lm -ldl -lglib-2.0 -lintl -pthread -Wl,-rpath -Wl,/usr/local/lib
ld: error: undefined symbol: lives_dialog_new
>>> referenced by widget-helper.c:9961
>>>               widget-helper.o:(lives_standard_dialog_new)

ld: error: undefined symbol: lives_tool_button_get_icon_widget
>>> referenced by widget-helper.c:12502
>>>               widget-helper.o:(lives_tool_button_set_border_color)
>>> did you mean: lives_tool_button_set_icon_widget
>>> defined in: widget-helper.o

Revision: 3.2.0-124-g86cae9fd
OS: FreeBSD 12.2

Build failure on Fedora 33

I am trying to build LiVES from master branch on Fedora 33.
I use the following configure command:

configure --disable-silent-rules \
	   --enable-threads=posix \
	   --disable-rpath \
	   --enable-profiling \
	   --enable-doxygen \
	   --disable-libvisual \
	   --disable-system-weed \
	   --disable-sdl2 \
	   --disable-projectM  \
           --prefix=/opt/llives

And met the following error message:

libtool: compile:  gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" "-DPACKAGE_STRING=\"LiVES 3.2.1-pre\"" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.1-pre\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I. -I/usr/include/tirpc -I/usr/include/opencv4/opencv -I/usr/include/opencv4 -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -fPIC -DPIC -Wno-unused-variable -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_PLUGIN=1 -DNEED_LOCAL_WEED_COMPAT=1 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c icecast_output.c  -fPIC -DPIC -o .libs/icecast_output_la-icecast_output.o
icecast_output.c: In function 'module_check_init':
icecast_output.c:145:3: warning: implicit declaration of function 'IGN_RET' [-Wimplicit-function-declaration]
  145 |   IGN_RET(fgets(buffer, PATH_MAX, fp));
      |   ^~~~~~~
icecast_output.c: In function 'init_screen':
icecast_output.c:334:22: error: expected ')' before '_'
  334 |   IGN_RET(system(cmd)_;
      |                      ^
      |                      )
icecast_output.c:351:15: error: expected ';' before '}' token
  351 |   return TRUE;
      |               ^
      |               ;
  352 | }
      | ~              

MIDI / Joystick learner is blank

Hi there,

I've tried to connect my Novation Launchkey Mini to LiVES, to map MIDI keys to effects but couldn't get it to work.
The MIDI / Joystick learner window is completely black:

lives

My setup is as follows:

  • ubuntu 18.04, LiVES 3.2.0 installed from binary. All core and optional dependencies are marked as detected in the startup page
  • qjackctl running, with MIDI controller connected to LiVES in the ALSA tab.

When I hit a key on the MIDI controller (either the physical one - Novation - or the virtual one - vkeybd), the "clear unmatched" and "delete all" button change to become clickable, suggesting the MIDI signal is received by the learner but nothing is visible in the window. No specific error is logged in the terminal used to launch lives, even in debug mode. The only way to quit the learner is to kill -9 the lives process (the "close window" button is ineffective).

Do you have any suggestion of things to try (compile from source, upgrade to Ubuntu 20, install some MIDI mapping dependency, ...)?

Thanks in advance!

Herve

Compile 4.0

Hello,
I tried to build the current state of the 4.0 branch for Mageia cauldron (next release).
What I have done (in our rpm spec file):

./autogen.sh
%configure   --disable-sdl2 --disable-projectM --enable-threads=posix
%make_build CPPFLAGS="`pkg-config --cflags libtirpc`"

While building, I get this error:

make[1]: Entering directory '/builddir/build/BUILD/LiVES-LiVES-4.0/src'
gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.1-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DSTDC_HEADERS=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_HPUX_ALT_XOPEN_SOCKET_API=1 -D_NETBSD_SOURCE=1 -D_OPENBSD_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -D__EXTENSIONS__=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.1-pre\" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I.  -DPACKAGE_DATA_DIR=\""/usr/share"\" -DLIVES_DIR=\"""\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -I .. -I "../libOSC" -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -I/usr/include/unicap -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread   -I/usr/include/tirpc  -fcommon -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h  -I/usr/include/liboil-0.3  -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread  -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_X86_64   -DIS_LINUX_GNU=1   -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16  -DUSE_LIBPNG=1 -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -DJACK_V2=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1  -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS = 1 -DNEED_LOCAL_WEED_HOST_UTILS = 1 -DDISABLE_GSLICE=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\""/usr/lib64"\"  -DHAVE_LIBVISUAL=1 -DHAVE_FREI0R=1 -DHAVE_LADSPA=1  -DHAVE_XRENDER=1 -DHAVE_X11=1 -DHAVE_OPENGL=1  -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1  -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -Wall -c -o rpmalloc.o rpmalloc.c
gcc: warning: =: linker input file unused because linking not done
gcc: error: =: linker input file not found: No such file or directory
gcc: warning: 1: linker input file unused because linking not done
gcc: error: 1: linker input file not found: No such file or directory
gcc: warning: =: linker input file unused because linking not done
gcc: error: =: linker input file not found: No such file or directory
gcc: warning: 1: linker input file unused because linking not done
gcc: error: 1: linker input file not found: No such file or directory
make[1]: *** [Makefile:1281: rpmalloc.o] Error 1

I know that this is work in progress, but perhaps do I something wrong?
I added the ./autogen.sh because without it, I have no configure.

build error on Ubuntu 20.10 with glibc 2.32

In Ubuntu 20.10 libc6-dev has dropped /usr/include/rpc/rpc.h which causes build errors:

htmsocket.c:41:10: fatal error: rpc/rpc.h: No such file or directory
  41 | #include <rpc/rpc.h>
     |          ^~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:610: sendOSC-htmsocket.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/<<PKGBUILDDIR>>/libOSC/sendOSC'
make[2]: *** [Makefile:798: all-recursive] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>/libOSC'
make[1]: *** [Makefile:651: all-recursive] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:7: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

3.2.0 compile error on Ubuntu 20.04

jack.c: In function ‘lives_jack_init’:
jack.c:124:10: warning: implicit declaration of function ‘jackctl_server_open’; did you mean ‘jackctl_server_stop’? [-Wimplicit-function-declaration]
124 | if (!jackctl_server_open(jackserver, driver)) {
| ^~~~~~~~~~~~~~~~~~~
| jackctl_server_stop
jack.c:129:10: error: too few arguments to function ‘jackctl_server_start’
129 | if (!jackctl_server_start(jackserver)) {
| ^~~~~~~~~~~~~~~~~~~~
In file included from jack.h:17,
from main.h:1116,
from jack.c:7:
/usr/include/jack/control.h:144:1: note: declared here
144 | jackctl_server_start(
| ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:1184: jack.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/<>/src'
make[1]: *** [Makefile:651: all-recursive] Error 1
make[1]: Leaving directory '/<>'
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:7: build] Error 25

too few arguments to function ‘autotune_u64_end’

having issues compiling current code on github on current version of slackware using gcc (GCC) 13.1.0
this is the error i get
.
make[1]: Leaving directory '/root/LiVES/libweed'
Making all in src
make[1]: Entering directory '/root/LiVES/src'
depbase=echo memory.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';
gcc -DPACKAGE_NAME="LiVES" -DPACKAGE_TARNAME="lives" -DPACKAGE_VERSION="3.2.1-pre" -DPACKAGE_STRING="LiVES\ 3.2.1-pre" -DPACKAGE_BUGREPORT="https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL="http://lives-video.com\" -DPACKAGE="lives" -DVERSION="3.2.1-pre" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DSTDC_HEADERS=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_HPUX_ALT_XOPEN_SOCKET_API=1 -D_NETBSD_SOURCE=1 -D_OPENBSD_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -D__EXTENSIONS__=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=".libs/" -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE="lives" -DLOCALEDIR="${datarootdir}/locale" -DPREFIX="/usr" -DLiVES_VERSION="3.2.1-pre" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I. -DPACKAGE_DATA_DIR=""/usr/share"" -DLIVES_DIR="""" -DPACKAGE_LOCALE_DIR=""/usr/share/locale"" -I .. -I "../libOSC" -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -I/usr/include/unicap -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fcommon -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h -I/usr/include/liboil-0.3 -DENABLE_OIL=1 -pthread -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_X86_64 -DIS_LINUX_GNU=1 -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16 -DUSE_LIBPNG=1 -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -DJACK_V2=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1 -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_HOST_UTILS=1 -DDISABLE_GSLICE=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=""/usr/lib64"" -DHAVE_LIBVISUAL=1 -DHAVE_FREI0R=1 -DHAVE_LADSPA=1 -DHAVE_XRENDER=1 -DHAVE_X11=1 -DHAVE_OPENGL=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -g -O2 -Wall -MT memory.o -MD -MP -MF $depbase.Tpo -c -o memory.o memory.c &&
mv -f $depbase.Tpo $depbase.Po
memory.c: In function ‘lives_oil_memcpy’:
memory.c:1189:18: error: too few arguments to function ‘autotune_u64_end’
1189 | maxbytes = autotune_u64_end(&tuner, 1. / (double)n);
| ^~~~~~~~~~~~~~~~
In file included from main.h:324,
from memory.c:9:
machinestate.h:73:10: note: declared here
73 | uint64_t autotune_u64_end(weed_plant_t **tuner, uint64_t val, double cost);
| ^~~~~~~~~~~~~~~~
make[1]: *** [Makefile:1302: memory.o] Error 1
make[1]: Leaving directory '/root/LiVES/src'
make: *** [Makefile:616: all-recursive] Error 1

Weed plugin compile error?

Not sure if I did install steps correctly, but getting a compile error with weed plugins?

On Ubuntu 20.04:

$ sudo apt install autotools-dev autoconf autopoint libtool gettext gettext libgtk-3-dev libpng-dev libx11-dev libxrender-dev libjack-jackd2-dev libpulse-dev libgl-dev libsdl2-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev libfftw3-dev libunicap2-dev libprojectm-dev projectm-data liborc-0.4-dev libopencv-core-dev frei0r-plugins-dev ladspa-sdk
$ autogen.sh
$ ./configure
$ make

...
make[3]: Entering directory '.../LiVES/lives-plugins/plugins/decoders'
/bin/bash ../../../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.1-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"\$\{datarootdir\}/locale\" -DPREFIX=\"NONE\" -DLiVES_VERSION=\"3.2.1-pre\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -I.    -DHAVE_LIBAV_LIBS=1 -Wno-unused-function -DHAVE_AVCODEC_OPEN2=1 -DHAVE_AVCODEC_ALLOC_CONTEXT3=1 -DHAVE_AVCODEC_GET_NAME=1 -DHAVE_AVCODEC_SEND_PACKET=1 -DHAVE_AV_CODEC_SET_PKT_TIMEBASE=1 -DHAVE_AVFORMAT_NEW_STREAM=1 -DHAVE_AVPACKET_UNREF=1 -DHAVE_AVFRAME_UNREF=1 -DHAVE_AVFORMAT_FIND_STREAM_INFO=1 -DHAVE_AVFORMAT_CLOSE_INPUT=1   -DHAVE_AVPRIV_SET_PTS_INFO=1 -fPIC -DPIC  -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_COMPAT=1 -I/usr/include/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu -Wno-deprecated-declarations -g -O2 -Wall -MT flv_decoder_la-flv_decoder.lo -MD -MP -MF .deps/flv_decoder_la-flv_decoder.Tpo -c -o flv_decoder_la-flv_decoder.lo `test -f 'flv_decoder.c' || echo './'`flv_decoder.c
libtool: compile:  gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" "-DPACKAGE_STRING=\"LiVES 3.2.1-pre\"" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" "-DLOCALEDIR=\"\${datarootdir}/locale\"" -DPREFIX=\"NONE\" -DLiVES_VERSION=\"3.2.1-pre\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -I. -DHAVE_LIBAV_LIBS=1 -Wno-unused-function -DHAVE_AVCODEC_OPEN2=1 -DHAVE_AVCODEC_ALLOC_CONTEXT3=1 -DHAVE_AVCODEC_GET_NAME=1 -DHAVE_AVCODEC_SEND_PACKET=1 -DHAVE_AV_CODEC_SET_PKT_TIMEBASE=1 -DHAVE_AVFORMAT_NEW_STREAM=1 -DHAVE_AVPACKET_UNREF=1 -DHAVE_AVFRAME_UNREF=1 -DHAVE_AVFORMAT_FIND_STREAM_INFO=1 -DHAVE_AVFORMAT_CLOSE_INPUT=1 -DHAVE_AVPRIV_SET_PTS_INFO=1 -fPIC -DPIC -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_COMPAT=1 -I/usr/include/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu -Wno-deprecated-declarations -g -O2 -Wall -MT flv_decoder_la-flv_decoder.lo -MD -MP -MF .deps/flv_decoder_la-flv_decoder.Tpo -c flv_decoder.c  -fPIC -DPIC -o .libs/flv_decoder_la-flv_decoder.o
In file included from decplugin.h:70,
                 from flv_decoder.c:73:
../../weed-plugins/weed-plugin-utils.c:53:10: fatal error: weed/weed-plugin-utils.h: No such file or directory
   53 | #include <weed/weed-plugin-utils.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:839: flv_decoder_la-flv_decoder.lo] Error 1
make[3]: Leaving directory '/.../LiVES/lives-plugins/plugins/decoders'
make[2]: *** [Makefile:524: all-recursive] Error 1
make[2]: Leaving directory '/.../LiVES/lives-plugins/plugins'
make[1]: *** [Makefile:523: all-recursive] Error 1
make[1]: Leaving directory '/.../LiVES/lives-plugins'
make: *** [Makefile:652: all-recursive] Error 1

Related configure output:

checking for WEED... no
...will try to build from included sources
checking for WEED_UTILS... no
...will use weed-utils.h from included sources
checking for WEED_COMPAT... no
...will use version from included sources
checking for WEED_PLUGIN... no
...plugins will be compiled with included sources

Makefile isn't recognized when trying to compile git version of LiVES under Xubuntu 20.04

I was trying to compile the git version of LiVES under Xubuntu 20.04 by following the instructions in this page: http://lives-video.com/index.php?do=code
When launching the "make" command, I get this error:

make: *** Nessun obiettivo specificato e nessun makefile trovato. Arresto.

which means that there's no specified target and no makefile is found, so the operation stopped.
I checked and the LiVES folder contains the makefile called "Makefile.am"

This is a full trace of the process I executed:

~/LiVES$ ./autogen.sh --verbose && ./configure --prefix=~/.lives && make
Verbose output enabled
Found a configure template: ./configure.ac
Preparing the LiVES build system...please wait

Checking autoreconf version: autoreconf --version
Checking autoconf version: autoconf --version
Found GNU Autoconf version 2.69
Checking if 2.69.0 is greater than 2.52.0
Checking automake version: automake --version
Found GNU Automake version 1.16.1
Checking if 1.16.1 is greater than 1.6.0
Checking libtoolize version: libtoolize --version
Found GNU Libtool version 2.4.6
Checking if 2.4.6 is greater than 1.4.2
Checking aclocal version: aclocal --version
Checking autoheader version: autoheader --version
Checking whether to only output version information
Backing up COPYING in /home/user/LiVES
cp -p COPYING COPYING.13858.protect_from_automake.backup
Backing up INSTALL in /home/user/LiVES
cp -p INSTALL INSTALL.13858.protect_from_automake.backup
Found an autom4te.cache directory, deleting it
rm -rf autom4te.cache
mv -f "./config.guess" "./config.guess.backup"
mv -f "./config.sub" "./config.sub.backup"
mv -f "./ltmain.sh" "./ltmain.sh.backup"
Found extra aclocal search directory: m4

Automatically preparing build ... autoreconf -v  -I m4 -i -f
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
Can't exec "autopoint": File o directory non esistente at /usr/share/autoconf/Autom4te/FileUtils.pm line 345.
autoreconf: failed to run autopoint: No such file or directory
autoreconf: autopoint is needed because this package uses Gettext
Warning: autoreconf failed
Attempting to run the preparation steps individually

Preparing build ... aclocal -I mk/autoconf  -I m4 
configure.ac:108: warning: macro 'AM_GNU_GETTEXT' not found in library
configure.ac:109: warning: macro 'AM_GNU_GETTEXT_VERSION' not found in library
Searching for AC_PROG_LIBTOOL in ./configure.ac
libtoolize --automake -c -f

aclocal -I mk/autoconf  -I m4 
configure.ac:108: warning: macro 'AM_GNU_GETTEXT' not found in library
configure.ac:109: warning: macro 'AM_GNU_GETTEXT_VERSION' not found in library
Checking for command wget
Found wget 1.20.3
Running wget "http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess;hb=HEAD" -O "config.guess.13858.download"

autoconf -f
configure.ac:108: error: possibly undefined macro: AM_GNU_GETTEXT
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:109: error: possibly undefined macro: AM_GNU_GETTEXT_VERSION
Searching for AC_C_RESTRICT in ./configure.ac
Searching for AC_INCLUDES_DEFAULT in ./configure.ac
Searching for AC_LANG_ASSERT in ./configure.ac
Searching for AC_LANG_WERROR in ./configure.ac
Searching for AS_SET_CATFILE in ./configure.ac
Searching for AC_COMPILER_IFELSE in ./configure.ac
Searching for AC_FUNC_MBRTOWC in ./configure.ac
Searching for AC_HEADER_STDBOOL in ./configure.ac
Searching for AC_LANG_CONFTEST in ./configure.ac
Searching for AC_LANG_SOURCE in ./configure.ac
Searching for AC_LANG_PROGRAM in ./configure.ac
Searching for AC_LANG_CALL in ./configure.ac
Searching for AC_LANG_FUNC_TRY_LINK in ./configure.ac
Searching for AC_MSG_FAILURE in ./configure.ac
Searching for AC_PREPROC_IFELSE in ./configure.ac
Searching for AC_C_BACKSLASH_A in ./configure.ac
Searching for AC_CONFIG_LIBOBJ_DIR in ./configure.ac
Searching for AC_GNU_SOURCE in ./configure.ac
Searching for AC_PROG_EGREP in ./configure.ac
Searching for AC_PROG_FGREP in ./configure.ac
Searching for AC_REPLACE_FNMATCH in ./configure.ac
Searching for AC_FUNC_FNMATCH_GNU in ./configure.ac
Searching for AC_FUNC_REALLOC in ./configure.ac
Searching for AC_TYPE_MBSTATE_T in ./configure.ac

Warning:  Unsupported macros were found in ./configure.ac

The configure.ac file was scanned in order to determine if any
unsupported macros are used that exceed the minimum version
settings specified within this file.  As such, the following macros
should be removed from configure.ac or the version numbers in this
file should be increased:

AC_GNU_SOURCE

Ignorantly continuing build preparation ... 
autoconf


Warning: autoconf seems to have succeeded by removing the following options:
	AUTOCONF_OPTIONS="-f"

Removing those options should not be necessary and indicate some other
problem with the build system.  The build preparation is highly suspect
and may result in configuration or compilation errors.  Consider
reviewing the minimum GNU Autotools version settings contained in
this script along with the macros being used in your configure.ac file.

Continuing build preparation ... Searching for AM_CONFIG_HEADER in ./configure.ac
Searching for AC_CONFIG_HEADER in ./configure.ac
Searching for AM_INIT_AUTOMAKE in ./configure.ac
automake -a -c -f
configure.ac:19: installing './compile'
configure.ac:10: installing './config.sub'
configure.ac:14: installing './missing'
configure.ac:992: error: required file 'intl/Makefile.in' not found
Makefile.am:35: error: required directory ./intl does not exist
libOSC/Makefile.am: installing './depcomp'

automake -a -c
configure.ac:992: error: required file 'intl/Makefile.in' not found
Makefile.am:35: error: required directory ./intl does not exist
configure.ac:992: error: required file 'intl/Makefile.in' not found
Makefile.am:35: error: required directory ./intl does not exist
ERROR: automake failed
rm -f COPYING.13858.protect_from_automake.backup

Restoring INSTALL from backup (automake -f likely clobbered it)
rm -f INSTALL
mv INSTALL.13858.protect_from_automake.backup INSTALL
rm -f INSTALL.13858.protect_from_automake.backup
rm -f "./config.guess.backup"
rm -f "./config.sub.backup"
rm -f "./ltmain.sh.backup"

3.2.0 release build fails with --enable-toonz

toonz.cpp: In function ‘weed_error_t common_process(weed_plant_t*, weed_timecode_t, int)’:
toonz.cpp:674:7: warning: unused variable ‘error’ [-Wunused-variable]
674 | int error;
| ^~~~~
toonz.cpp: In function ‘weed_plant_t* weed_setup(weed_bootstrap_f)’:
toonz.cpp:858:91: error: too many arguments to function ‘weed_plant_t* weed_channel_template_init(const char*, int)’
858 | weed_plant_t in_chantmpls[] = {weed_channel_template_init("in channel", 0, palette_list), NULL};
| ^
In file included from toonz.cpp:58:
weed-plugin-utils.c:238:22: note: declared here
238 | static weed_plant_t weed_channel_template_init(const char name, int flags) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
toonz.cpp:859:93: error: too many arguments to function ‘weed_plant_t
weed_channel_template_init(const char
, int)’
859 | weed_plant_t out_chantmpls[] = {weed_channel_template_init("out channel", 0, palette_list), NULL};
| ^
In file included from toonz.cpp:58:
weed-plugin-utils.c:238:22: note: declared here
238 | static weed_plant_t weed_channel_template_init(const char name, int flags) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
toonz.cpp: In instantiation of ‘int paraffin_kernel(cv::Mat&, cv::Mat&, int, weed_plant_t
) [with VecT = cv::Vec<unsigned char, 4>; weed_plant_t = _weed_leaf]’:
toonz.cpp:737:65: required from here
toonz.cpp:579:7: warning: unused variable ‘error’ [-Wunused-variable]
579 | int error;
| ^~~~~
toonz.cpp: In instantiation of ‘int paraffin_kernel(cv::Mat&, cv::Mat&, int, weed_plant_t
) [with VecT = cv::Vec<unsigned char, 3>; weed_plant_t = _weed_leaf]’:
toonz.cpp:739:65: required from here
toonz.cpp:579:7: warning: unused variable ‘error’ [-Wunused-variable]

mpv does not crash

Earlier on in one of these issues, I reported that same "canary" fail, which was solved by updating mpv to the latest version, 0.34.1. Trying same test as you did above:

# mpv --no-video --ao=pcm 20051210-w50s_56K.flv 
     Video --vid=1 (vp6f 192x154 10.000fps)
 (+) Audio --aid=1 (mp3 1ch 11025Hz)
[ao/pcm] File: audiodump.wav (WAVE)
[ao/pcm] PCM: Samplerate: 11025 Hz Channels: 1 Format: float
AO: [pcm] 11025Hz mono 1ch float

Exiting... (End of file)
# 

I played the file 'audiodump.wav' in mhwaveedit, it is 16.8 sec long.

Well, if you really want to chase down what is going on, why not bootup EasyOS?

  1. Download the image file easy-3.2-amd64.img.gz from:
    https://distro.ibiblio.org/easyos/amd64/releases/dunfell/3.2/easy-3.2-amd64.img.gz

  2. Expand and write it to a usb-stick.
    Need a usb stick at least 8GB, good quality (for example Sandisk Ultra or Sandisk Extreme), say it is /dev/sdb, do as root:

# gunzip easy-3.2-amd64.img.gz
# dd if=easy-3.2-amd64.img of=/dev/sdb bs=1M
# sync
  1. Boot from the usb-stick

  2. Install dev pkgs:
    Click "sfsget' on the desktop, choose file 'devx_3.2_amd64.sfs'
    Install it to main desktop, not in a container. Reboot.

  3. You are now ready to compile. Absolutely every dev pkg is installed and all tools such as autotools, git, etc. There is even nemiver gui debugger.

Originally posted by @bkauler in #47 (comment)

[lives-3.2.0 pre-release] src/diagnostics.c is not compiled

Hi all.

Building fails at src/diagnostics.c with following error:

make[1]: Entering directory '/builddir/build/BUILD/lives-3.2.0-pre/src'
gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.0-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.0-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.0-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.0-pre\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I.  -DPACKAGE_DATA_DIR=\""/usr/share"\" -DLIVES_DIR=\"""\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -I .. -I "../libOSC" -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -I/usr/include/unicap -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread   -I/usr/include/tirpc  -I/usr/include/opencv4  -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h  -I/usr/include/liboil-0.3  -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread  -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1   -DIS_LINUX_GNU=1   -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16  -DUSE_LIBPNG=1 -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1  -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\""/usr/lib64"\"   -DHAVE_FREI0R=1 -DHAVE_LADSPA=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -pg -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c -o diagnostics.o diagnostics.c
In file included from callbacks.h:10,
                 from diagnostics.c:11:
interface.h:27:1: error: unknown type name 'boolean'
   27 | boolean update_dsu(void *lab);
      | ^~~~~~~
interface.h:30:33: error: unknown type name 'frames_t'
   30 | double lives_ce_update_timeline(frames_t frame, double x);  ///< pointer position in timeline
      |                                 ^~~~~~~~
interface.h:36:22: error: unknown type name 'LiVESAdjustment'
   36 | void msg_area_scroll(LiVESAdjustment *, livespointer userdata);
      |                      ^~~~~~~~~~~~~~~
interface.h:36:41: error: unknown type name 'livespointer'
   36 | void msg_area_scroll(LiVESAdjustment *, livespointer userdata);
      |                                         ^~~~~~~~~~~~
interface.h:37:29: error: unknown type name 'LiVESWidget'
   37 | void msg_area_scroll_to_end(LiVESWidget *, LiVESAdjustment *);
      |                             ^~~~~~~~~~~
interface.h:37:44: error: unknown type name 'LiVESAdjustment'
   37 | void msg_area_scroll_to_end(LiVESWidget *, LiVESAdjustment *);
      |                                            ^~~~~~~~~~~~~~~
interface.h:38:1: error: unknown type name 'boolean'
   38 | boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data);
      | ^~~~~~~
interface.h:38:28: error: unknown type name 'LiVESWidget'
   38 | boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data);
      |                            ^~~~~~~~~~~
interface.h:38:43: error: unknown type name 'LiVESXEventScroll'
   38 | boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data);
      |                                           ^~~~~~~~~~~~~~~~~
interface.h:38:64: error: unknown type name 'livespointer'
   38 | boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data);
      |                                                                ^~~~~~~~~~~~
interface.h:39:1: error: unknown type name 'boolean'
   39 | boolean expose_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      | ^~~~~~~
interface.h:39:25: error: unknown type name 'LiVESWidget'
   39 | boolean expose_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                         ^~~~~~~~~~~
interface.h:39:40: error: unknown type name 'lives_painter_t'
   39 | boolean expose_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                                        ^~~~~~~~~~~~~~~
interface.h:39:59: error: unknown type name 'livespointer'
   39 | boolean expose_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                                                           ^~~~~~~~~~~~
interface.h:40:1: error: unknown type name 'boolean'
   40 | boolean msg_area_config(LiVESWidget *);
      | ^~~~~~~
interface.h:40:25: error: unknown type name 'LiVESWidget'
   40 | boolean msg_area_config(LiVESWidget *);
      |                         ^~~~~~~~~~~
interface.h:41:1: error: unknown type name 'boolean'
   41 | boolean reshow_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      | ^~~~~~~
interface.h:41:25: error: unknown type name 'LiVESWidget'
   41 | boolean reshow_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                         ^~~~~~~~~~~
interface.h:41:40: error: unknown type name 'lives_painter_t'
   41 | boolean reshow_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                                        ^~~~~~~~~~~~~~~
interface.h:41:59: error: unknown type name 'livespointer'
   41 | boolean reshow_msg_area(LiVESWidget *, lives_painter_t *, livespointer user_data);
      |                                                           ^~~~~~~~~~~~
interface.h:43:1: error: unknown type name 'boolean'
   43 | boolean expose_vid_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
interface.h:43:25: error: unknown type name 'LiVESWidget'
   43 | boolean expose_vid_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                         ^~~~~~~~~~~
interface.h:43:40: error: unknown type name 'lives_painter_t'
   43 | boolean expose_vid_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                        ^~~~~~~~~~~~~~~
interface.h:43:59: error: unknown type name 'livespointer'
   43 | boolean expose_vid_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                           ^~~~~~~~~~~~
interface.h:44:1: error: unknown type name 'boolean'
   44 | boolean expose_laud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
interface.h:44:26: error: unknown type name 'LiVESWidget'
   44 | boolean expose_laud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                          ^~~~~~~~~~~
interface.h:44:41: error: unknown type name 'lives_painter_t'
   44 | boolean expose_laud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                         ^~~~~~~~~~~~~~~
interface.h:44:60: error: unknown type name 'livespointer'
   44 | boolean expose_laud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                            ^~~~~~~~~~~~
interface.h:45:1: error: unknown type name 'boolean'
   45 | boolean expose_raud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
interface.h:45:26: error: unknown type name 'LiVESWidget'
   45 | boolean expose_raud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                          ^~~~~~~~~~~
interface.h:45:41: error: unknown type name 'lives_painter_t'
   45 | boolean expose_raud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                         ^~~~~~~~~~~~~~~
interface.h:45:60: error: unknown type name 'livespointer'
   45 | boolean expose_raud_draw(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                            ^~~~~~~~~~~~
interface.h:47:1: error: unknown type name 'boolean'
   47 | boolean config_vid_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      | ^~~~~~~
interface.h:47:25: error: unknown type name 'LiVESWidget'
   47 | boolean config_vid_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                         ^~~~~~~~~~~
interface.h:47:40: error: unknown type name 'LiVESXEventConfigure'
   47 | boolean config_vid_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                        ^~~~~~~~~~~~~~~~~~~~
interface.h:47:64: error: unknown type name 'livespointer'
   47 | boolean config_vid_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                                                ^~~~~~~~~~~~
interface.h:48:1: error: unknown type name 'boolean'
   48 | boolean config_laud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      | ^~~~~~~
interface.h:48:26: error: unknown type name 'LiVESWidget'
   48 | boolean config_laud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                          ^~~~~~~~~~~
interface.h:48:41: error: unknown type name 'LiVESXEventConfigure'
   48 | boolean config_laud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                         ^~~~~~~~~~~~~~~~~~~~
interface.h:48:65: error: unknown type name 'livespointer'
   48 | boolean config_laud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                                                 ^~~~~~~~~~~~
interface.h:49:1: error: unknown type name 'boolean'
   49 | boolean config_raud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      | ^~~~~~~
interface.h:49:26: error: unknown type name 'LiVESWidget'
   49 | boolean config_raud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                          ^~~~~~~~~~~
interface.h:49:41: error: unknown type name 'LiVESXEventConfigure'
   49 | boolean config_raud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                         ^~~~~~~~~~~~~~~~~~~~
interface.h:49:65: error: unknown type name 'livespointer'
   49 | boolean config_raud_draw(LiVESWidget *, LiVESXEventConfigure *, livespointer user_data);
      |                                                                 ^~~~~~~~~~~~
interface.h:53:1: error: unknown type name 'boolean'
   53 | boolean redraw_tl_idle(void *data);
      | ^~~~~~~
interface.h:55:1: error: unknown type name 'LiVESWidget'
   55 | LiVESWidget *create_opensel_dialog(int frames, double fps);
      | ^~~~~~~~~~~
interface.h:57:1: error: unknown type name 'LiVESWidget'
   57 | LiVESWidget *create_encoder_prep_dialog(const char *text1, const char *text2, boolean opt_resize);
      | ^~~~~~~~~~~
interface.h:57:79: error: unknown type name 'boolean'
   57 | LiVESWidget *create_encoder_prep_dialog(const char *text1, const char *text2, boolean opt_resize);
      |                                                                               ^~~~~~~
interface.h:59:25: error: unknown type name 'LiVESWidget'
   59 | void widget_add_preview(LiVESWidget *, LiVESBox *for_preview, LiVESBox *for_button,
      |                         ^~~~~~~~~~~
interface.h:59:40: error: unknown type name 'LiVESBox'
   59 | void widget_add_preview(LiVESWidget *, LiVESBox *for_preview, LiVESBox *for_button,
      |                                        ^~~~~~~~
interface.h:59:63: error: unknown type name 'LiVESBox'
   59 | void widget_add_preview(LiVESWidget *, LiVESBox *for_preview, LiVESBox *for_button,
      |                                                               ^~~~~~~~
interface.h:60:25: error: unknown type name 'LiVESBox'
   60 |                         LiVESBox *for_deinterlace, int preview_type);  ///< for fileselector preview
      |                         ^~~~~~~~
interface.h:65:1: error: unknown type name 'boolean'
   65 | boolean do_audio_choice_dialog(short startup_phase);
      | ^~~~~~~
interface.h:71:1: error: unknown type name 'LiVESWidget'
   71 | LiVESWidget *create_cleardisk_advanced_dialog(void);
      | ^~~~~~~~~~~
interface.h:73:1: error: unknown type name 'LiVESWidget'
   73 | LiVESWidget *make_autoreload_check(LiVESHBox *parent, boolean is_active);
      | ^~~~~~~~~~~
interface.h:73:36: error: unknown type name 'LiVESHBox'
   73 | LiVESWidget *make_autoreload_check(LiVESHBox *parent, boolean is_active);
      |                                    ^~~~~~~~~
interface.h:73:55: error: unknown type name 'boolean'
   73 | LiVESWidget *make_autoreload_check(LiVESHBox *parent, boolean is_active);
      |                                                       ^~~~~~~
interface.h:75:1: error: unknown type name 'LiVESWidget'
   75 | LiVESWidget *add_list_expander(LiVESBox *, const char *title, int width, int height, LiVESList *xlist);
      | ^~~~~~~~~~~
interface.h:75:32: error: unknown type name 'LiVESBox'
   75 | LiVESWidget *add_list_expander(LiVESBox *, const char *title, int width, int height, LiVESList *xlist);
      |                                ^~~~~~~~
interface.h:75:86: error: unknown type name 'LiVESList'
   75 | LiVESWidget *add_list_expander(LiVESBox *, const char *title, int width, int height, LiVESList *xlist);
      |                                                                                      ^~~~~~~~~
interface.h:78:3: error: unknown type name 'LiVESWidget'
   78 |   LiVESWidget *dialog;
      |   ^~~~~~~~~~~
interface.h:79:3: error: unknown type name 'LiVESWidget'
   79 |   LiVESWidget *textview_type;
      |   ^~~~~~~~~~~
interface.h:80:3: error: unknown type name 'LiVESWidget'
   80 |   LiVESWidget *textview_fps;
      |   ^~~~~~~~~~~
interface.h:81:3: error: unknown type name 'LiVESWidget'
   81 |   LiVESWidget *textview_size;
      |   ^~~~~~~~~~~
interface.h:82:3: error: unknown type name 'LiVESWidget'
   82 |   LiVESWidget *textview_frames;
      |   ^~~~~~~~~~~
interface.h:83:3: error: unknown type name 'LiVESWidget'
   83 |   LiVESWidget *textview_vtime;
      |   ^~~~~~~~~~~
interface.h:84:3: error: unknown type name 'LiVESWidget'
   84 |   LiVESWidget *textview_fsize;
      |   ^~~~~~~~~~~
interface.h:85:3: error: unknown type name 'LiVESWidget'
   85 |   LiVESWidget *textview_ltime;
      |   ^~~~~~~~~~~
interface.h:86:3: error: unknown type name 'LiVESWidget'
   86 |   LiVESWidget *textview_rtime;
      |   ^~~~~~~~~~~
interface.h:87:3: error: unknown type name 'LiVESWidget'
   87 |   LiVESWidget *textview_lrate;
      |   ^~~~~~~~~~~
interface.h:88:3: error: unknown type name 'LiVESWidget'
   88 |   LiVESWidget *textview_rrate;
      |   ^~~~~~~~~~~
interface.h:91:63: error: unknown type name 'boolean'
   91 | lives_clipinfo_t *create_clip_info_window(int audio_channels, boolean is_mt);
      |                                                               ^~~~~~~
interface.h:94:3: error: unknown type name 'LiVESWidget'
   94 |   LiVESWidget *dialog;
      |   ^~~~~~~~~~~
interface.h:95:3: error: unknown type name 'LiVESWidget'
   95 |   LiVESWidget *entry;
      |   ^~~~~~~~~~~
interface.h:96:3: error: unknown type name 'LiVESWidget'
   96 |   LiVESWidget *dir_entry;
      |   ^~~~~~~~~~~
interface.h:97:3: error: unknown type name 'LiVESWidget'
   97 |   LiVESWidget *name_entry;
      |   ^~~~~~~~~~~
interface.h:98:3: error: unknown type name 'LiVESWidget'
   98 |   LiVESWidget *warn_checkbutton;
      |   ^~~~~~~~~~~
interface.h:99:3: error: unknown type name 'LiVESWidget'
   99 |   LiVESWidget *okbutton;
      |   ^~~~~~~~~~~
interface.h:100:3: error: unknown type name 'LiVESWidget'
  100 |   LiVESWidget *cancelbutton;
      |   ^~~~~~~~~~~
interface.h:101:3: error: unknown type name 'LiVESWidget'
  101 |   LiVESWidget *expander;
      |   ^~~~~~~~~~~
interface.h:102:3: error: unknown type name 'LiVESWidget'
  102 |   LiVESWidget *exp_label;
      |   ^~~~~~~~~~~
interface.h:103:3: error: unknown type name 'LiVESWidget'
  103 |   LiVESWidget *exp_vbox;
      |   ^~~~~~~~~~~
interface.h:104:3: error: unknown type name 'LiVESWidget'
  104 |   LiVESWidget *layouts_layout;
      |   ^~~~~~~~~~~
interface.h:105:3: error: unknown type name 'LiVESWidget'
  105 |   LiVESWidget *clips_layout;
      |   ^~~~~~~~~~~
interface.h:106:3: error: unknown type name 'LiVESWidget'
  106 |   LiVESWidget *parent;
      |   ^~~~~~~~~~~
interface.h:114:3: error: unknown type name 'LiVESWidget'
  114 |   LiVESWidget *insert_dialog;
      |   ^~~~~~~~~~~
interface.h:115:3: error: unknown type name 'LiVESWidget'
  115 |   LiVESWidget *with_sound;
      |   ^~~~~~~~~~~
interface.h:116:3: error: unknown type name 'LiVESWidget'
  116 |   LiVESWidget *without_sound;
      |   ^~~~~~~~~~~
interface.h:117:3: error: unknown type name 'LiVESWidget'
  117 |   LiVESWidget *spinbutton_times;
      |   ^~~~~~~~~~~
interface.h:118:3: error: unknown type name 'LiVESWidget'
  118 |   LiVESWidget *fit_checkbutton;
      |   ^~~~~~~~~~~
interface.h:124:3: error: unknown type name 'LiVESWidget'
  124 |   LiVESWidget *comments_dialog;
      |   ^~~~~~~~~~~
interface.h:125:3: error: unknown type name 'LiVESWidget'
  125 |   LiVESWidget *title_entry;
      |   ^~~~~~~~~~~
interface.h:126:3: error: unknown type name 'LiVESWidget'
  126 |   LiVESWidget *author_entry;
      |   ^~~~~~~~~~~
interface.h:127:3: error: unknown type name 'LiVESWidget'
  127 |   LiVESWidget *comment_entry;
      |   ^~~~~~~~~~~
interface.h:128:3: error: unknown type name 'LiVESWidget'
  128 |   LiVESWidget *subt_checkbutton;
      |   ^~~~~~~~~~~
interface.h:129:3: error: unknown type name 'LiVESWidget'
  129 |   LiVESWidget *subt_entry;
      |   ^~~~~~~~~~~
interface.h:132:36: error: unknown type name 'lives_clip_t'; did you mean 'lives_clipinfo_t'?
  132 | _commentsw *create_comments_dialog(lives_clip_t *, char *filename);
      |                                    ^~~~~~~~~~~~
      |                                    lives_clipinfo_t
interface.h:135:3: error: unknown type name 'LiVESWidget'
  135 |   LiVESWidget *dialog;
      |   ^~~~~~~~~~~
interface.h:136:3: error: unknown type name 'LiVESWidget'
  136 |   LiVESWidget *clear_button;
      |   ^~~~~~~~~~~
interface.h:137:3: error: unknown type name 'LiVESWidget'
  137 |   LiVESWidget *delete_button;
      |   ^~~~~~~~~~~
interface.h:138:3: error: unknown type name 'LiVESWidget'
  138 |   LiVESWidget *textview;
      |   ^~~~~~~~~~~
interface.h:139:3: error: unknown type name 'LiVESWidget'
  139 |   LiVESWidget *table;
      |   ^~~~~~~~~~~
interface.h:140:3: error: unknown type name 'LiVESWidget'
  140 |   LiVESWidget *button;
      |   ^~~~~~~~~~~
interface.h:141:3: error: unknown type name 'LiVESWidget'
  141 |   LiVESWidget *vbox;
      |   ^~~~~~~~~~~
interface.h:142:3: error: unknown type name 'LiVESWidget'
  142 |   LiVESWidget *scrolledwindow;
      |   ^~~~~~~~~~~
interface.h:146:75: error: unknown type name 'LiVESTextBuffer'
  146 | text_window *create_text_window(const char *title_part, const char *text, LiVESTextBuffer *,
      |                                                                           ^~~~~~~~~~~~~~~
interface.h:147:33: error: unknown type name 'boolean'
  147 |                                 boolean add_buttons);
      |                                 ^~~~~~~
interface.h:149:1: error: unknown type name 'LiVESWidget'
  149 | LiVESWidget *scrolled_textview(const char *text, LiVESTextBuffer *, int window_width,
      | ^~~~~~~~~~~
interface.h:149:50: error: unknown type name 'LiVESTextBuffer'
  149 | LiVESWidget *scrolled_textview(const char *text, LiVESTextBuffer *, int window_width,
      |                                                  ^~~~~~~~~~~~~~~
interface.h:150:32: error: unknown type name 'LiVESWidget'
  150 |                                LiVESWidget **ptextview);
      |                                ^~~~~~~~~~~
interface.h:152:3: error: unknown type name 'LiVESWidget'
  152 |   LiVESWidget *dialog;
      |   ^~~~~~~~~~~
interface.h:153:3: error: unknown type name 'LiVESWidget'
  153 |   LiVESWidget *time_spin;
      |   ^~~~~~~~~~~
interface.h:154:3: error: unknown type name 'boolean'
  154 |   boolean is_sel;
      |   ^~~~~~~
interface.h:158:3: error: unknown type name 'boolean'
  158 |   boolean use_advanced;
      |   ^~~~~~~
interface.h:159:3: error: unknown type name 'LiVESWidget'
  159 |   LiVESWidget *advbutton;
      |   ^~~~~~~~~~~
interface.h:160:3: error: unknown type name 'LiVESWidget'
  160 |   LiVESWidget *adv_vbox;
      |   ^~~~~~~~~~~
interface.h:161:3: error: unknown type name 'LiVESWidget'
  161 |   LiVESWidget *combod;
      |   ^~~~~~~~~~~
interface.h:162:3: error: unknown type name 'LiVESWidget'
  162 |   LiVESWidget *comboo;
      |   ^~~~~~~~~~~
interface.h:163:3: error: unknown type name 'LiVESWidget'
  163 |   LiVESWidget *spinbuttoni;
      |   ^~~~~~~~~~~
interface.h:164:3: error: unknown type name 'LiVESWidget'
  164 |   LiVESWidget *spinbuttonw;
      |   ^~~~~~~~~~~
interface.h:165:3: error: unknown type name 'LiVESWidget'
  165 |   LiVESWidget *spinbuttonh;
      |   ^~~~~~~~~~~
interface.h:166:3: error: unknown type name 'LiVESWidget'
  166 |   LiVESWidget *spinbuttonf;
      |   ^~~~~~~~~~~
interface.h:167:3: error: unknown type name 'LiVESWidget'
  167 |   LiVESWidget *radiobuttond;
      |   ^~~~~~~~~~~
interface.h:191:1: error: unknown type name 'LiVESWidget'
  191 | LiVESWidget *create_combo_dialog(int type, LiVESList *list);
      | ^~~~~~~~~~~
interface.h:191:44: error: unknown type name 'LiVESList'
  191 | LiVESWidget *create_combo_dialog(int type, LiVESList *list);
      |                                            ^~~~~~~~~
interface.h:193:1: error: unknown type name 'xprocess'
  193 | xprocess *create_processing(const char *text);
      | ^~~~~~~~
interface.h:194:1: error: unknown type name 'xprocess'
  194 | xprocess *create_threaded_dialog(char *text, boolean has_cancel, boolean *td_had_focus);
      | ^~~~~~~~
interface.h:194:46: error: unknown type name 'boolean'
  194 | xprocess *create_threaded_dialog(char *text, boolean has_cancel, boolean *td_had_focus);
      |                                              ^~~~~~~
interface.h:194:66: error: unknown type name 'boolean'
  194 | xprocess *create_threaded_dialog(char *text, boolean has_cancel, boolean *td_had_focus);
      |                                                                  ^~~~~~~
interface.h:198:1: error: unknown type name 'boolean'
  198 | boolean get_play_screen_size(int *opwidth, int *opheight); /// actually in gui.c
      | ^~~~~~~
interface.h:205:1: error: unknown type name 'LiVESWidget'
  205 | LiVESWidget *create_cdtrack_dialog(int type, livespointer user_data);
      | ^~~~~~~~~~~
interface.h:205:46: error: unknown type name 'livespointer'
  205 | LiVESWidget *create_cdtrack_dialog(int type, livespointer user_data);
      |                                              ^~~~~~~~~~~~
interface.h:208:3: error: unknown type name 'LiVESWidget'
  208 |   LiVESWidget *dialog;
      |   ^~~~~~~~~~~
interface.h:209:3: error: unknown type name 'LiVESWidget'
  209 |   LiVESWidget *atrigger_button;
      |   ^~~~~~~~~~~
interface.h:210:3: error: unknown type name 'LiVESWidget'
  210 |   LiVESWidget *atrigger_spin;
      |   ^~~~~~~~~~~
interface.h:211:3: error: unknown type name 'LiVESWidget'
  211 |   LiVESWidget *apb_button;
      |   ^~~~~~~~~~~
interface.h:212:3: error: unknown type name 'LiVESWidget'
  212 |   LiVESWidget *mute_button;
      |   ^~~~~~~~~~~
interface.h:213:3: error: unknown type name 'LiVESWidget'
  213 |   LiVESWidget *debug_button;
      |   ^~~~~~~~~~~
interface.h:218:1: error: unknown type name 'LiVESTextView'
  218 | LiVESTextView *create_output_textview(void);
      | ^~~~~~~~~~~~~
interface.h:220:32: error: unknown type name 'LiVESButton'
  220 | void on_filesel_button_clicked(LiVESButton *, livespointer);
      |                                ^~~~~~~~~~~
interface.h:220:47: error: unknown type name 'livespointer'
  220 | void on_filesel_button_clicked(LiVESButton *, livespointer);
      |                                               ^~~~~~~~~~~~
interface.h:222:74: error: unknown type name 'LiVESFileChooserAction'
  222 | char *choose_file(const char *dir, const char *fname, char **const filt, LiVESFileChooserAction act, const char *title,
      |                                                                          ^~~~~~~~~~~~~~~~~~~~~~
interface.h:223:19: error: unknown type name 'LiVESWidget'
  223 |                   LiVESWidget *extra);
      |                   ^~~~~~~~~~~
interface.h:224:77: error: unknown type name 'LiVESFileChooserAction'
  224 | char *choose_file_bg(const char *dir, const char *fname, char **const filt, LiVESFileChooserAction act, const char *title,
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~
interface.h:225:22: error: unknown type name 'LiVESWidget'
  225 |                      LiVESWidget *extra);
      |                      ^~~~~~~~~~~
interface.h:226:1: error: unknown type name 'LiVESWidget'
  226 | LiVESWidget *choose_file_with_preview(const char *dir, const char *title, char **const filt, int preview_type);
      | ^~~~~~~~~~~
interface.h:228:23: error: unknown type name 'LiVESBox'
  228 | void add_suffix_check(LiVESBox *, const char *ext);
      |                       ^~~~~~~~
interface.h:230:7: error: unknown type name 'lives_special_aspect_t'
  230 | const lives_special_aspect_t *add_aspect_ratio_button(LiVESSpinButton *sp_width, LiVESSpinButton *sp_height,
      |       ^~~~~~~~~~~~~~~~~~~~~~
interface.h:230:55: error: unknown type name 'LiVESSpinButton'
  230 | const lives_special_aspect_t *add_aspect_ratio_button(LiVESSpinButton *sp_width, LiVESSpinButton *sp_height,
      |                                                       ^~~~~~~~~~~~~~~
interface.h:230:82: error: unknown type name 'LiVESSpinButton'
  230 | const lives_special_aspect_t *add_aspect_ratio_button(LiVESSpinButton *sp_width, LiVESSpinButton *sp_height,
      |                                                                                  ^~~~~~~~~~~~~~~
interface.h:231:5: error: unknown type name 'LiVESBox'
  231 |     LiVESBox *container);
      |     ^~~~~~~~
interface.h:255:17: error: 'PATH_MAX' undeclared here (not in a function)
  255 |   char save_dir[PATH_MAX];
      |                 ^~~~~~~~
interface.h:263:3: error: unknown type name 'boolean'
  263 |   boolean do_update;
      |   ^~~~~~~
interface.h:264:3: error: unknown type name 'boolean'
  264 |   boolean allownf;
      |   ^~~~~~~
interface.h:265:3: error: unknown type name 'boolean'
  265 |   boolean debug;
      |   ^~~~~~~
interface.h:272:1: error: unknown type name 'boolean'
  272 | boolean youtube_select_format(lives_remote_clip_request_t *);
      | ^~~~~~~
interface.h:275:3: error: unknown type name 'boolean'
  275 |   boolean scanning;
      |   ^~~~~~~
interface.h:276:3: error: unknown type name 'LiVESWidget'
  276 |   LiVESWidget *top_label;
      |   ^~~~~~~~~~~
interface.h:277:3: error: unknown type name 'LiVESWidget'
  277 |   LiVESWidget *dsu_label;
      |   ^~~~~~~~~~~
interface.h:278:3: error: unknown type name 'LiVESWidget'
  278 |   LiVESWidget *used_label;
      |   ^~~~~~~~~~~
interface.h:279:3: error: unknown type name 'LiVESWidget'
  279 |   LiVESWidget *inst_label;
      |   ^~~~~~~~~~~
interface.h:280:3: error: unknown type name 'LiVESWidget'
  280 |   LiVESWidget *note_label;
      |   ^~~~~~~~~~~
interface.h:281:3: error: unknown type name 'LiVESWidget'
  281 |   LiVESWidget *checkbutton;
      |   ^~~~~~~~~~~
interface.h:282:3: error: unknown type name 'LiVESWidget'
  282 |   LiVESWidget *vlabel;
      |   ^~~~~~~~~~~
interface.h:283:3: error: unknown type name 'LiVESWidget'
  283 |   LiVESWidget *vvlabel;
      |   ^~~~~~~~~~~
interface.h:284:3: error: unknown type name 'LiVESWidget'
  284 |   LiVESWidget *pculabel;
      |   ^~~~~~~~~~~
interface.h:285:3: error: unknown type name 'LiVESWidget'
  285 |   LiVESWidget *slider;
      |   ^~~~~~~~~~~
interface.h:286:3: error: unknown type name 'LiVESWidget'
  286 |   LiVESWidget *button;
      |   ^~~~~~~~~~~
interface.h:287:3: error: unknown type name 'LiVESWidget'
  287 |   LiVESWidget *abort_button;
      |   ^~~~~~~~~~~
interface.h:288:3: error: unknown type name 'LiVESWidget'
  288 |   LiVESWidget *resbutton;
      |   ^~~~~~~~~~~
interface.h:289:3: error: unknown type name 'LiVESWidget'
  289 |   LiVESWidget *expander;
      |   ^~~~~~~~~~~
interface.h:290:3: error: unknown type name 'LiVESWidget'
  290 |   LiVESWidget *exp_vbox;
      |   ^~~~~~~~~~~
interface.h:291:3: error: unknown type name 'LiVESWidget'
  291 |   LiVESWidget *exp_layout;
      |   ^~~~~~~~~~~
interface.h:292:3: error: unknown type name 'boolean'
  292 |   boolean setting, visible;
      |   ^~~~~~~
interface.h:293:3: error: unknown type name 'uint64_t'
  293 |   uint64_t sliderfunc, checkfunc;
      |   ^~~~~~~~
interface.h:294:3: error: unknown type name 'lives_painter_surface_t'
  294 |   lives_painter_surface_t *dsu_surface;
      |   ^~~~~~~~~~~~~~~~~~~~~~~
interface.h:295:3: error: unknown type name 'boolean'
  295 |   boolean crit_dism;
      |   ^~~~~~~
interface.h:300:30: error: unknown type name 'LiVESWidget'
  300 | void run_diskspace_dialog_cb(LiVESWidget *, livespointer data);
      |                              ^~~~~~~~~~~
interface.h:300:45: error: unknown type name 'livespointer'
  300 | void run_diskspace_dialog_cb(LiVESWidget *, livespointer data);
      |                                             ^~~~~~~~~~~~
interface.h:301:1: error: unknown type name 'boolean'
  301 | boolean run_diskspace_dialog_idle(livespointer data);
      | ^~~~~~~
interface.h:301:35: error: unknown type name 'livespointer'
  301 | boolean run_diskspace_dialog_idle(livespointer data);
      |                                   ^~~~~~~~~~~~
interface.h:303:1: error: unknown type name 'LiVESResponseType'
  303 | LiVESResponseType filter_cleanup(const char *trashdir, LiVESList **rec_list, LiVESList **rem_list,
      | ^~~~~~~~~~~~~~~~~
interface.h:303:56: error: unknown type name 'LiVESList'
  303 | LiVESResponseType filter_cleanup(const char *trashdir, LiVESList **rec_list, LiVESList **rem_list,
      |                                                        ^~~~~~~~~
interface.h:303:78: error: unknown type name 'LiVESList'
  303 | LiVESResponseType filter_cleanup(const char *trashdir, LiVESList **rec_list, LiVESList **rem_list,
      |                                                                              ^~~~~~~~~
interface.h:304:34: error: unknown type name 'LiVESList'
  304 |                                  LiVESList **left_list);
      |                                  ^~~~~~~~~
interface.h:306:1: error: unknown type name 'LiVESWidget'
  306 | LiVESWidget *trash_rb(LiVESButtonBox *parent);
      | ^~~~~~~~~~~
interface.h:306:23: error: unknown type name 'LiVESButtonBox'
  306 | LiVESWidget *trash_rb(LiVESButtonBox *parent);
      |                       ^~~~~~~~~~~~~~
interface.h:308:22: error: unknown type name 'LiVESWidget'
  308 | void draw_dsu_widget(LiVESWidget *dsu_widget);
      |                      ^~~~~~~~~~~
In file included from diagnostics.c:11:
callbacks.h:18:15: error: unknown type name 'boolean'
   18 | void play_all(boolean from_menu);
      |               ^~~~~~~
callbacks.h:24:24: error: unknown type name 'LiVESButton'
   24 | void on_effects_paused(LiVESButton *, livespointer);
      |                        ^~~~~~~~~~~
callbacks.h:24:39: error: unknown type name 'livespointer'
   24 | void on_effects_paused(LiVESButton *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:26:36: error: unknown type name 'LiVESButton'
   26 | void on_cancel_keep_button_clicked(LiVESButton *, livespointer);
      |                                    ^~~~~~~~~~~
callbacks.h:26:51: error: unknown type name 'livespointer'
   26 | void on_cancel_keep_button_clicked(LiVESButton *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:28:28: error: unknown type name 'LiVESWidget'
   28 | void on_cleardisk_activate(LiVESWidget *, livespointer);
      |                            ^~~~~~~~~~~
callbacks.h:28:43: error: unknown type name 'livespointer'
   28 | void on_cleardisk_activate(LiVESWidget *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:30:36: error: unknown type name 'LiVESWidget'
   30 | void on_cleardisk_advanced_clicked(LiVESWidget *, livespointer);
      |                                    ^~~~~~~~~~~
callbacks.h:30:51: error: unknown type name 'livespointer'
   30 | void on_cleardisk_advanced_clicked(LiVESWidget *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:32:1: error: unknown type name 'boolean'
   32 | boolean check_for_layout_errors(const char *operation, int fileno, int start, int end, uint32_t *in_mask);
      | ^~~~~~~
callbacks.h:32:88: error: unknown type name 'uint32_t'
   32 | boolean check_for_layout_errors(const char *operation, int fileno, int start, int end, uint32_t *in_mask);
      |                                                                                        ^~~~~~~~
callbacks.h:34:24: error: unknown type name 'LiVESMenuItem'
   34 | void popup_lmap_errors(LiVESMenuItem *, livespointer);
      |                        ^~~~~~~~~~~~~
callbacks.h:34:41: error: unknown type name 'livespointer'
   34 | void popup_lmap_errors(LiVESMenuItem *, livespointer);
      |                                         ^~~~~~~~~~~~
callbacks.h:36:41: error: unknown type name 'boolean'
   36 | void switch_clip(int type, int newclip, boolean force);
      |                                         ^~~~~~~
callbacks.h:38:27: error: unknown type name 'LiVESMenuItem'
   38 | void switch_clip_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:38:44: error: unknown type name 'livespointer'
   38 | void switch_clip_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:42:1: error: unknown type name 'boolean'
   42 | boolean on_LiVES_delete_event(LiVESWidget *, LiVESXEvent *, livespointer);
      | ^~~~~~~
callbacks.h:42:31: error: unknown type name 'LiVESWidget'
   42 | boolean on_LiVES_delete_event(LiVESWidget *, LiVESXEvent *, livespointer);
      |                               ^~~~~~~~~~~
callbacks.h:42:46: error: unknown type name 'LiVESXEvent'
   42 | boolean on_LiVES_delete_event(LiVESWidget *, LiVESXEvent *, livespointer);
      |                                              ^~~~~~~~~~~
callbacks.h:42:61: error: unknown type name 'livespointer'
   42 | boolean on_LiVES_delete_event(LiVESWidget *, LiVESXEvent *, livespointer);
      |                                                             ^~~~~~~~~~~~
callbacks.h:44:23: error: unknown type name 'LiVESMenuItem'
   44 | void on_open_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:44:40: error: unknown type name 'livespointer'
   44 | void on_open_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:46:27: error: unknown type name 'LiVESMenuItem'
   46 | void on_open_sel_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:46:44: error: unknown type name 'livespointer'
   46 | void on_open_sel_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:48:27: error: unknown type name 'LiVESMenuItem'
   48 | void on_open_loc_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:48:44: error: unknown type name 'livespointer'
   48 | void on_open_loc_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:50:29: error: unknown type name 'LiVESMenuItem'
   50 | void on_open_utube_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:50:46: error: unknown type name 'livespointer'
   50 | void on_open_utube_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:52:22: error: unknown type name 'LiVESMenuItem'
   52 | void on_stop_clicked(LiVESMenuItem *, livespointer);
      |                      ^~~~~~~~~~~~~
callbacks.h:52:39: error: unknown type name 'livespointer'
   52 | void on_stop_clicked(LiVESMenuItem *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:55:28: error: unknown type name 'LiVESMenuItem'
   55 | void on_transcode_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:55:45: error: unknown type name 'livespointer'
   55 | void on_transcode_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:58:33: error: unknown type name 'LiVESMenuItem'
   58 | void on_save_selection_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:58:50: error: unknown type name 'livespointer'
   58 | void on_save_selection_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:60:26: error: unknown type name 'LiVESMenuItem'
   60 | void on_save_as_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:60:43: error: unknown type name 'livespointer'
   60 | void on_save_as_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:62:38: error: unknown type name 'LiVESMenuItem'
   62 | void on_show_clipboard_info_activate(LiVESMenuItem *, livespointer);
      |                                      ^~~~~~~~~~~~~
callbacks.h:62:55: error: unknown type name 'livespointer'
   62 | void on_show_clipboard_info_activate(LiVESMenuItem *, livespointer);
      |                                                       ^~~~~~~~~~~~
callbacks.h:64:24: error: unknown type name 'LiVESMenuItem'
   64 | void on_close_activate(LiVESMenuItem *, livespointer);
      |                        ^~~~~~~~~~~~~
callbacks.h:64:41: error: unknown type name 'livespointer'
   64 | void on_close_activate(LiVESMenuItem *, livespointer);
      |                                         ^~~~~~~~~~~~
callbacks.h:66:30: error: unknown type name 'LiVESMenuItem'
   66 | void on_import_proj_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:66:47: error: unknown type name 'livespointer'
   66 | void on_import_proj_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:68:30: error: unknown type name 'LiVESMenuItem'
   68 | void on_export_proj_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:68:47: error: unknown type name 'livespointer'
   68 | void on_export_proj_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:70:31: error: unknown type name 'LiVESMenuItem'
   70 | void on_export_theme_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:70:48: error: unknown type name 'livespointer'
   70 | void on_export_theme_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:72:31: error: unknown type name 'LiVESMenuItem'
   72 | void on_import_theme_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:72:48: error: unknown type name 'livespointer'
   72 | void on_import_theme_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:74:23: error: unknown type name 'LiVESMenuItem'
   74 | void on_quit_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:74:40: error: unknown type name 'livespointer'
   74 | void on_quit_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:76:22: error: unknown type name 'boolean'
   76 | void del_current_set(boolean exit_after);
      |                      ^~~~~~~
callbacks.h:78:23: error: unknown type name 'LiVESWidget'
   78 | void on_undo_activate(LiVESWidget *, livespointer);
      |                       ^~~~~~~~~~~
callbacks.h:78:38: error: unknown type name 'livespointer'
   78 | void on_undo_activate(LiVESWidget *, livespointer);
      |                                      ^~~~~~~~~~~~
callbacks.h:80:23: error: unknown type name 'LiVESWidget'
   80 | void on_redo_activate(LiVESWidget *, livespointer);
      |                       ^~~~~~~~~~~
callbacks.h:80:38: error: unknown type name 'livespointer'
   80 | void on_redo_activate(LiVESWidget *, livespointer);
      |                                      ^~~~~~~~~~~~
callbacks.h:82:31: error: unknown type name 'LiVESMenuItem'
   82 | void on_paste_as_new_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:82:48: error: unknown type name 'livespointer'
   82 | void on_paste_as_new_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:84:23: error: unknown type name 'LiVESMenuItem'
   84 | void on_copy_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:84:40: error: unknown type name 'livespointer'
   84 | void on_copy_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:86:22: error: unknown type name 'LiVESMenuItem'
   86 | void on_cut_activate(LiVESMenuItem *, livespointer);
      |                      ^~~~~~~~~~~~~
callbacks.h:86:39: error: unknown type name 'livespointer'
   86 | void on_cut_activate(LiVESMenuItem *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:88:29: error: unknown type name 'LiVESMenuItem'
   88 | void on_insert_pre_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:88:46: error: unknown type name 'livespointer'
   88 | void on_insert_pre_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:90:25: error: unknown type name 'LiVESButton'
   90 | void on_insert_activate(LiVESButton *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:90:40: error: unknown type name 'livespointer'
   90 | void on_insert_activate(LiVESButton *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:92:24: error: unknown type name 'LiVESMenuItem'
   92 | void on_merge_activate(LiVESMenuItem *, livespointer);
      |                        ^~~~~~~~~~~~~
callbacks.h:92:41: error: unknown type name 'livespointer'
   92 | void on_merge_activate(LiVESMenuItem *, livespointer);
      |                                         ^~~~~~~~~~~~
callbacks.h:94:25: error: unknown type name 'LiVESMenuItem'
   94 | void on_delete_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:94:42: error: unknown type name 'livespointer'
   94 | void on_delete_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:98:29: error: unknown type name 'LiVESWidget'
   98 | void on_select_all_activate(LiVESWidget *, livespointer);
      |                             ^~~~~~~~~~~
callbacks.h:98:44: error: unknown type name 'livespointer'
   98 | void on_select_all_activate(LiVESWidget *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:100:29: error: unknown type name 'LiVESMenuItem'
  100 | void on_select_new_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:100:46: error: unknown type name 'livespointer'
  100 | void on_select_new_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:102:30: error: unknown type name 'LiVESMenuItem'
  102 | void on_select_last_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:102:47: error: unknown type name 'livespointer'
  102 | void on_select_last_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:104:32: error: unknown type name 'LiVESMenuItem'
  104 | void on_select_to_end_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:104:49: error: unknown type name 'livespointer'
  104 | void on_select_to_end_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:106:33: error: unknown type name 'LiVESMenuItem'
  106 | void on_select_to_aend_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:106:50: error: unknown type name 'livespointer'
  106 | void on_select_to_aend_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:108:36: error: unknown type name 'LiVESMenuItem'
  108 | void on_select_from_start_activate(LiVESMenuItem *, livespointer);
      |                                    ^~~~~~~~~~~~~
callbacks.h:108:53: error: unknown type name 'livespointer'
  108 | void on_select_from_start_activate(LiVESMenuItem *, livespointer);
      |                                                     ^~~~~~~~~~~~
callbacks.h:110:32: error: unknown type name 'LiVESMenuItem'
  110 | void on_lock_selwidth_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:110:49: error: unknown type name 'livespointer'
  110 | void on_lock_selwidth_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:112:26: error: unknown type name 'LiVESMenuItem'
  112 | void on_playall_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:112:43: error: unknown type name 'livespointer'
  112 | void on_playall_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:114:26: error: unknown type name 'LiVESMenuItem'
  114 | void on_playsel_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:114:43: error: unknown type name 'livespointer'
  114 | void on_playsel_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:116:27: error: unknown type name 'LiVESMenuItem'
  116 | void on_playclip_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:116:44: error: unknown type name 'livespointer'
  116 | void on_playclip_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:118:23: error: unknown type name 'LiVESMenuItem'
  118 | void on_stop_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:118:40: error: unknown type name 'livespointer'
  118 | void on_stop_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:120:32: error: unknown type name 'LiVESMenuItem'
  120 | void on_rev_clipboard_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:120:49: error: unknown type name 'livespointer'
  120 | void on_rev_clipboard_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:122:31: error: unknown type name 'LiVESCombo'
  122 | void on_encoder_entry_changed(LiVESCombo *, livespointer ptr);
      |                               ^~~~~~~~~~
callbacks.h:122:45: error: unknown type name 'livespointer'
  122 | void on_encoder_entry_changed(LiVESCombo *, livespointer ptr);
      |                                             ^~~~~~~~~~~~
callbacks.h:124:33: error: unknown type name 'LiVESMenuItem'
  124 | void on_show_file_info_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:124:50: error: unknown type name 'livespointer'
  124 | void on_show_file_info_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:126:24: error: unknown type name 'LiVESMenuItem'
  126 | void on_about_activate(LiVESMenuItem *, livespointer);
      |                        ^~~~~~~~~~~~~
callbacks.h:126:41: error: unknown type name 'livespointer'
  126 | void on_about_activate(LiVESMenuItem *, livespointer);
      |                                         ^~~~~~~~~~~~
callbacks.h:128:27: error: unknown type name 'LiVESMenuItem'
  128 | void show_manual_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:128:44: error: unknown type name 'livespointer'
  128 | void show_manual_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:130:28: error: unknown type name 'LiVESMenuItem'
  130 | void email_author_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:130:45: error: unknown type name 'livespointer'
  130 | void email_author_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:132:22: error: unknown type name 'LiVESMenuItem'
  132 | void donate_activate(LiVESMenuItem *, livespointer);
      |                      ^~~~~~~~~~~~~
callbacks.h:132:39: error: unknown type name 'livespointer'
  132 | void donate_activate(LiVESMenuItem *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:134:26: error: unknown type name 'LiVESMenuItem'
  134 | void report_bug_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:134:43: error: unknown type name 'livespointer'
  134 | void report_bug_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:136:31: error: unknown type name 'LiVESMenuItem'
  136 | void suggest_feature_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:136:48: error: unknown type name 'livespointer'
  136 | void suggest_feature_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:138:30: error: unknown type name 'LiVESMenuItem'
  138 | void help_translate_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:138:47: error: unknown type name 'livespointer'
  138 | void help_translate_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:140:22: error: unknown type name 'LiVESCheckMenuItem'
  140 | void vj_mode_toggled(LiVESCheckMenuItem *, livespointer);
      |                      ^~~~~~~~~~~~~~~~~~
callbacks.h:140:44: error: unknown type name 'livespointer'
  140 | void vj_mode_toggled(LiVESCheckMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:142:28: error: unknown type name 'LiVESButton'
  142 | void on_ok_button1_clicked(LiVESButton *, livespointer);
      |                            ^~~~~~~~~~~
callbacks.h:142:43: error: unknown type name 'livespointer'
  142 | void on_ok_button1_clicked(LiVESButton *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:144:30: error: unknown type name 'LiVESFileChooser'
  144 | void on_ok_file_open_clicked(LiVESFileChooser *, LiVESSList *fnames);
      |                              ^~~~~~~~~~~~~~~~
callbacks.h:144:50: error: unknown type name 'LiVESSList'
  144 | void on_ok_file_open_clicked(LiVESFileChooser *, LiVESSList *fnames);
      |                                                  ^~~~~~~~~~
callbacks.h:146:25: error: unknown type name 'LiVESButton'
  146 | void on_location_select(LiVESButton *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:146:40: error: unknown type name 'livespointer'
  146 | void on_location_select(LiVESButton *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:150:34: error: unknown type name 'LiVESButton'
  150 | void on_opensel_range_ok_clicked(LiVESButton *, livespointer);
      |                                  ^~~~~~~~~~~
callbacks.h:150:49: error: unknown type name 'livespointer'
  150 | void on_opensel_range_ok_clicked(LiVESButton *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:152:36: error: unknown type name 'LiVESButton'
  152 | void on_open_sel_ok_button_clicked(LiVESButton *, livespointer);
      |                                    ^~~~~~~~~~~
callbacks.h:152:51: error: unknown type name 'livespointer'
  152 | void on_open_sel_ok_button_clicked(LiVESButton *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:154:31: error: unknown type name 'LiVESButton'
  154 | void on_save_textview_clicked(LiVESButton *, livespointer);
      |                               ^~~~~~~~~~~
callbacks.h:154:46: error: unknown type name 'livespointer'
  154 | void on_save_textview_clicked(LiVESButton *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:156:36: error: unknown type name 'LiVESWidget'
  156 | void on_filechooser_cancel_clicked(LiVESWidget *);
      |                                    ^~~~~~~~~~~
callbacks.h:158:29: error: unknown type name 'LiVESButton'
  158 | void on_full_screen_pressed(LiVESButton *, livespointer);
      |                             ^~~~~~~~~~~
callbacks.h:158:44: error: unknown type name 'livespointer'
  158 | void on_full_screen_pressed(LiVESButton *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:160:30: error: unknown type name 'LiVESMenuItem'
  160 | void on_full_screen_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:160:47: error: unknown type name 'livespointer'
  160 | void on_full_screen_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:162:29: error: unknown type name 'LiVESButton'
  162 | void on_double_size_pressed(LiVESButton *, livespointer);
      |                             ^~~~~~~~~~~
callbacks.h:162:44: error: unknown type name 'livespointer'
  162 | void on_double_size_pressed(LiVESButton *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:164:30: error: unknown type name 'LiVESMenuItem'
  164 | void on_double_size_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:164:47: error: unknown type name 'livespointer'
  164 | void on_double_size_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:166:24: error: unknown type name 'LiVESButton'
  166 | void on_sepwin_pressed(LiVESButton *, livespointer);
      |                        ^~~~~~~~~~~
callbacks.h:166:39: error: unknown type name 'livespointer'
  166 | void on_sepwin_pressed(LiVESButton *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:168:25: error: unknown type name 'LiVESMenuItem'
  168 | void on_sepwin_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:168:42: error: unknown type name 'livespointer'
  168 | void on_sepwin_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:170:22: error: unknown type name 'LiVESButton'
  170 | void on_fade_pressed(LiVESButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:170:37: error: unknown type name 'livespointer'
  170 | void on_fade_pressed(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~~
callbacks.h:172:23: error: unknown type name 'LiVESMenuItem'
  172 | void on_fade_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:172:40: error: unknown type name 'livespointer'
  172 | void on_fade_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:174:29: error: unknown type name 'LiVESMenuItem'
  174 | void on_loop_video_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:174:46: error: unknown type name 'livespointer'
  174 | void on_loop_video_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:176:30: error: unknown type name 'LiVESMenuItem'
  176 | void on_mute_button_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:176:47: error: unknown type name 'livespointer'
  176 | void on_mute_button_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:178:23: error: unknown type name 'LiVESMenuItem'
  178 | void on_mute_activate(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:178:40: error: unknown type name 'livespointer'
  178 | void on_mute_activate(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:180:25: error: unknown type name 'LiVESMenuItem'
  180 | void on_resize_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:180:42: error: unknown type name 'livespointer'
  180 | void on_resize_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:182:25: error: unknown type name 'LiVESMenuItem'
  182 | void on_rename_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:182:42: error: unknown type name 'livespointer'
  182 | void on_rename_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:184:26: error: unknown type name 'LiVESButton'
  184 | void on_rename_clip_name(LiVESButton *, livespointer);
      |                          ^~~~~~~~~~~
callbacks.h:184:41: error: unknown type name 'livespointer'
  184 | void on_rename_clip_name(LiVESButton *, livespointer);
      |                                         ^~~~~~~~~~~~
callbacks.h:186:40: error: unknown type name 'LiVESSpinButton'
  186 | void on_spinbutton_start_value_changed(LiVESSpinButton *, livespointer);
      |                                        ^~~~~~~~~~~~~~~
callbacks.h:186:59: error: unknown type name 'livespointer'
  186 | void on_spinbutton_start_value_changed(LiVESSpinButton *, livespointer);
      |                                                           ^~~~~~~~~~~~
callbacks.h:188:38: error: unknown type name 'LiVESSpinButton'
  188 | void on_spinbutton_end_value_changed(LiVESSpinButton *, livespointer);
      |                                      ^~~~~~~~~~~~~~~
callbacks.h:188:57: error: unknown type name 'livespointer'
  188 | void on_spinbutton_end_value_changed(LiVESSpinButton *, livespointer);
      |                                                         ^~~~~~~~~~~~
callbacks.h:190:32: error: unknown type name 'LiVESFileChooser'
  190 | void on_open_new_audio_clicked(LiVESFileChooser *, livespointer opt_filename);
      |                                ^~~~~~~~~~~~~~~~
callbacks.h:190:52: error: unknown type name 'livespointer'
  190 | void on_open_new_audio_clicked(LiVESFileChooser *, livespointer opt_filename);
      |                                                    ^~~~~~~~~~~~
callbacks.h:192:29: error: unknown type name 'LiVESMenuItem'
  192 | void on_load_audio_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:192:46: error: unknown type name 'livespointer'
  192 | void on_load_audio_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:194:28: error: unknown type name 'LiVESMenuItem'
  194 | void on_load_subs_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:194:45: error: unknown type name 'livespointer'
  194 | void on_load_subs_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:196:28: error: unknown type name 'LiVESMenuItem'
  196 | void on_save_subs_activate(LiVESMenuItem *, livespointer entry_widget);
      |                            ^~~~~~~~~~~~~
callbacks.h:196:45: error: unknown type name 'livespointer'
  196 | void on_save_subs_activate(LiVESMenuItem *, livespointer entry_widget);
      |                                             ^~~~~~~~~~~~
callbacks.h:198:29: error: unknown type name 'LiVESMenuItem'
  198 | void on_erase_subs_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:198:46: error: unknown type name 'livespointer'
  198 | void on_erase_subs_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:200:29: error: unknown type name 'LiVESToggleButton'
  200 | void on_insfitaudio_toggled(LiVESToggleButton *, livespointer);
      |                             ^~~~~~~~~~~~~~~~~
callbacks.h:200:50: error: unknown type name 'livespointer'
  200 | void on_insfitaudio_toggled(LiVESToggleButton *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:202:36: error: unknown type name 'LiVESSpinButton'
  202 | void on_resize_hsize_value_changed(LiVESSpinButton *, livespointer);
      |                                    ^~~~~~~~~~~~~~~
callbacks.h:202:55: error: unknown type name 'livespointer'
  202 | void on_resize_hsize_value_changed(LiVESSpinButton *, livespointer);
      |                                                       ^~~~~~~~~~~~
callbacks.h:204:36: error: unknown type name 'LiVESSpinButton'
  204 | void on_resize_vsize_value_changed(LiVESSpinButton *, livespointer);
      |                                    ^~~~~~~~~~~~~~~
callbacks.h:204:55: error: unknown type name 'livespointer'
  204 | void on_resize_vsize_value_changed(LiVESSpinButton *, livespointer);
      |                                                       ^~~~~~~~~~~~
callbacks.h:206:27: error: unknown type name 'LiVESButton'
  206 | void on_resize_ok_clicked(LiVESButton *, livespointer);
      |                           ^~~~~~~~~~~
callbacks.h:206:42: error: unknown type name 'livespointer'
  206 | void on_resize_ok_clicked(LiVESButton *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:208:28: error: unknown type name 'LiVESSpinButton'
  208 | void on_spin_value_changed(LiVESSpinButton *, livespointer);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:208:47: error: unknown type name 'livespointer'
  208 | void on_spin_value_changed(LiVESSpinButton *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:210:34: error: unknown type name 'LiVESSpinButton'
  210 | void on_spin_start_value_changed(LiVESSpinButton *, livespointer  user_data);
      |                                  ^~~~~~~~~~~~~~~
callbacks.h:210:53: error: unknown type name 'livespointer'
  210 | void on_spin_start_value_changed(LiVESSpinButton *, livespointer  user_data);
      |                                                     ^~~~~~~~~~~~
callbacks.h:212:33: error: unknown type name 'LiVESSpinButton'
  212 | void on_spin_step_value_changed(LiVESSpinButton *, livespointer);
      |                                 ^~~~~~~~~~~~~~~
callbacks.h:212:52: error: unknown type name 'livespointer'
  212 | void on_spin_step_value_changed(LiVESSpinButton *, livespointer);
      |                                                    ^~~~~~~~~~~~
callbacks.h:214:32: error: unknown type name 'LiVESSpinButton'
  214 | void on_spin_end_value_changed(LiVESSpinButton *, livespointer);
      |                                ^~~~~~~~~~~~~~~
callbacks.h:214:51: error: unknown type name 'livespointer'
  214 | void on_spin_end_value_changed(LiVESSpinButton *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:216:1: warning: data definition has no type or storage class
  216 | EXPOSE_FN_PROTOTYPE(expose_vid_event);
      | ^~~~~~~~~~~~~~~~~~~
callbacks.h:216:1: warning: type defaults to 'int' in declaration of 'EXPOSE_FN_PROTOTYPE' [-Wimplicit-int]
callbacks.h:216:1: warning: parameter names (without types) in function declaration
callbacks.h:218:1: warning: data definition has no type or storage class
  218 | EXPOSE_FN_PROTOTYPE(expose_laud_event);
      | ^~~~~~~~~~~~~~~~~~~
callbacks.h:218:1: warning: type defaults to 'int' in declaration of 'EXPOSE_FN_PROTOTYPE' [-Wimplicit-int]
callbacks.h:218:1: warning: parameter names (without types) in function declaration
callbacks.h:220:1: warning: data definition has no type or storage class
  220 | EXPOSE_FN_PROTOTYPE(expose_raud_event);
      | ^~~~~~~~~~~~~~~~~~~
callbacks.h:220:1: warning: type defaults to 'int' in declaration of 'EXPOSE_FN_PROTOTYPE' [-Wimplicit-int]
callbacks.h:220:1: warning: parameter names (without types) in function declaration
callbacks.h:222:25: error: unknown type name 'LiVESButton'
  222 | void on_preview_clicked(LiVESButton *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:222:40: error: unknown type name 'livespointer'
  222 | void on_preview_clicked(LiVESButton *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:224:25: error: unknown type name 'LiVESMenuItem'
  224 | void on_recent_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:224:42: error: unknown type name 'livespointer'
  224 | void on_recent_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:226:1: error: unknown type name 'boolean'
  226 | boolean all_expose_pb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
callbacks.h:226:23: error: unknown type name 'LiVESWidget'
  226 | boolean all_expose_pb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                       ^~~~~~~~~~~
callbacks.h:226:38: error: unknown type name 'lives_painter_t'
  226 | boolean all_expose_pb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                      ^~~~~~~~~~~~~~~
callbacks.h:226:57: error: unknown type name 'livespointer'
  226 | boolean all_expose_pb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                         ^~~~~~~~~~~~
callbacks.h:227:1: error: unknown type name 'boolean'
  227 | boolean all_expose_overlay(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
callbacks.h:227:28: error: unknown type name 'LiVESWidget'
  227 | boolean all_expose_overlay(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                            ^~~~~~~~~~~
callbacks.h:227:43: error: unknown type name 'lives_painter_t'
  227 | boolean all_expose_overlay(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                           ^~~~~~~~~~~~~~~
callbacks.h:227:62: error: unknown type name 'livespointer'
  227 | boolean all_expose_overlay(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                              ^~~~~~~~~~~~
callbacks.h:228:1: error: unknown type name 'boolean'
  228 | boolean all_expose_nopb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      | ^~~~~~~
callbacks.h:228:25: error: unknown type name 'LiVESWidget'
  228 | boolean all_expose_nopb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                         ^~~~~~~~~~~
callbacks.h:228:40: error: unknown type name 'lives_painter_t'
  228 | boolean all_expose_nopb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                        ^~~~~~~~~~~~~~~
callbacks.h:228:59: error: unknown type name 'livespointer'
  228 | boolean all_expose_nopb(LiVESWidget *, lives_painter_t *, livespointer psurf);
      |                                                           ^~~~~~~~~~~~
callbacks.h:230:1: error: unknown type name 'boolean'
  230 | boolean config_event(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      | ^~~~~~~
callbacks.h:230:22: error: unknown type name 'LiVESWidget'
  230 | boolean config_event(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:230:37: error: unknown type name 'LiVESXEventConfigure'
  230 | boolean config_event(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                                     ^~~~~~~~~~~~~~~~~~~~
callbacks.h:230:61: error: unknown type name 'livespointer'
  230 | boolean config_event(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                                                             ^~~~~~~~~~~~
callbacks.h:231:1: error: unknown type name 'boolean'
  231 | boolean config_event2(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      | ^~~~~~~
callbacks.h:231:23: error: unknown type name 'LiVESWidget'
  231 | boolean config_event2(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                       ^~~~~~~~~~~
callbacks.h:231:38: error: unknown type name 'LiVESXEventConfigure'
  231 | boolean config_event2(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                                      ^~~~~~~~~~~~~~~~~~~~
callbacks.h:231:62: error: unknown type name 'livespointer'
  231 | boolean config_event2(LiVESWidget *, LiVESXEventConfigure *, livespointer);
      |                                                              ^~~~~~~~~~~~
callbacks.h:233:28: error: unknown type name 'LiVESSpinButton'
  233 | void changed_fps_during_pb(LiVESSpinButton *, livespointer);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:233:47: error: unknown type name 'livespointer'
  233 | void changed_fps_during_pb(LiVESSpinButton *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:235:23: error: unknown type name 'LiVESButton'
  235 | void on_volch_pressed(LiVESButton *, livespointer dirny);
      |                       ^~~~~~~~~~~
callbacks.h:235:38: error: unknown type name 'livespointer'
  235 | void on_volch_pressed(LiVESButton *, livespointer dirny);
      |                                      ^~~~~~~~~~~~
callbacks.h:237:1: error: unknown type name 'boolean'
  237 | boolean on_mouse_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer);
      | ^~~~~~~
callbacks.h:237:25: error: unknown type name 'LiVESWidget'
  237 | boolean on_mouse_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:237:40: error: unknown type name 'LiVESXEventScroll'
  237 | boolean on_mouse_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer);
      |                                        ^~~~~~~~~~~~~~~~~
callbacks.h:237:61: error: unknown type name 'livespointer'
  237 | boolean on_mouse_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer);
      |                                                             ^~~~~~~~~~~~
callbacks.h:239:1: error: unknown type name 'boolean'
  239 | boolean on_mouse_sel_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      | ^~~~~~~
callbacks.h:239:29: error: unknown type name 'LiVESWidget'
  239 | boolean on_mouse_sel_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                             ^~~~~~~~~~~
callbacks.h:239:44: error: unknown type name 'LiVESXEventMotion'
  239 | boolean on_mouse_sel_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                                            ^~~~~~~~~~~~~~~~~
callbacks.h:239:65: error: unknown type name 'livespointer'
  239 | boolean on_mouse_sel_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                                                                 ^~~~~~~~~~~~
callbacks.h:241:1: error: unknown type name 'boolean'
  241 | boolean on_mouse_sel_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      | ^~~~~~~
callbacks.h:241:28: error: unknown type name 'LiVESWidget'
  241 | boolean on_mouse_sel_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                            ^~~~~~~~~~~
callbacks.h:241:43: error: unknown type name 'LiVESXEventButton'
  241 | boolean on_mouse_sel_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                           ^~~~~~~~~~~~~~~~~
callbacks.h:241:64: error: unknown type name 'livespointer'
  241 | boolean on_mouse_sel_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                                                ^~~~~~~~~~~~
callbacks.h:243:1: error: unknown type name 'boolean'
  243 | boolean on_mouse_sel_start(LiVESWidget *, LiVESXEventButton *, livespointer);
      | ^~~~~~~
callbacks.h:243:28: error: unknown type name 'LiVESWidget'
  243 | boolean on_mouse_sel_start(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                            ^~~~~~~~~~~
callbacks.h:243:43: error: unknown type name 'LiVESXEventButton'
  243 | boolean on_mouse_sel_start(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                           ^~~~~~~~~~~~~~~~~
callbacks.h:243:64: error: unknown type name 'livespointer'
  243 | boolean on_mouse_sel_start(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                                                ^~~~~~~~~~~~
callbacks.h:245:31: error: unknown type name 'LiVESMenuItem'
  245 | void on_load_cdtrack_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:245:48: error: unknown type name 'livespointer'
  245 | void on_load_cdtrack_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:247:33: error: unknown type name 'LiVESButton'
  247 | void on_load_cdtrack_ok_clicked(LiVESButton *, livespointer);
      |                                 ^~~~~~~~~~~
callbacks.h:247:48: error: unknown type name 'livespointer'
  247 | void on_load_cdtrack_ok_clicked(LiVESButton *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:249:27: error: unknown type name 'LiVESMenuItem'
  249 | void on_eject_cd_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:249:44: error: unknown type name 'livespointer'
  249 | void on_eject_cd_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:251:24: error: unknown type name 'LiVESButton'
  251 | void on_slower_pressed(LiVESButton *, livespointer);
      |                        ^~~~~~~~~~~
callbacks.h:251:39: error: unknown type name 'livespointer'
  251 | void on_slower_pressed(LiVESButton *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:253:24: error: unknown type name 'LiVESButton'
  253 | void on_faster_pressed(LiVESButton *, livespointer);
      |                        ^~~~~~~~~~~
callbacks.h:253:39: error: unknown type name 'livespointer'
  253 | void on_faster_pressed(LiVESButton *, livespointer);
      |                                       ^~~~~~~~~~~~
callbacks.h:255:22: error: unknown type name 'LiVESButton'
  255 | void on_less_pressed(LiVESButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:255:37: error: unknown type name 'livespointer'
  255 | void on_less_pressed(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~~
callbacks.h:257:22: error: unknown type name 'LiVESButton'
  257 | void on_more_pressed(LiVESButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:257:37: error: unknown type name 'livespointer'
  257 | void on_more_pressed(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~~
callbacks.h:259:22: error: unknown type name 'LiVESButton'
  259 | void on_back_pressed(LiVESButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:259:37: error: unknown type name 'livespointer'
  259 | void on_back_pressed(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~~
callbacks.h:261:25: error: unknown type name 'LiVESButton'
  261 | void on_forward_pressed(LiVESButton *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:261:40: error: unknown type name 'livespointer'
  261 | void on_forward_pressed(LiVESButton *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:263:1: error: unknown type name 'boolean'
  263 | boolean clip_can_reverse(int clipno);
      | ^~~~~~~
callbacks.h:265:1: error: unknown type name 'boolean'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      | ^~~~~~~
callbacks.h:265:28: error: unknown type name 'LiVESAccelGroup'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:265:47: error: unknown type name 'LiVESWidgetObject'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      |                                               ^~~~~~~~~~~~~~~~~
callbacks.h:265:68: error: unknown type name 'uint32_t'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      |                                                                    ^~~~~~~~
callbacks.h:265:78: error: unknown type name 'LiVESXModifierType'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      |                                                                              ^~~~~~~~~~~~~~~~~~
callbacks.h:265:98: error: unknown type name 'livespointer'
  265 | boolean dirchange_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer area_enum);
      |                                                                                                  ^~~~~~~~~~~~
callbacks.h:267:1: error: unknown type name 'boolean'
  267 | boolean dirchange_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      | ^~~~~~~
callbacks.h:267:33: error: unknown type name 'LiVESAccelGroup'
  267 | boolean dirchange_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                 ^~~~~~~~~~~~~~~
callbacks.h:267:57: error: unknown type name 'LiVESWidgetObject'
  267 | boolean dirchange_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                         ^~~~~~~~~~~~~~~~~
callbacks.h:267:81: error: unknown type name 'uint32_t'
  267 | boolean dirchange_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                                                 ^~~~~~~~
callbacks.h:267:98: error: unknown type name 'LiVESXModifierType'
  267 | boolean dirchange_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                                                                  ^~~~~~~~~~~~~~~~~~
callbacks.h:268:33: error: unknown type name 'livespointer'
  268 |                                 livespointer area_enum);
      |                                 ^~~~~~~~~~~~
callbacks.h:272:26: error: unknown type name 'LiVESMenuItem'
  272 | void on_capture_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:272:43: error: unknown type name 'livespointer'
  272 | void on_capture_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:276:32: error: unknown type name 'LiVESMenuItem'
  276 | void on_select_invert_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:276:49: error: unknown type name 'livespointer'
  276 | void on_select_invert_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:278:27: error: unknown type name 'LiVESToggleButton'
  278 | void on_warn_mask_toggled(LiVESToggleButton *, livespointer);
      |                           ^~~~~~~~~~~~~~~~~
callbacks.h:278:48: error: unknown type name 'livespointer'
  278 | void on_warn_mask_toggled(LiVESToggleButton *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:280:1: error: unknown type name 'boolean'
  280 | boolean frame_context(LiVESWidget *, LiVESXEventButton *, livespointer which);
      | ^~~~~~~
callbacks.h:280:23: error: unknown type name 'LiVESWidget'
  280 | boolean frame_context(LiVESWidget *, LiVESXEventButton *, livespointer which);
      |                       ^~~~~~~~~~~
callbacks.h:280:38: error: unknown type name 'LiVESXEventButton'
  280 | boolean frame_context(LiVESWidget *, LiVESXEventButton *, livespointer which);
      |                                      ^~~~~~~~~~~~~~~~~
callbacks.h:280:59: error: unknown type name 'livespointer'
  280 | boolean frame_context(LiVESWidget *, LiVESXEventButton *, livespointer which);
      |                                                           ^~~~~~~~~~~~
callbacks.h:282:28: error: unknown type name 'LiVESWidget'
  282 | void on_fs_preview_clicked(LiVESWidget *, livespointer);
      |                            ^~~~~~~~~~~
callbacks.h:282:43: error: unknown type name 'livespointer'
  282 | void on_fs_preview_clicked(LiVESWidget *, livespointer);
      |                                 make[1]: Leaving directory '/builddir/build/BUILD/lives-3.2.0-pre/src'
          ^~~~~~~~~~~~
callbacks.h:284:26: error: unknown type name 'LiVESMenuItem'
  284 | void on_restore_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:284:43: error: unknown type name 'livespointer'
  284 | void on_restore_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:286:25: error: unknown type name 'LiVESMenuItem'
  286 | void on_backup_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:286:42: error: unknown type name 'livespointer'
  286 | void on_backup_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:288:30: error: unknown type name 'LiVESMenuItem'
  288 | void on_record_perf_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:288:47: error: unknown type name 'livespointer'
  288 | void on_record_perf_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:290:1: error: unknown type name 'boolean'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      | ^~~~~~~
callbacks.h:290:32: error: unknown type name 'LiVESAccelGroup'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                ^~~~~~~~~~~~~~~
callbacks.h:290:51: error: unknown type name 'LiVESWidgetObject'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                   ^~~~~~~~~~~~~~~~~
callbacks.h:290:72: error: unknown type name 'uint32_t'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                        ^~~~~~~~
callbacks.h:290:89: error: unknown type name 'LiVESXModifierType'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                         ^~~~~~~~~~~~~~~~~~
callbacks.h:290:113: error: unknown type name 'livespointer'
  290 | boolean record_toggle_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                                                 ^~~~~~~~~~~~
callbacks.h:292:1: error: unknown type name 'boolean'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      | ^~~~~~~
callbacks.h:292:28: error: unknown type name 'LiVESAccelGroup'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:292:47: error: unknown type name 'LiVESWidgetObject'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                               ^~~~~~~~~~~~~~~~~
callbacks.h:292:68: error: unknown type name 'uint32_t'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                    ^~~~~~~~
callbacks.h:292:85: error: unknown type name 'LiVESXModifierType'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                     ^~~~~~~~~~~~~~~~~~
callbacks.h:292:109: error: unknown type name 'livespointer'
  292 | boolean fps_reset_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                                             ^~~~~~~~~~~~
callbacks.h:294:1: error: unknown type name 'boolean'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      | ^~~~~~~
callbacks.h:294:29: error: unknown type name 'LiVESAccelGroup'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                             ^~~~~~~~~~~~~~~
callbacks.h:294:48: error: unknown type name 'LiVESWidgetObject'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                ^~~~~~~~~~~~~~~~~
callbacks.h:294:69: error: unknown type name 'uint32_t'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                     ^~~~~~~~
callbacks.h:294:86: error: unknown type name 'LiVESXModifierType'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                      ^~~~~~~~~~~~~~~~~~
callbacks.h:294:110: error: unknown type name 'livespointer'
  294 | boolean mute_audio_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t keyval, LiVESXModifierType mod, livespointer);
      |                                                                                                              ^~~~~~~~~~~~
callbacks.h:296:1: error: unknown type name 'boolean'
  296 | boolean on_stop_activate_by_del(LiVESWidget *, LiVESXEvent *, livespointer);
      | ^~~~~~~
callbacks.h:296:33: error: unknown type name 'LiVESWidget'
  296 | boolean on_stop_activate_by_del(LiVESWidget *, LiVESXEvent *, livespointer);
      |                                 ^~~~~~~~~~~
callbacks.h:296:48: error: unknown type name 'LiVESXEvent'
  296 | boolean on_stop_activate_by_del(LiVESWidget *, LiVESXEvent *, livespointer);
      |                                                ^~~~~~~~~~~
callbacks.h:296:63: error: unknown type name 'livespointer'
  296 | boolean on_stop_activate_by_del(LiVESWidget *, LiVESXEvent *, livespointer);
      |                                                               ^~~~~~~~~~~~
callbacks.h:300:36: error: unknown type name 'LiVESMenuItem'
  300 | void on_select_start_only_activate(LiVESMenuItem *, livespointer);
      |                                    ^~~~~~~~~~~~~
callbacks.h:300:53: error: unknown type name 'livespointer'
  300 | void on_select_start_only_activate(LiVESMenuItem *, livespointer);
      |                                                     ^~~~~~~~~~~~
callbacks.h:302:34: error: unknown type name 'LiVESMenuItem'
  302 | void on_select_end_only_activate(LiVESMenuItem *, livespointer);
      |                                  ^~~~~~~~~~~~~
callbacks.h:302:51: error: unknown type name 'livespointer'
  302 | void on_select_end_only_activate(LiVESMenuItem *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:304:30: error: unknown type name 'LiVESCombo'
  304 | void on_encoder_ofmt_changed(LiVESCombo *, livespointer);
      |                              ^~~~~~~~~~
callbacks.h:304:44: error: unknown type name 'livespointer'
  304 | void on_encoder_ofmt_changed(LiVESCombo *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:306:33: error: unknown type name 'LiVESButton'
  306 | void on_ok_export_audio_clicked(LiVESButton *, livespointer);
      |                                 ^~~~~~~~~~~
callbacks.h:306:48: error: unknown type name 'livespointer'
  306 | void on_ok_export_audio_clicked(LiVESButton *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:308:34: error: unknown type name 'LiVESMenuItem'
  308 | void on_normalise_audio_activate(LiVESMenuItem *, livespointer);
      |                                  ^~~~~~~~~~~~~
callbacks.h:308:51: error: unknown type name 'livespointer'
  308 | void on_normalise_audio_activate(LiVESMenuItem *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:310:31: error: unknown type name 'LiVESMenuItem'
  310 | void on_append_audio_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:310:48: error: unknown type name 'livespointer'
  310 | void on_append_audio_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:312:32: error: unknown type name 'LiVESToggleButton'
  312 | void on_rb_audrec_time_toggled(LiVESToggleButton *, livespointer);
      |                                ^~~~~~~~~~~~~~~~~
callbacks.h:312:53: error: unknown type name 'livespointer'
  312 | void on_rb_audrec_time_toggled(LiVESToggleButton *, livespointer);
      |                                                     ^~~~~~~~~~~~
callbacks.h:314:29: error: unknown type name 'LiVESMenuItem'
  314 | void on_recaudclip_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:314:46: error: unknown type name 'livespointer'
  314 | void on_recaudclip_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:316:28: error: unknown type name 'LiVESMenuItem'
  316 | void on_recaudsel_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:316:45: error: unknown type name 'livespointer'
  316 | void on_recaudsel_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:318:31: error: unknown type name 'LiVESButton'
  318 | void on_recaudclip_ok_clicked(LiVESButton *, livespointer);
      |                               ^~~~~~~~~~~
callbacks.h:318:46: error: unknown type name 'livespointer'
  318 | void on_recaudclip_ok_clicked(LiVESButton *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:320:22: error: missing binary operator before token "("
  320 | #if GTK_CHECK_VERSION(2, 14, 0)
      |                      ^
callbacks.h:323:37: error: unknown type name 'LiVESRange'
  323 | void on_volume_slider_value_changed(LiVESRange *, livespointer);
      |                                     ^~~~~~~~~~
callbacks.h:323:51: error: unknown type name 'livespointer'
  323 | void on_volume_slider_value_changed(LiVESRange *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:326:25: error: unknown type name 'LiVESMenuItem'
  326 | void on_voladj_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:326:42: error: unknown type name 'livespointer'
  326 | void on_voladj_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:328:29: error: unknown type name 'LiVESMenuItem'
  328 | void on_fade_audio_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:328:46: error: unknown type name 'livespointer'
  328 | void on_fade_audio_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:330:33: error: unknown type name 'LiVESMenuItem'
  330 | void on_resample_video_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:330:50: error: unknown type name 'livespointer'
  330 | void on_resample_video_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:332:25: error: unknown type name 'LiVESButton'
  332 | void on_resample_vid_ok(LiVESButton *, LiVESEntry *entry);
      |                         ^~~~~~~~~~~
callbacks.h:332:40: error: unknown type name 'LiVESEntry'
  332 | void on_resample_vid_ok(LiVESButton *, LiVESEntry *entry);
      |                                        ^~~~~~~~~~
callbacks.h:334:1: error: unknown type name 'boolean'
  334 | boolean on_trim_audio_activate(LiVESMenuItem *, livespointer);
      | ^~~~~~~
callbacks.h:334:32: error: unknown type name 'LiVESMenuItem'
  334 | boolean on_trim_audio_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:334:49: error: unknown type name 'livespointer'
  334 | boolean on_trim_audio_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:336:33: error: unknown type name 'LiVESMenuItem'
  336 | void on_resample_audio_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:336:50: error: unknown type name 'livespointer'
  336 | void on_resample_audio_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:338:31: error: unknown type name 'LiVESMenuItem'
  338 | void on_export_audio_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:338:48: error: unknown type name 'livespointer'
  338 | void on_export_audio_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:340:29: error: unknown type name 'LiVESButton'
  340 | void on_resaudio_ok_clicked(LiVESButton *, LiVESEntry *entry);
      |                             ^~~~~~~~~~~
callbacks.h:340:44: error: unknown type name 'LiVESEntry'
  340 | void on_resaudio_ok_clicked(LiVESButton *, LiVESEntry *entry);
      |                                            ^~~~~~~~~~
callbacks.h:342:32: error: unknown type name 'LiVESButton'
  342 | void on_cancel_opensel_clicked(LiVESButton *, livespointer);
      |                                ^~~~~~~~~~~
callbacks.h:342:47: error: unknown type name 'livespointer'
  342 | void on_cancel_opensel_clicked(LiVESButton *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:346:25: error: unknown type name 'LiVESMenuItem'
  346 | void on_sticky_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:346:42: error: unknown type name 'livespointer'
  346 | void on_sticky_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:348:32: error: unknown type name 'LiVESWidget'
  348 | void on_resaudw_asamps_changed(LiVESWidget *, livespointer);
      |                                ^~~~~~~~~~~
callbacks.h:348:47: error: unknown type name 'livespointer'
  348 | void on_resaudw_asamps_changed(LiVESWidget *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:350:30: error: unknown type name 'LiVESToggleButton'
  350 | void on_insertwsound_toggled(LiVESToggleButton *, livespointer);
      |                              ^~~~~~~~~~~~~~~~~
callbacks.h:350:51: error: unknown type name 'livespointer'
  350 | void on_insertwsound_toggled(LiVESToggleButton *, livespointer);
      |                                                   ^~~~~~~~~~~~
callbacks.h:352:26: error: unknown type name 'LiVESMenuItem'
  352 | void on_showfct_activate(LiVESMenuItem *, livespointer);
      |                          ^~~~~~~~~~~~~
callbacks.h:352:43: error: unknown type name 'livespointer'
  352 | void on_showfct_activate(LiVESMenuItem *, livespointer);
      |                                           ^~~~~~~~~~~~
callbacks.h:354:25: error: unknown type name 'LiVESWidgetObject'
  354 | void on_boolean_toggled(LiVESWidgetObject *, livespointer);
      |                         ^~~~~~~~~~~~~~~~~
callbacks.h:354:46: error: unknown type name 'livespointer'
  354 | void on_boolean_toggled(LiVESWidgetObject *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:356:23: error: unknown type name 'LiVESWidget'
  356 | void on_audio_toggled(LiVESWidget *, LiVESWidget *label);
      |                       ^~~~~~~~~~~
callbacks.h:356:38: error: unknown type name 'LiVESWidget'
  356 | void on_audio_toggled(LiVESWidget *, LiVESWidget *label);
      |                                      ^~~~~~~~~~~
callbacks.h:358:26: error: unknown type name 'LiVESWidgetObject'
  358 | void on_showsubs_toggled(LiVESWidgetObject *, livespointer);
      |                          ^~~~~~~~~~~~~~~~~
callbacks.h:358:47: error: unknown type name 'livespointer'
  358 | void on_showsubs_toggled(LiVESWidgetObject *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:360:32: error: unknown type name 'LiVESMenuItem'
  360 | void on_show_messages_activate(LiVESMenuItem *, livespointer);
      |                                ^~~~~~~~~~~~~
callbacks.h:360:49: error: unknown type name 'livespointer'
  360 | void on_show_messages_activate(LiVESMenuItem *, livespointer);
      |                                                 ^~~~~~~~~~~~
callbacks.h:365:1: error: unknown type name 'boolean'
  365 | boolean on_hrule_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      | ^~~~~~~
callbacks.h:365:25: error: unknown type name 'LiVESWidget'
  365 | boolean on_hrule_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                         ^~~~~~~~~~~
callbacks.h:365:40: error: unknown type name 'LiVESXEventMotion'
  365 | boolean on_hrule_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                                        ^~~~~~~~~~~~~~~~~
callbacks.h:365:61: error: unknown type name 'livespointer'
  365 | boolean on_hrule_update(LiVESWidget *, LiVESXEventMotion *, livespointer);
      |                                                             ^~~~~~~~~~~~
callbacks.h:366:1: error: unknown type name 'boolean'
  366 | boolean on_hrule_set(LiVESWidget *, LiVESXEventButton *, livespointer);
      | ^~~~~~~
callbacks.h:366:22: error: unknown type name 'LiVESWidget'
  366 | boolean on_hrule_set(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:366:37: error: unknown type name 'LiVESXEventButton'
  366 | boolean on_hrule_set(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                     ^~~~~~~~~~~~~~~~~
callbacks.h:366:58: error: unknown type name 'livespointer'
  366 | boolean on_hrule_set(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                                          ^~~~~~~~~~~~
callbacks.h:367:1: error: unknown type name 'boolean'
  367 | boolean on_hrule_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      | ^~~~~~~
callbacks.h:367:24: error: unknown type name 'LiVESWidget'
  367 | boolean on_hrule_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                        ^~~~~~~~~~~
callbacks.h:367:39: error: unknown type name 'LiVESXEventButton'
  367 | boolean on_hrule_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                       ^~~~~~~~~~~~~~~~~
callbacks.h:367:60: error: unknown type name 'livespointer'
  367 | boolean on_hrule_reset(LiVESWidget *, LiVESXEventButton *, livespointer);
      |                                                            ^~~~~~~~~~~~
callbacks.h:370:25: error: unknown type name 'LiVESMenuItem'
  370 | void on_rewind_activate(LiVESMenuItem *, livespointer);
      |                         ^~~~~~~~~~~~~
callbacks.h:370:42: error: unknown type name 'livespointer'
  370 | void on_rewind_activate(LiVESMenuItem *, livespointer);
      |                                          ^~~~~~~~~~~~
callbacks.h:372:30: error: unknown type name 'LiVESMenuItem'
  372 | void on_loop_button_activate(LiVESMenuItem *, livespointer);
      |                              ^~~~~~~~~~~~~
callbacks.h:372:47: error: unknown type name 'livespointer'
  372 | void on_loop_button_activate(LiVESMenuItem *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:374:28: error: unknown type name 'LiVESMenuItem'
  374 | void on_loop_cont_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:374:45: error: unknown type name 'livespointer'
  374 | void on_loop_cont_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:376:37: error: unknown type name 'LiVESMenuItem'
  376 | void on_show_file_comments_activate(LiVESMenuItem *, livespointer);
      |                                     ^~~~~~~~~~~~~
callbacks.h:376:54: error: unknown type name 'livespointer'
  376 | void on_show_file_comments_activate(LiVESMenuItem *, livespointer);
      |                                                      ^~~~~~~~~~~~
callbacks.h:378:22: error: unknown type name 'LiVESButton'
  378 | void on_toolbar_hide(LiVESButton *, livespointer);
      |                      ^~~~~~~~~~~
callbacks.h:378:37: error: unknown type name 'livespointer'
  378 | void on_toolbar_hide(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~~
callbacks.h:380:22: error: unknown type name 'LiVESMenuItem'
  380 | void on_toy_activate(LiVESMenuItem *, livespointer old_toy_p);
      |                      ^~~~~~~~~~~~~
callbacks.h:380:39: error: unknown type name 'livespointer'
  380 | void on_toy_activate(LiVESMenuItem *, livespointer old_toy_p);
      |                                       ^~~~~~~~~~~~
callbacks.h:382:23: error: unknown type name 'LiVESMenuItem'
  382 | void autolives_toggle(LiVESMenuItem *, livespointer);
      |                       ^~~~~~~~~~~~~
callbacks.h:382:40: error: unknown type name 'livespointer'
  382 | void autolives_toggle(LiVESMenuItem *, livespointer);
      |                                        ^~~~~~~~~~~~
callbacks.h:384:36: error: unknown type name 'LiVESSpinButton'
  384 | void on_preview_spinbutton_changed(LiVESSpinButton *, livespointer);
      |                                    ^~~~~~~~~~~~~~~
callbacks.h:384:55: error: unknown type name 'livespointer'
  384 | void on_preview_spinbutton_changed(LiVESSpinButton *, livespointer);
      |                                                       ^~~~~~~~~~~~
callbacks.h:386:1: error: unknown type name 'boolean'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      | ^~~~~~~
callbacks.h:386:27: error: unknown type name 'LiVESAccelGroup'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                           ^~~~~~~~~~~~~~~
callbacks.h:386:46: error: unknown type name 'LiVESWidgetObject'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                              ^~~~~~~~~~~~~~~~~
callbacks.h:386:67: error: unknown type name 'uint32_t'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                   ^~~~~~~~
callbacks.h:386:77: error: unknown type name 'LiVESXModifierType'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                             ^~~~~~~~~~~~~~~~~~
callbacks.h:386:97: error: unknown type name 'livespointer'
  386 | boolean prevclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                                                 ^~~~~~~~~~~~
callbacks.h:388:1: error: unknown type name 'boolean'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      | ^~~~~~~
callbacks.h:388:27: error: unknown type name 'LiVESAccelGroup'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                           ^~~~~~~~~~~~~~~
callbacks.h:388:46: error: unknown type name 'LiVESWidgetObject'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                              ^~~~~~~~~~~~~~~~~
callbacks.h:388:67: error: unknown type name 'uint32_t'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                   ^~~~~~~~
callbacks.h:388:77: error: unknown type name 'LiVESXModifierType'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                             ^~~~~~~~~~~~~~~~~~
callbacks.h:388:97: error: unknown type name 'livespointer'
  388 | boolean nextclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                                                 ^~~~~~~~~~~~
callbacks.h:390:1: error: unknown type name 'boolean'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      | ^~~~~~~
callbacks.h:390:25: error: unknown type name 'LiVESAccelGroup'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                         ^~~~~~~~~~~~~~~
callbacks.h:390:44: error: unknown type name 'LiVESWidgetObject'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                            ^~~~~~~~~~~~~~~~~
callbacks.h:390:65: error: unknown type name 'uint32_t'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                 ^~~~~~~~
callbacks.h:390:75: error: unknown type name 'LiVESXModifierType'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                           ^~~~~~~~~~~~~~~~~~
callbacks.h:390:95: error: unknown type name 'livespointer'
  390 | boolean freeze_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                                               ^~~~~~~~~~~~
callbacks.h:392:1: error: unknown type name 'boolean'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      | ^~~~~~~
callbacks.h:392:28: error: unknown type name 'LiVESAccelGroup'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:392:47: error: unknown type name 'LiVESWidgetObject'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                               ^~~~~~~~~~~~~~~~~
callbacks.h:392:68: error: unknown type name 'uint32_t'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                    ^~~~~~~~
callbacks.h:392:78: error: unknown type name 'LiVESXModifierType'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                              ^~~~~~~~~~~~~~~~~~
callbacks.h:392:98: error: unknown type name 'livespointer'
  392 | boolean storeclip_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                                                  ^~~~~~~~~~~~
callbacks.h:394:1: error: unknown type name 'boolean'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      | ^~~~~~~
callbacks.h:394:26: error: unknown type name 'LiVESAccelGroup'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                          ^~~~~~~~~~~~~~~
callbacks.h:394:45: error: unknown type name 'LiVESWidgetObject'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                             ^~~~~~~~~~~~~~~~~
callbacks.h:394:66: error: unknown type name 'uint32_t'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                  ^~~~~~~~
callbacks.h:394:76: error: unknown type name 'LiVESXModifierType'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                            ^~~~~~~~~~~~~~~~~~
callbacks.h:394:96: error: unknown type name 'livespointer'
  394 | boolean nervous_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer);
      |                                                                                                ^~~~~~~~~~~~
callbacks.h:396:1: error: unknown type name 'boolean'
  396 | boolean aud_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      | ^~~~~~~
callbacks.h:396:27: error: unknown type name 'LiVESAccelGroup'
  396 | boolean aud_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                           ^~~~~~~~~~~~~~~
callbacks.h:396:51: error: unknown type name 'LiVESWidgetObject'
  396 | boolean aud_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                   ^~~~~~~~~~~~~~~~~
callbacks.h:396:75: error: unknown type name 'uint32_t'
  396 | boolean aud_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                                           ^~~~~~~~
callbacks.h:396:92: error: unknown type name 'LiVESXModifierType'
  396 | boolean aud_lock_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
      |                                                                                            ^~~~~~~~~~~~~~~~~~
callbacks.h:397:27: error: unknown type name 'livespointer'
  397 |                           livespointer statep);
      |                           ^~~~~~~~~~~~
callbacks.h:401:1: error: unknown type name 'boolean'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      | ^~~~~~~
callbacks.h:401:28: error: unknown type name 'LiVESAccelGroup'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      |                            ^~~~~~~~~~~~~~~
callbacks.h:401:47: error: unknown type name 'LiVESWidgetObject'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      |                                               ^~~~~~~~~~~~~~~~~
callbacks.h:401:68: error: unknown type name 'uint32_t'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      |                                                                    ^~~~~~~~
callbacks.h:401:78: error: unknown type name 'LiVESXModifierType'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      |                                                                              ^~~~~~~~~~~~~~~~~~
callbacks.h:401:98: error: unknown type name 'livespointer'
  401 | boolean show_sync_callback(LiVESAccelGroup *, LiVESWidgetObject *, uint32_t, LiVESXModifierType, livespointer clip_number);
      |                                                                                                  ^~~~~~~~~~~~
callbacks.h:403:1: error: unknown type name 'boolean'
  403 | boolean on_save_set_activate(LiVESWidget *, livespointer);
      | ^~~~~~~
callbacks.h:403:30: error: unknown type name 'LiVESWidget'
  403 | boolean on_save_set_activate(LiVESWidget *, livespointer);
      |                              ^~~~~~~~~~~
callbacks.h:403:45: error: unknown type name 'livespointer'
  403 | boolean on_save_set_activate(LiVESWidget *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:407:28: error: unknown type name 'LiVESMenuItem'
  407 | char *on_load_set_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:407:45: error: unknown type name 'livespointer'
  407 | char *on_load_set_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:409:1: error: unknown type name 'boolean'
  409 | boolean reload_set(const char *set_name);
      | ^~~~~~~
callbacks.h:411:27: error: unknown type name 'LiVESMenuItem'
  411 | void on_open_vcd_activate(LiVESMenuItem *, livespointer int_type);
      |                           ^~~~~~~~~~~~~
callbacks.h:411:44: error: unknown type name 'livespointer'
  411 | void on_open_vcd_activate(LiVESMenuItem *, livespointer int_type);
      |                                            ^~~~~~~~~~~~
callbacks.h:413:29: error: unknown type name 'LiVESButton'
  413 | void on_load_vcd_ok_clicked(LiVESButton *, livespointer);
      |                             ^~~~~~~~~~~
callbacks.h:413:44: error: unknown type name 'livespointer'
  413 | void on_load_vcd_ok_clicked(LiVESButton *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:415:28: error: unknown type name 'LiVESMenuItem'
  415 | void on_ping_pong_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:415:45: error: unknown type name 'livespointer'
  415 | void on_ping_pong_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:417:28: error: unknown type name 'LiVESMenuItem'
  417 | void on_show_keys_activate(LiVESMenuItem *, livespointer);
      |                            ^~~~~~~~~~~~~
callbacks.h:417:45: error: unknown type name 'livespointer'
  417 | void on_show_keys_activate(LiVESMenuItem *, livespointer);
      |                                             ^~~~~~~~~~~~
callbacks.h:419:27: error: unknown type name 'LiVESMenuItem'
  419 | void on_vj_reset_activate(LiVESMenuItem *, livespointer);
      |                           ^~~~~~~~~~~~~
callbacks.h:419:44: error: unknown type name 'livespointer'
  419 | void on_vj_reset_activate(LiVESMenuItem *, livespointer);
      |                                            ^~~~~~~~~~~~
callbacks.h:421:29: error: unknown type name 'LiVESMenuItem'
  421 | void on_vj_realize_activate(LiVESMenuItem *, livespointer);
      |                             ^~~~~~~~~~~~~
callbacks.h:421:46: error: unknown type name 'livespointer'
  421 | void on_vj_realize_activate(LiVESMenuItem *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:423:26: error: unknown type name 'LiVESToggleButton'
  423 | void on_prv_link_toggled(LiVESToggleButton *, livespointer);
      |                          ^~~~~~~~~~~~~~~~~
callbacks.h:423:47: error: unknown type name 'livespointer'
  423 | void on_prv_link_toggled(LiVESToggleButton *, livespointer);
      |                                               ^~~~~~~~~~~~
callbacks.h:425:1: error: unknown type name 'boolean'
  425 | boolean on_del_audio_activate(LiVESMenuItem *, livespointer);
      | ^~~~~~~
callbacks.h:425:31: error: unknown type name 'LiVESMenuItem'
  425 | boolean on_del_audio_activate(LiVESMenuItem *, livespointer);
      |                               ^~~~~~~~~~~~~
callbacks.h:425:48: error: unknown type name 'livespointer'
  425 | boolean on_del_audio_activate(LiVESMenuItem *, livespointer);
      |                                                ^~~~~~~~~~~~
callbacks.h:427:1: error: unknown type name 'boolean'
  427 | boolean on_ins_silence_activate(LiVESMenuItem *, livespointer);
      | ^~~~~~~
callbacks.h:427:33: error: unknown type name 'LiVESMenuItem'
  427 | boolean on_ins_silence_activate(LiVESMenuItem *, livespointer);
      |                                 ^~~~~~~~~~~~~
callbacks.h:427:50: error: unknown type name 'livespointer'
  427 | boolean on_ins_silence_activate(LiVESMenuItem *, livespointer);
      |                                                  ^~~~~~~~~~~~
callbacks.h:429:37: error: unknown type name 'LiVESButton'
  429 | void on_ins_silence_details_clicked(LiVESButton *, livespointer);
      |                                     ^~~~~~~~~~~
callbacks.h:429:52: error: unknown type name 'livespointer'
  429 | void on_ins_silence_details_clicked(LiVESButton *, livespointer);
      |                                                    ^~~~~~~~~~~~
callbacks.h:431:31: error: unknown type name 'LiVESButton'
  431 | void on_lerrors_close_clicked(LiVESButton *, livespointer);
      |                               ^~~~~~~~~~~
callbacks.h:431:46: error: unknown type name 'livespointer'
  431 | void on_lerrors_close_clicked(LiVESButton *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:433:31: error: unknown type name 'LiVESButton'
  433 | void on_lerrors_clear_clicked(LiVESButton *, livespointer);
      |                               ^~~~~~~~~~~
callbacks.h:433:46: error: unknown type name 'livespointer'
  433 | void on_lerrors_clear_clicked(LiVESButton *, livespointer);
      |                                              ^~~~~~~~~~~~
callbacks.h:435:32: error: unknown type name 'LiVESButton'
  435 | void on_lerrors_delete_clicked(LiVESButton *, livespointer);
      |                                ^~~~~~~~~~~
callbacks.h:435:47: error: unknown type name 'livespointer'
  435 | void on_lerrors_delete_clicked(LiVESButton *, livespointer);
      |                                               ^~~~~~~~~~~~
diagnostics.c:16:20: error: expected ';' before 'double'
   16 | LIVES_GLOBAL_INLINE double get_inst_fps(void) {
      |                    ^~~~~~~
      |                    ;
diagnostics.c: In function 'get_inst_fps':
diagnostics.c:17:8: error: 'mainw' undeclared (first use in this function)
   17 |   if (!mainw->lockstats) get_stats_msg(TRUE);
      |        ^~~~~
diagnostics.c:17:8: note: each undeclared identifier is reported only once for each function it appears in
diagnostics.c:17:26: warning: implicit declaration of function 'get_stats_msg' [-Wimplicit-function-declaration]
   17 |   if (!mainw->lockstats) get_stats_msg(TRUE);
      |                          ^~~~~~~~~~~~~
diagnostics.c:17:40: error: 'TRUE' undeclared (first use in this function)
   17 |   if (!mainw->lockstats) get_stats_msg(TRUE);
      |                                        ^~~~
diagnostics.c: At top level:
diagnostics.c:22:21: error: unknown type name 'boolean'
   22 | char *get_stats_msg(boolean calc_only) {
      |                     ^~~~~~~
diagnostics.c: In function 'test_palette_conversions':
diagnostics.c:1077:14: warning: implicit declaration of function 'round_special' [-Wimplicit-function-declaration]
 1077 |     outval = round_special(inval);
      |              ^~~~~~~~~~~~~
diagnostics.c:1078:9: warning: implicit declaration of function 'fabs' [-Wimplicit-function-declaration]
 1078 |     if (fabs((float)outval - val) > .51)
      |         ^~~~
diagnostics.c:1078:9: warning: incompatible implicit declaration of built-in function 'fabs'
diagnostics.c:12:1: note: include '<math.h>' or provide a declaration of 'fabs'
   11 | #include "callbacks.h"
  +++ |+#include <math.h>
   12 | 
diagnostics.c:1079:7: warning: implicit declaration of function 'g_print' [-Wimplicit-function-declaration]
 1079 |       g_print("in val was %.6f, stored as %d, returned as %d\n", val, inval, outval);
      |       ^~~~~~~
make[1]: *** [Makefile:1186: diagnostics.o] Error 1

System: Fedora 34 (devel branch)
GCC-10.2.1
Full build log: http://koji.rpmfusion.org/kojifiles/work/tasks/5364/445364/build.log

Opening audio never ends

Success, #44 is now solved, source downloaded on January 3, cross-compiled, and now starts:

lives-20220103-startup-checks

However, I tried opening a very small video, and the "Opening audio" window never ends:

lives-20220103-open-audio

I tested executing directly:

# LANGUAGE=en LANG=en /usr/bin/mpv --no-config --quiet --no-video --vd-lavc-threads=4 --frames=3 --ao=pcm --ao-pcm-waveheader=no --audio-format=s16 --audio-channels=2 "/mnt/sda1/warehouse/misc/media-test/media-test-video/barsandtone.flv"
Compiled without libass.
There will be no OSD and no text subtitles.
     Video --vid=1 (vp6f 360x288 10.000fps)
 (+) Audio --aid=1 (mp3 2ch 44100Hz)
[ao/pcm] File: audiodump.pcm (RAW PCM)
[ao/pcm] PCM: Samplerate: 44100 Hz Channels: 2 Format: s16
AO: [pcm] 44100Hz stereo 2ch s16


Exiting... (End of file)
mpv: ../mpv-0.32.0/ta/ta.c:335: ta_dbg_check_header: Assertion `h->canary == CANARY' failed.
Aborted
# 

mpv does play the video ok, like this:

# mpv barsandtone.flv 
Compiled without libass.
There will be no OSD and no text subtitles.
 (+) Video --vid=1 (vp6f 360x288 10.000fps)
 (+) Audio --aid=1 (mp3 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
VO: [gpu] 360x288 yuv420p
AV: 00:00:00 / 00:00:06 (0%) A-V:  0.000

Exiting... (End of file)
# 

The video file is only 88KB, will attach it, not sure if can attach a .flv file, so appending a false ".gz" onto the filename:

barsandtone.flv.gz

Compatibility with FFMpeg-5.0

Hi.

LiVES is not compiling against new FFMpeg-5.0 Are you interested to support it?

/bin/sh ../../../../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.0\" -DPACKAGE_STRING=\"LiVES\ 3.2.0\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.0\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I.   -I/usr/include/tirpc  -I/usr/include/opencv4  -DHAVE_LIBAV_LIBS=1 -Wno-unused-function -DHAVE_AVCODEC_OPEN2=1 -DHAVE_AVCODEC_ALLOC_CONTEXT3=1 -DHAVE_AVCODEC_GET_NAME=1  -DHAVE_AVFORMAT_NEW_STREAM=1 -DHAVE_AVPACKET_UNREF=1 -DHAVE_AVFRAME_UNREF=1 -DHAVE_AVFORMAT_FIND_STREAM_INFO=1 -DHAVE_AVFORMAT_CLOSE_INPUT=1   -DHAVE_AVPRIV_SET_PTS_INFO=1 -fPIC -DPIC -Wno-unused-variable  -DNEED_LOCAL_WEED -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -Wno-deprecated-declarations -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c -o libav_stream_la-libav_stream.lo `test -f 'libav_stream.c' || echo './'`libav_stream.c
libtool: compile:  gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.0\" "-DPACKAGE_STRING=\"LiVES 3.2.0\"" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.0\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I. -I/usr/include/tirpc -I/usr/include/opencv4 -DHAVE_LIBAV_LIBS=1 -Wno-unused-function -DHAVE_AVCODEC_OPEN2=1 -DHAVE_AVCODEC_ALLOC_CONTEXT3=1 -DHAVE_AVCODEC_GET_NAME=1 -DHAVE_AVFORMAT_NEW_STREAM=1 -DHAVE_AVPACKET_UNREF=1 -DHAVE_AVFRAME_UNREF=1 -DHAVE_AVFORMAT_FIND_STREAM_INFO=1 -DHAVE_AVFORMAT_CLOSE_INPUT=1 -DHAVE_AVPRIV_SET_PTS_INFO=1 -fPIC -DPIC -Wno-unused-variable -DNEED_LOCAL_WEED -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -Wno-deprecated-declarations -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c libav_stream.c  -fPIC -DPIC -o .libs/libav_stream_la-libav_stream.o
make[4]: Leaving directory '/builddir/build/BUILD/lives-3.2.0/lives-plugins/plugins/playback/video'
libav_stream.c: In function 'module_check_init':
libav_stream.c:114:3: warning: implicit declaration of function 'av_register_all' [-Wimplicit-function-declaration]
  114 |   av_register_all();
      |   ^~~~~~~~~~~~~~~
libav_stream.c: In function 'add_stream':
libav_stream.c:441:10: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  441 |   *codec = avcodec_find_encoder(codec_id);
      |          ^
libav_stream.c:465:10: error: 'AVStream' has no member named 'codec'
  465 |   ost->st->codec = ost->enc = c;
      |          ^~
libav_stream.c: In function 'init_screen':
libav_stream.c:588:30: error: 'AVStream' has no member named 'codec'
  588 |   ostv.enc = encctx = vStream->codec;
      |                              ^~
libav_stream.c:610:10: error: 'AVStream' has no member named 'codec'
  610 |   vStream->codec->time_base = vStream->time_base;
      |          ^~
libav_stream.c:612:10: error: 'AVStream' has no member named 'codec'
  612 |   vStream->codec->width = width;
      |          ^~
libav_stream.c:613:10: error: 'AVStream' has no member named 'codec'
  613 |   vStream->codec->height = height;
      |          ^~
libav_stream.c:614:10: error: 'AVStream' has no member named 'codec'
  614 |   vStream->codec->pix_fmt = avpalette;
      |          ^~
libav_stream.c:619:10: error: 'AVStream' has no member named 'codec'
  619 |   vStream->codec->bit_rate = maxvbitrate;
      |          ^~
libav_stream.c:631:14: error: 'AVStream' has no member named 'codec'
  631 |       vStream->codec->qmin = 10;
      |              ^~
libav_stream.c:632:14: error: 'AVStream' has no member named 'codec'
  632 |       vStream->codec->qmax = 51;
      |              ^~
libav_stream.c:652:12: error: 'AVStream' has no member named 'codec'
  652 |     vStream->codec->max_b_frames = 2;
      |            ^~
libav_stream.c:658:12: error: 'AVStream' has no member named 'codec'
  658 |     vStream->codec->mb_decision = 2;
      |            ^~
libav_stream.c:681:33: error: 'AVStream' has no member named 'codec'
  681 |     osta.enc = aencctx = aStream->codec;
      |                                 ^~
libav_stream.c: In function 'render_audio_frame_float':
libav_stream.c:875:11: warning: implicit declaration of function 'avcodec_encode_audio2'; did you mean 'avcodec_encode_subtitle'? [-Wimplicit-function-declaration]
  875 |     ret = avcodec_encode_audio2(c, &pkt, NULL, &got_packet);
      |           ^~~~~~~~~~~~~~~~~~~~~
      |           avcodec_encode_subtitle
libav_stream.c: In function 'render_frame_yuv420':
libav_stream.c:988:11: warning: implicit declaration of function 'avcodec_encode_video2'; did you mean 'avcodec_encode_subtitle'? [-Wimplicit-function-declaration]
  988 |     ret = avcodec_encode_video2(c, &pkt, ostv.frame, &got_packet);
      |           ^~~~~~~~~~~~~~~~~~~~~
      |           avcodec_encode_subtitle
libav_stream.c: In function 'exit_screen':
libav_stream.c:1090:26: error: 'AVStream' has no member named 'codec'
 1090 |     avcodec_close(vStream->codec);
      |                          ^~
libav_stream.c:1095:26: error: 'AVStream' has no member named 'codec'
 1095 |     avcodec_close(aStream->codec);
      |                          ^~
make[4]: *** [Makefile:832: libav_stream_la-libav_stream.lo] Error 1

smogrify fails due to perl not have threads support

In EasyOS, perl is compiled without threads support. This causes smogrify to fail.

According to this link, most distributions ship with perl not compiled with threading support:

https://newbedev.com/why-is-perl-usually-installed-without-thread-support

I ran "perl -V" to confirm that indeed, no ithread support. A bit of research, need "-Dusethreads" when compile perl. But, the above link recommends not to, and it has never been a problem before.

Is it possible to run smogrify without perl threads? Or, do I have to recompile perl?

build fails with undefined reference to `weed_layer_get_type'

Building LiVES-3.2.0 using gcc-10.2 on an RPi4 fails with:

./autogen.sh

CC="gcc -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --localstatedir=/var 
$ make
...
libtool: link: gcc -march=armv8-a+crc -mtune=cortex-a72 -Os -pipe -fcommon -fPIE -Wstrict-aliasing=0 -Wall -pthread -I/usr/local/include/gtk-3.0 -I/usr/local/include/gio-unix-2.0 -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include -I/usr/local/include/pango-1.0 -I/usr/local/include/harfbuzz -I/usr/local/include/pango-1.0 -I/usr/local/include/fribidi -I/usr/local/include -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/harfbuzz -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include -I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/include/uuid -I/usr/local/include -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_LINUX_GNU=1 -DENABLE_OSC=1 -I/usr/local/include -DALSA_MIDI=1 -I/usr/local/include/libpng16 -DUSE_LIBPNG=1 -I/usr/local/include -I/usr/local/include -DUSE_SWSCALE=1 -D_REENTRANT -I/usr/local/include -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1 -DENABLE_GIW=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\"/usr/local/lib\" -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -Wall -pthread -o .libs/lives-exe rpmalloc.o widget-helper.o main.o support.o effects.o lsd-tab.o plugins.o effects-weed.o effects-data.o framedraw.o interface.o paramspecial.o paramwindow.o rfx-builder.o preferences.o rte_window.o gui.o ce_thumbs.o htmsocket.o merge.o dialogs.o saveplay.o audio.o events.o resample.o osc.o omc-learn.o callbacks.o colourspace.o keyboard.o utils.o multitrack.o stream.o cvirtual.o startup.o pangotext.o machinestate.o weed-effects-utils.o diagnostics.o transcode.o pulse.o giw/giwknob.o giw/giwvslider.o giw/giwled.o giw/giwtimeline.o  -L/usr/local/lib -lgtk-3 -latk-1.0 -lgio-2.0 -lX11 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgobject-2.0 ../libOSC/.libs/libOSC.a ../libOSC/client/.libs/libOSC_client.a -lasound -lpulse -lpng16 -lz -lswscale -lavutil /usr/src/LiVES-3.2.0/libweed/.libs/libweed_gslice.so -lglib-2.0 /usr/src/LiVES-3.2.0/libweed/.libs/libweed-utils.so -lm -ldl -pthread
/usr/local/bin/ld: colourspace.o: in function `weed_layer_is_video':
colourspace.c:(.text+0x12e64): undefined reference to `weed_layer_get_type'
/usr/local/bin/ld: colourspace.o: in function `weed_layer_is_audio':
colourspace.c:(.text+0x12eb0): undefined reference to `weed_layer_get_type'
/usr/local/bin/ld: colourspace.o: in function `weed_layer_pixel_data_free':
colourspace.c:(.text+0x1433c): undefined reference to `weed_layer_count_refs'
/usr/local/bin/ld: effects-weed.o: in function `wge_inner':
effects-weed.c:(.text+0x5db0): undefined reference to `get_next_compound_inst'
/usr/local/bin/ld: effects-weed.o: in function `add_param_connections':
effects-weed.c:(.text+0x7494): undefined reference to `get_next_compound_inst'
/usr/local/bin/ld: effects-weed.o: in function `weed_instance_from_filter':
effects-weed.c:(.text+0x7bdc): undefined reference to `get_next_compound_inst'
/usr/local/bin/ld: effects-weed.o: in function `num_in_params':
effects-weed.c:(.text+0x7ef0): undefined reference to `get_next_compound_inst'
/usr/local/bin/ld: effects-weed.o: in function `weed_reinit_effect':
effects-weed.c:(.text+0x9a28): undefined reference to `get_next_compound_inst'
/usr/local/bin/ld: effects-weed.o:effects-weed.c:(.text+0xc420): more undefined references to `get_next_compound_inst' follow
/usr/local/bin/ld: utils.o: in function `lives_alarm_set':
utils.c:(.text+0x2c14): undefined reference to `lives_alarm_reset'
/usr/local/bin/ld: utils.o: in function `d_print_overlay':
utils.c:(.text+0x4290): undefined reference to `lives_alarm_reset'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:1058: lives-exe] Error 1
make[1]: Leaving directory '/usr/src/LiVES-3.2.0/src'
make: *** [Makefile:652: all-recursive] Error 1
Command exited with non-zero status 2

Attempting to cross-compile in OpenEmbedded

I maintain EasyOS, a distro that is built from packages almost totally cross-compiled in OpenEmbedded. This includes big packages, such as LibreOffice and Gnumeric, over 860 packages so far. For anyone interested:

https://bkhome.org/news/202112/how-to-cross-compile-850-packages-using-yoctoopenembedded.html

I would like to add LiVES, but have immediately hit two problems, in configure.ac...

Firstly, AC_CHECK_FILE does not work in a cross-compile environment. I did a search, and there are other means of testing file existence that do work. I created a patch that simply removes that test.

Secondly:

automake (GNU automake) 1.16.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <[email protected]>
       and Alexandre Duret-Lutz <[email protected]>.
AUTOV is 1.16
autoreconf: Entering directory  '.'
autoreconf: running: aclocal --system-acdir=/mnt/sda1/nvme/oe-builds/oe-quirky/build-amd64/tmp/work/nocona-64-poky-linux/lives/20211222-r6/recipe-sysroot/usr/share/aclocal/ --automake-acdir=/mnt/sda1/nvme/oe-builds/oe-quirky/build-amd64/tmp/work/nocona-64-poky-linux/lives/20211222-r6/recipe-sysroot-native/usr/share/aclocal-1.16 -I /mnt/sda1/nvme/oe-builds/oe-quirky/build-amd64/tmp/work/nocona-64-poky-linux/lives/20211222-r6/lives-20211222/m4/ -I /mnt/sda1/nvme/oe-builds/oe-quirky/build-amd64/tmp/work/nocona-64-poky-linux/lives/20211222-r6/recipe-sysroot-native/usr/share/aclocal/ --force -I m4
ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.

...this problem is occurring at line 122 in configure.ac

I am not familiar enough with autotools to know what to do to fix this.

arch linux frei0r plugins do not respond to fft.

I can't figure it out, how would i begin to debug this. i'm not installing linaro/ubuntu. so how do i start trying to fix this?
the frei0r filters loads, just like in melt... but no audiofft response.
wish i knew what to do... i have tried clean installs a few times... no clue where to start as no error msg.
-ultr4

Issue with GCC-10 (-fcommon flag)

libweed-utils.so is not correctly linked when GCC-10+ is used:

libtool: link: gcc -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h -I/usr/include/liboil-0.3 -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_LINUX_GNU=1 -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16 -DUSE_LIBPNG=1 -I/usr/include/ffmpeg -I/usr/include/ffmpeg -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1 -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\"/usr/lib64\" -DHAVE_FREI0R=1 -DHAVE_LADSPA=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -pg -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -pthread -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o .libs/lives-exe rpmalloc.o widget-helper.o main.o support.o effects.o lsd-tab.o plugins.o effects-weed.o effects-data.o framedraw.o interface.o paramspecial.o paramwindow.o rfx-builder.o lives-yuv4mpeg.o preferences.o rte_window.o gui.o ce_thumbs.o htmsocket.o merge.o dialogs.o saveplay.o audio.o events.o resample.o osc.o omc-learn.o callbacks.o colourspace.o keyboard.o utils.o multitrack.o stream.o cvirtual.o startup.o pangotext.o machinestate.o weed-effects-utils.o diagnostics.o transcode.o videodev.o jack.o pulse.o ldvgrab.o ldvcallbacks.o ldvinterface.o giw/giwknob.o giw/giwvslider.o giw/giwled.o giw/giwtimeline.o  -lgtk-3 -latk-1.0 -lgio-2.0 -loil-0.3 -lX11 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgobject-2.0 -lmjpegutils ../libOSC/.libs/libOSC.a ../libOSC/client/.libs/libOSC_client.a -ljack -L/usr/lib64 -ljackserver -lavc1394 -lraw1394 -lrom1394 -lasound -lpulse -lpng16 -lz -lswscale -lavutil /builddir/build/BUILD/LiVES-3.2.0-pre8/libweed/.libs/libweed_gslice.so -lglib-2.0 /builddir/build/BUILD/LiVES-3.2.0-pre8/libweed/.libs/libweed-utils.so -lm -lunicap -lrt -ldl -pthread
/usr/bin/ld: main.o (symbol from plugin): in function `defer_sigint':
(.text+0x0): multiple definition of `prefs'; widget-helper.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: main.o (symbol from plugin): in function `defer_sigint':
(.text+0x0): multiple definition of `capable'; widget-helper.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: main.o (symbol from plugin): in function `defer_sigint':
(.text+0x0): multiple definition of `widget_opts'; widget-helper.o (symbol from plugin):(.text+0x0): first defined here
...

A temporarily fix is to force the -fcommon flag.
See Porting to GCC-10
Full build log: http://koji.rpmfusion.org/kojifiles/work/tasks/5947/445947/build.log

Crashes on FreeBSD with SEGV

Version 3.2.0 SEGVs on FreeBSD 12.2.

Stack trace:


$ lives -debug

LiVES 3.2.0
Copyright 2002 - 2020 Gabriel Finch ([email protected]) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

grep: /proc/stat: No such file or directory

Unfortunately LiVES crashed.
Please report this bug at https://github.com/salsaman/LiVES/issues
Thanks. Recovery should be possible if you restart LiVES.


When reporting crashes, please include details of your operating system, distribution, and the LiVES version (3.2.0)
and any information shown below:

lives-exe (pid:11194): [E]xit, [H]alt, show [S]tack trace or [P]roceed: S
#0  _wait4 () at _wait4.S:3
#1  0x00000008013adf7c in __thr_wait4
#2  0x000000080194df7c in g_on_error_stack_trace ()
#3  0x000000080194dd6e in g_on_error_query ()
#4  0x000000000028ff49 in  ()
#5  0x00000008013b0c60 in handle_signal
#6  0x00000008013b022f in thr_sighandler
#7  0x00007ffffffff003 in <signal handler called> ()
#8  0x0000000856c9512e in dv_decoder_free () at /usr/local/lib/libdv.so.4
#9  0x00000008527f3a76 in clip_data_free ()
#10 0x00000008527f39c1 in get_clip_data ()
#11 0x00000000002b7772 in  ()
#12 0x0000000000364e63 in  ()
#13 0x00000000003d3415 in  ()
#14 0x00000008013f3ced in g_closure_invoke ()
#15 0x0000000801409602 in  () at /usr/local/lib/libgobject-2.0.so.0
#16 0x000000080140a45b in g_signal_emit_valist ()
#17 0x000000080140ab16 in g_signal_emit ()
#18 0x0000000800d381d7 in gtk_widget_activate ()
#19 0x0000000800be7bf8 in gtk_menu_shell_activate_item ()
#20 0x0000000800be95c8 in  () at /usr/local/lib/libgtk-3.so.0
#21 0x0000000800d8a614 in  () at /usr/local/lib/libgtk-3.so.0
#22 0x00000008013f3ed6 in  () at /usr/local/lib/libgobject-2.0.so.0
#23 0x000000080140a13f in g_signal_emit_valist ()
#24 0x000000080140ab16 in g_signal_emit ()
#25 0x0000000800d37a0c in  () at /usr/local/lib/libgtk-3.so.0
#26 0x0000000800bd2fff in gtk_propagate_event ()
#27 0x0000000800bd2b8d in gtk_main_do_event () at /usr/local/lib/libgtk-3.so.0
#28 0x0000000801151a11 in  () at /usr/local/lib/libgdk-3.so.0
#29 0x0000000801187097 in  () at /usr/local/lib/libgdk-3.so.0
#30 0x0000000801982487 in g_main_context_dispatch ()
#31 0x000000080198284a in  () at /usr/local/lib/libglib-2.0.so.0
#32 0x0000000801982b8f in g_main_loop_run () at /usr/local/lib/libglib-2.0.so.0
#33 0x0000000800bd249b in gtk_main () at /usr/local/lib/libgtk-3.so.0
#34 0x00000000002989e8 in  ()
#35 0x000000000029df7b in  ()
#36 0x0000000000272bc0 in  ()
#37 0x00000008004d5000 in  ()
#38 0x0000000000000000 in  ()
lives-exe (pid:11194): [E]xit, [H]alt, show [S]tack trace or [P]roceed:

Downstream bug report: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253495

Several patches from FreeBSD ports

Fixed bug with HAVE_OPENCV => $HAVE_OPENCV, added "--libs-only-other" for "pkg-config opencv" and added possibility to ignore pulseaudio and alsa.

--- configure.ac.orig
+++ configure.ac
@@ -544,12 +544,14 @@
 
 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.1, HAVE_OPENCV=true, HAVE_OPENCV=false)
 
-if test "HAVE_OPENCV" = "true" ; then
-OPENCV_LIBS_ONLY_L = `pkg-config opencv --libs-only-L`
+if test "$HAVE_OPENCV" = "true" ; then
+OPENCV_LIBS_ONLY_L=`pkg-config opencv --libs-only-L`
+OPENCV_LIBS_ONLY_OTHER=`pkg-config opencv --libs-only-other`
 fi
 
 AC_SUBST(OPENCV_CFLAGS)
 AC_SUBST(OPENCV_LIBS_ONLY_L)
+AC_SUBST(OPENCV_LIBS_ONLY_OTHER)

 AM_CONDITIONAL(HAVE_OPENCV,$HAVE_OPENCV)

@@ -742,15 +744,22 @@
 AM_CONDITIONAL(HAVE_DIRAC,$HAVE_DIRAC)
 
 HAVE_ALSA=false
+AC_ARG_ENABLE(alsa, [  --disable-alsa     Disable alsa support.] , disable_alsa=yes)
+if test "x$disable_alsa" != "xyes" ; then
 dnl check for libasound
 PKG_CHECK_MODULES(ALSA,alsa,HAVE_ALSA=true,HAVE_ALSA=false)
 AC_SUBST(ALSA_CFLAGS)
 AC_SUBST(ALSA_LIBS)
+else
+echo not checking for alsa
+fi
 
 AM_CONDITIONAL(HAVE_ALSA,$HAVE_ALSA)
 
 HAVE_PULSE_AUDIO=false
 HAVE_PA_STREAM_BEGIN_WRITE=false
+AC_ARG_ENABLE(pulse, [  --disable-pulse    Disable pulseaudio support.] , disable_pulse=yes)
+if test "x$disable_pulse" != "xyes" ; then
 dnl check for pulse-audio
 PKG_CHECK_MODULES(PULSE,libpulse >= 0.9.14,HAVE_PULSE_AUDIO=true,HAVE_PULSE_AUDIO=false)
 if test "$HAVE_PULSE_AUDIO" = "true" ; then
@@ -759,6 +768,9 @@
 
 AC_SUBST(PULSE_CFLAGS)
 AC_SUBST(PULSE_LIBS)
+else
+echo not checking for pulse
+fi
 
 AM_CONDITIONAL(HAVE_PULSE_AUDIO,$HAVE_PULSE_AUDIO)
 AM_CONDITIONAL(HAVE_PA_STREAM_BEGIN_WRITE,$HAVE_PA_STREAM_BEGIN_WRITE)
@@ -865,7 +877,9 @@
 HAVE_SYSTEM_WEED_COMPAT=false
 HAVE_SYSTEM_WEED_PLUGIN=false
 
-if test "$IS_MINGW" = "false"; then
+AC_ARG_ENABLE(weed, [  --disable-system-weed Disable check system weed.] , disable_system_weed=yes)
+
+if test "$IS_MINGW" = "false" && "x$disable_system_weed" != "xyes"; then
 
 PKG_CHECK_MODULES(WEED, libweed >= 0.11.0, HAVE_SYSTEM_WEED=true, HAVE_SYSTEM_WEED=false)
 
--- lives-plugins/weed-plugins/Makefile.am.orig
+++ lives-plugins/weed-plugins/Makefile.am
@@ -81,7 +81,8 @@

 if HAVE_OPENCV
 farneback_analyser_libs = farneback_analyser.la
-farneback_analyser_la_LDFLAGS = $(AM_LDFLAGS) $(OPENCV_LIBS_ONLY_L) -lopencv_core -lopencv_video -lopencv_imgproc
+farneback_analyser_la_LDFLAGS = $(AM_LDFLAGS) $(OPENCV_LIBS_ONLY_L) $(OPENCV_LIBS_ONLY_OTHER) -lopencv_core -lopencv_video -lopencv_imgproc
+farneback_analyser_la_CXXFLAGS = $(OPENCV_CFLAGS)
 farneback_analyser_la_CPPFLAGS = $(AM_CPPFLAGS)
 farneback_analyser_la_SOURCES = farneback_analyser.cpp
 

FreeBSD's cp work different:
If we have "dir1" with files "file1", "file2" and empty "dir2", then "cp -rf dir1/ dir2" copy files "file1" and "file2" to "dir2". Result: "dir2/file1", "dir2/file2".
Linux's cp in same environment copy "dir1" with all files in "dir2". Result: "dir2/dir1/file1", "dir2/dir1/file2".
This patch fixes this issue:

--- lives-plugins/weed-plugins/gdk/Makefile.am.orig
+++ lives-plugins/weed-plugins/gdk/Makefile.am
@@ -59,8 +59,8 @@ EXTRA_DIST=data icons
 
 install-data-local:
        mkdir -p "$(DESTDIR)$(fxpluginslibdir)"
-       cp -rf data/ "$(DESTDIR)$(fxpluginslibdir)" && chmod -R a+r "$(DESTDIR)$(fxpluginslibdir)/data/"
-       cp -rf icons/ "$(DESTDIR)$(fxpluginslibdir)" && chmod -R a+r "$(DESTDIR)$(fxpluginslibdir)/icons/"
+       cp -rf data "$(DESTDIR)$(fxpluginslibdir)" && chmod -R a+r "$(DESTDIR)$(fxpluginslibdir)/data"
+       cp -rf icons "$(DESTDIR)$(fxpluginslibdir)" && chmod -R a+r "$(DESTDIR)$(fxpluginslibdir)/icons"
        $(MAKE) -i install-data-local-remove-vcs-files
 
 install-data-local-remove-vcs-files:

Last one (you can ignore it):

--- Makefile.am.orig
+++ Makefile.am
@@ -35,7 +35,7 @@ endif
 SUBDIRS = $(OSC_SUBDIRS) intl $(WEED_SUBDIRS) src m4 lives-plugins po resources
 PACKAGE_CAPITALISED = LiVES
 
-docdir = "$(prefix)/share/doc/$(PACKAGE)-$(VERSION)"
+docdir = "$(prefix)/share/doc/$(PACKAGE)"
 sharedir = "$(prefix)/share"
 
 if HAVE_DOXYGEN

All patched for version 3.0.2.

Lives tries to start JACK instead of connecting to it

image

It should connect to an already running JACK server, or at least offer such option.

Also it seems to suggest that ALSA is required for JACK, which is wrong. JACK can work through OSS too. Please correct this message.

Also it should report the reason why JACK failed to start. Did some command or system call fail?

Small video sound works but video scrambled

First, just a note about a message when start lives from a terminal, about an invalid effect:

# lives

LiVES 3.2.1-pre
Copyright 2002 - 2021 Gabriel Finch ([email protected]) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect image_stabilizer, line 4

LiVES info: Invalid effect farneback_analyserfarneback_analysersalsaman1 found in compound effect motion_analyser, line 4

flv_decoder: info - frame size=198 x 154, pixel size=192 x 154

That last line is after opening the small video. In the File Open dialog window, the video can be previewed, and plays both audio and video correctly. After opening, all the video frames look scrambled like this:

lives-broken-video

The video file is only 127KB, so I should be able to attach it. I don't know whether can attach a .flv file, so have appended a false ".gz" onto the filename:

20051210-w50s_56K.flv.gz

Invalid strings when opening LiVES 3.0.2 under Xubuntu 20.04

When opening LiVES 3.0.2 under Xubuntu 20.04, I get these error messages:

(lives-exe:10106): Gtk-WARNING **: 09:37:19.310: Invalid input string

(lives-exe:10106): Gtk-WARNING **: 09:37:19.310: Invalid input string

(lives-exe:10106): Pango-WARNING **: 09:37:19.321: Invalid UTF-8 string passed to pango_layout_set_text()

(lives-exe:10106): Gtk-WARNING **: 09:37:19.341: Invalid input string

(lives-exe:10106): Gtk-WARNING **: 09:37:19.364: Invalid input string

(lives-exe:10106): Gtk-WARNING **: 09:37:19.364: Invalid input string

(lives-exe:10106): Pango-WARNING **: 09:37:19.369: Invalid UTF-8 string passed to pango_layout_set_text()

(lives-exe:10106): Pango-WARNING **: 09:37:19.374: Invalid UTF-8 string passed to pango_layout_set_text()

(lives-exe:10106): Gtk-WARNING **: 09:37:19.375: Invalid input string

(lives-exe:10106): Pango-WARNING **: 09:37:19.394: Invalid UTF-8 string passed to pango_layout_set_text()

Error: impossible constraint in 'asm' [ppc64le]

Hello.

lives-3.2.0-pre8 is not compiling machinestate.c in PPC64le architecture:

gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.0-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.0-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.0-pre\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.0-pre\" -DHAVE_VISIBILITY=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=0 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DUSE_POSIX_THREADS=1 -DUSE_POSIX_THREADS_WEAK=1 -DHAVE_PTHREAD_RWLOCK=1 -DHAVE_PTHREAD_MUTEX_RECURSIVE=1 -DHAVE_BUILTIN_EXPECT=1 -DHAVE_ARGZ_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_ARGZ_COUNT=1 -DHAVE_ARGZ_STRINGIFY=1 -DHAVE_ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_NL_LOCALE_NAME=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_WCSLEN=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I.  -DPACKAGE_DATA_DIR=\""/usr/share"\" -DLIVES_DIR=\"""\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -I .. -I "../libOSC" -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -I/usr/include/unicap -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread   -I/usr/include/tirpc  -I/usr/include/opencv4/opencv -I/usr/include/opencv4  -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h  -I/usr/include/liboil-0.3  -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread  -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1   -DIS_LINUX_GNU=1   -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16  -DUSE_LIBPNG=1 -I/usr/include/ffmpeg  -I/usr/include/ffmpeg  -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1  -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\""/usr/lib64"\"   -DHAVE_FREI0R=1 -DHAVE_LADSPA=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -pg -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fcommon -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -c -o machinestate.o machinestate.c
machinestate.c: In function 'get_machine_dets':
machinestate.c:16:3: error: impossible constraint in 'asm'
   16 |   __asm __volatile
      |   ^~~~~
machinestate.c:16:3: error: impossible constraint in 'asm'
   16 |   __asm __volatile
      |   ^~~~~
make[1]: *** [Makefile:1185: machinestate.o] Error 1

Hang On Starup Wizard

I've tried using the lib64 prefix, I've tried running with a completely fresh configuration, and it just wants to hang on this screen. I've gotten it to get to "Testing if mpv can convert audio" and haven't been able to replicate it since.

image

Actually, on a fresh run (with .config/lives rm'ed) I get this (first it crashes before creating the project dir, then it hangs at sox testing):

[benrob0329@flux-capacitor ~]$ lives

LiVES 3.2.0
Copyright 2002 - 2020 Gabriel Finch ([email protected]) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

Thread got signal 11
[benrob0329@flux-capacitor ~]$ lives

LiVES 3.2.0
Copyright 2002 - 2020 Gabriel Finch ([email protected]) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

df: /run/user/1000/doc: Operation not permitted

Output of configure:

[benrob0329@flux-capacitor lives-3.2.0]$ ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for library containing strerror... none required
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for ANSI C header files... (cached) yes
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking dependency style of gcc... gcc3
./configure: 19142: ACX_PTHREAD: not found
checking for lives-plugins/Makefile.am... yes
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking whether we are using the GNU C Library 2 or newer... yes
checking for ranlib... (cached) ranlib
checking for simple visibility declarations... yes
checking for size_t... yes
checking for stdint.h... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking whether integer division by zero raises SIGFPE... yes
checking for inttypes.h... yes
checking for unsigned long long int... yes
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking for ld used by GCC... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking whether imported symbols can be declared weak... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for pthread_kill in -lpthread... yes
checking for pthread_rwlock_t... yes
checking for multithread API to use... posix
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getcwd... yes
checking for getegid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getuid... yes
checking for mempcpy... yes
checking for munmap... yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for tsearch... yes
checking for argz_count... yes
checking for argz_stringify... yes
checking for argz_next... yes
checking for __fsetlocking... yes
checking whether feof_unlocked is declared... yes
checking whether fgets_unlocked is declared... yes
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for NL_LOCALE_NAME macro... yes
checking for bison... bison
checking version of bison... 3.7.6, ok
checking for long long int... yes
checking for wchar_t... yes
checking for wint_t... yes
checking for intmax_t... yes
checking whether printf() supports POSIX/XSI format strings... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking for stdint.h... (cached) yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for ptrdiff_t... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for asprintf... yes
checking for fwprintf... yes
checking for putenv... yes
checking for setenv... yes
checking for setlocale... yes
checking for snprintf... yes
checking for wcslen... yes
checking whether _snprintf is declared... no
checking whether _snwprintf is declared... no
checking whether getc_unlocked is declared... yes
checking for nl_langinfo and CODESET... yes
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... (cached) no
checking for CFLocaleCopyCurrent... (cached) no
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
C++ compiler is g++
checking for open in -ldl... yes
checking for posix_memalign... yes
checking for posix_fadvise... yes
checking for posix_fallocate... yes
checking for getentropy... yes
checking for perl... /usr/bin/perl
checking for pkg-config... /usr/bin/pkg-config
checking for doxygen... no
Cannot find doxygen, will not build sourcecode documentation
checking sys/prctl.h usability... yes
checking sys/prctl.h presence... yes
checking for sys/prctl.h... yes
checking linux/joystick.h usability... yes
checking linux/joystick.h presence... yes
checking for linux/joystick.h... yes
checking for JACK... yes
jack server libs found
checking jack/transport.h usability... yes
checking jack/transport.h presence... yes
checking for jack/transport.h... yes
checking for X11... yes
checking for WAYLAND... yes
checking for XRENDER... yes
checking for GTK+ >= 3.0.0... checking for GTK... yes
- Compiling with gtk+ version  3.24.29  -
checking for GLIB... yes
checking for SDL2... yes
checking for SDL... yes
checking for LIBAVCODEC... yes
checking for LIBAVFORMAT... yes
checking for LIBAVUTIL... yes
checking for LIBSWSCALE... yes
checking for LIBSWRESAMPLE... yes
checking for avcodec_open2 in -lavcodec... yes
checking for avcodec_alloc_context3 in -lavcodec... yes
checking for avcodec_get_name in -lavcodec... yes
checking for av_codec_set_pkt_timebase in -lavcodec... yes
checking for av_packet_unref in -lavcodec... yes
checking for av_get_bits_per_sample in -lavcodec... yes
checking for avformat_new_stream in -lavformat... yes
checking for avformat_find_stream_info in -lavformat... yes
checking for avformat_close_input in -lavformat... yes
checking for av_set_pts_info in -lavformat... no
checking for avpriv_set_pts_info in -lavformat... yes
checking for av_frame_unref in -lavutil... yes
checking for OPENCV... no
checking for OPENCV4... yes
checking for FFTW3F... yes
checking for LIBFREENECT... no
checking for GL... yes
checking for MJPEGTOOLS... no
checking for PNG... yes
checking for LIBZ... yes
checking bzlib.h usability... yes
checking bzlib.h presence... yes
checking for bzlib.h... yes
checking for LIBEXPLAIN... no
checking ladspa.h usability... yes
checking ladspa.h presence... yes
checking for ladspa.h... yes
checking for UNICAP... no
checking linux/videodev2.h usability... yes
checking linux/videodev2.h presence... yes
checking for linux/videodev2.h... yes
checking for LIBDV... no
checking for OGG... yes
checking for THEORA... yes
checking for Dirac (schroedinger): checking for DIRAC... no
checking for ALSA... yes
checking for PULSE... yes
checking for pa_stream_begin_write in -lpulse... yes
checking for LIBVISUAL... yes
checking for LIBPROJECTM... yes
checking for OIL... no
checking for ORC... yes
checking frei0r.h usability... yes
checking frei0r.h presence... yes
checking for frei0r.h... yes
checking libraw1394/raw1394.h usability... yes
checking libraw1394/raw1394.h presence... yes
checking for libraw1394/raw1394.h... yes
checking libavc1394/avc1394.h usability... yes
checking libavc1394/avc1394.h presence... yes
checking for libavc1394/avc1394.h... yes
checking libavc1394/rom1394.h usability... yes
checking libavc1394/rom1394.h presence... yes
checking for libavc1394/rom1394.h... yes
checking for WEED_GSLICE... yes
checking for WEED_UTILS... yes
checking for WEED_COMPAT... yes
checking for WEED_PLUGIN... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libweed/Makefile
config.status: creating libOSC/Makefile
config.status: creating libOSC/client/Makefile
config.status: creating libOSC/sendOSC/Makefile
config.status: creating po/Makefile.in
config.status: creating Makefile
config.status: creating intl/Makefile
config.status: creating m4/Makefile
config.status: creating src/Makefile
config.status: creating resources/Makefile
config.status: creating lives-plugins/Makefile
config.status: creating lives-plugins/plugins/effects/RFXscripts/Makefile
config.status: creating lives-plugins/plugins/effects/compound/Makefile
config.status: creating lives-plugins/plugins/effects/Makefile
config.status: creating lives-plugins/plugins/encoders/Makefile
config.status: creating lives-plugins/plugins/decoders/Makefile
config.status: creating lives-plugins/plugins/Makefile
config.status: creating lives-plugins/plugins/playback/video/Makefile
config.status: creating lives-plugins/plugins/playback/audiostream/Makefile
config.status: creating lives-plugins/plugins/playback/Makefile
config.status: creating lives-plugins/icons/Makefile
config.status: creating lives-plugins/themes/cutting_room/Makefile
config.status: creating lives-plugins/themes/pinks/Makefile
config.status: creating lives-plugins/themes/camera/Makefile
config.status: creating lives-plugins/themes/editor/Makefile
config.status: creating lives-plugins/themes/crayons/Makefile
config.status: creating lives-plugins/themes/crayons-bright/Makefile
config.status: creating lives-plugins/themes/Makefile
config.status: creating lives-plugins/weed-plugins/Makefile
config.status: creating lives-plugins/weed-plugins/gdk/Makefile
config.status: creating lives-plugins/weed-plugins/cairo/Makefile
config.status: creating lives-plugins/marcos-encoders/Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
*******************************************************************
LiVES is now configured and ready for building.
If you are building for MULTILIBS on a 64 bit system, 
you may wish to re-run this, e.g.: ./configure --libdir=/usr/lib64
In this case you MUST also manually update the library paths in libweed/*.pc files.

Remember to do "sudo ldconfig" or equivalent after installing.
*******************************************************************

Startup checks fail

Lives start-up checks fail:

If mpv is present, but not mplayer the check will fail
If mplayer and mpv are present, it only checks if mplayer can convert to png
(sox was not present0

lives_error

undefined reference to `fourccp_to_weedp'

Hi again.

After the fix posted in #21, i still obtain:

libtool: link: gcc -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h -I/usr/include/liboil-0.3 -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_LINUX_GNU=1 -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16 -DUSE_LIBPNG=1 -I/usr/include/ffmpeg -I/usr/include/ffmpeg -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1 -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\"/usr/lib64\" -DHAVE_FREI0R=1 -DHAVE_LADSPA=1 -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1 -pg -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fcommon -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o .libs/lives-exe rpmalloc.o widget-helper.o main.o support.o effects.o lsd-tab.o plugins.o effects-weed.o effects-data.o framedraw.o interface.o paramspecial.o paramwindow.o rfx-builder.o lives-yuv4mpeg.o preferences.o rte_window.o gui.o ce_thumbs.o htmsocket.o merge.o dialogs.o saveplay.o audio.o events.o resample.o osc.o omc-learn.o callbacks.o colourspace.o keyboard.o utils.o multitrack.o stream.o cvirtual.o startup.o pangotext.o machinestate.o weed-effects-utils.o diagnostics.o transcode.o videodev.o jack.o pulse.o ldvgrab.o ldvcallbacks.o ldvinterface.o giw/giwknob.o giw/giwvslider.o giw/giwled.o giw/giwtimeline.o  -lgtk-3 -latk-1.0 -lgio-2.0 -loil-0.3 -lX11 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgobject-2.0 -lmjpegutils ../libOSC/.libs/libOSC.a ../libOSC/client/.libs/libOSC_client.a -ljack -L/usr/lib64 -ljackserver -lavc1394 -lraw1394 -lrom1394 -lasound -lpulse -lpng16 -lz -lswscale -lavutil /builddir/build/BUILD/LiVES-3.2.0-pre8/libweed/.libs/libweed_gslice.so -lglib-2.0 /builddir/build/BUILD/LiVES-3.2.0-pre8/libweed/.libs/libweed-utils.so -lm -lunicap -lrt -ldl -pthread
In function 'lives_free_and_return',
    inlined from 'explain_missing' at startup.c:1387:17:
machinestate.c:590:59: warning: attempt to free a non-heap object 'pt1' [-Wfree-nonheap-object]
  590 | LIVES_GLOBAL_INLINE void *lives_free_and_return(void *p) {lives_free(p); return NULL;}
      |                                                           ^
/usr/bin/ld: /tmp/lives-exe.W2CUBD.ltrans49.ltrans.o: in function `resize_layer':
/builddir/build/BUILD/LiVES-3.2.0-pre8/src/colourspace.c:12767: undefined reference to `weed_palette_to_avi_pix_fmt'
/usr/bin/ld: /builddir/build/BUILD/LiVES-3.2.0-pre8/src/colourspace.c:12768: undefined reference to `weed_palette_to_avi_pix_fmt'
/usr/bin/ld: /tmp/lives-exe.W2CUBD.ltrans63.ltrans.o: in function `on_open_vdev_activate':
/builddir/build/BUILD/LiVES-3.2.0-pre8/src/videodev.c:191: undefined reference to `fourccp_to_weedp'
/usr/bin/ld: /builddir/build/BUILD/LiVES-3.2.0-pre8/src/videodev.c:337: undefined reference to `fourccp_to_weedp'
collect2: error: ld returned 1 exit status

Lives-3.2.0-pre8
Full build log: http://koji.rpmfusion.org/kojifiles/work/tasks/5970/445970/build.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.