salsaman / LiVES

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
http://lives-video.com
GNU General Public License v3.0
89 stars 11 forks source link

Several patches from FreeBSD ports #11

Closed VVD closed 3 years ago

VVD commented 3 years ago

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.

VVD commented 3 years ago

And I have question about dependancy from transcode - is lives still require it?

salsaman commented 3 years ago

Thanks ! I will take a look, and the patches will be in the upcoming 3.2.0 release.

Transcode is no longer used by LiVES. I'll post an updated dependency list here shortly.

salsaman commented 3 years ago

All issues fixed in commit 56476ee28fb6f96a348f71bdc9c92123e798f696

Regarding the trailing "/" I noticed similar lines in a few other files, so I fixed those also.

I changed the docdir as suggested, but since I think it is nice for users to have some way to easily see the version number, "make install" will now create a "version" file in docdir:

    @echo $(VERSION) > "$(DESTDIR)$(docdir)/version"
salsaman commented 3 years ago

05bb53fd8b1d59f2959f91d54949c8ac910c5b45

VVD commented 3 years ago

Thanks!

Is any date for next release?

VVD commented 3 years ago

With --disable-frei0r it still search for frei0r.h:

checking frei0r.h usability... yes
checking frei0r.h presence... yes
checking for frei0r.h... yes
./configure: x: not found
checking that generated files are newer than configure... done
configure: creating ./config.status

It doesn't search for frei0r.h with "ac_cv_header_frei0r_h=no" in configure environment only:

checking for frei0r.h... (cached) no
./configure: x: not found
checking that generated files are newer than configure... done
salsaman commented 3 years ago

"soon"...I am doing some final testing, but there were a huge amount of changes so the testing is taking a while. The current git version is pretty much pre-release quality though, if you are able to test that it would be helpful.

salsaman commented 3 years ago

Ah yes you are correct.

6e92263928b2a1e34d50f6320375685a1e70d733

salsaman commented 3 years ago

I need to update the setup also. For now you will need to manually do:

cp -rf resources/stock-icons ~/.lives-dir

VVD commented 3 years ago

Several warnings during configure:

configure.ac:108: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
configure.ac:108: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
configure.ac:108: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.

I'm not active user of Lives - using it rare.

Testing one more configure and build error - will post result soon.

salsaman commented 3 years ago

I should probably prioritise the setup changes. Amongst the changes,

~/.lives will change to ~/.config/lives/settings and ~/.lives-dir will change to ~/.local/share/lives

salsaman commented 3 years ago

configure.ac:108: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.

This is caused by an external package, gettext. There is nothing I can do about it, but you can safely ignore the warning.

VVD commented 3 years ago

With --enable-projectM it doesn't build projectM.so.

VVD commented 3 years ago

Don't know why, but FreeBSD port have this patch:

--- lives-plugins/weed-plugins/projectM.cpp.oirg
+++ lives-plugins/weed-plugins/projectM.cpp
@@ -352,7 +352,6 @@
     }

     if (sd->pidx == -1) {
-      if (rerand) sd->globalPM->selectRandom(true);
       rerand = false;
     } else if (sd->pidx != sd->opidx) {
       sd->globalPM->setPresetLock(true);
salsaman commented 3 years ago

With --enable-projectM it doesn't build projectM.so.

do you have libprojectm-dev installed ?

VVD commented 3 years ago

libprojectM-3.1.3 /usr/local/bin/projectM-unittest /usr/local/bin/projectMSDL /usr/local/include/libprojectM/Common.hpp /usr/local/include/libprojectM/PCM.hpp /usr/local/include/libprojectM/dlldefs.h /usr/local/include/libprojectM/event.h /usr/local/include/libprojectM/fatal.h /usr/local/include/libprojectM/projectM.hpp /usr/local/lib/libprojectM.a /usr/local/lib/libprojectM.so /usr/local/lib/libprojectM.so.3 /usr/local/lib/libprojectM.so.3.1.1 /usr/local/libdata/pkgconfig/libprojectM.pc

ttf files and a lot of presets.

VVD commented 3 years ago

Build without pulse and jack.

VVD commented 3 years ago

One more patch (don't know why too):

--- Makefile.in.bak
+++ Makefile.in
@@ -211,7 +211,7 @@
        compile config.guess config.rpath config.sub install-sh \
        ltmain.sh missing mkinstalldirs
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
+distdir = $(PACKAGE)
 top_distdir = $(distdir)
 am__remove_distdir = \
   if test -d "$(distdir)"; then \
@@ -484,7 +484,7 @@
 builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
-docdir = "$(prefix)/share/doc/$(PACKAGE)-$(VERSION)"
+docdir = "$(prefix)/share/doc/$(PACKAGE)"
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 host = @host@
@@ -995,7 +995,7 @@

 info-am:

-install-data-am: install-data-local install-docDATA
+install-data-am: install-data-local

 install-dvi: install-dvi-recursive

@@ -1055,7 +1055,7 @@
        distclean-generic distclean-libtool distclean-tags \
        distcleancheck distdir distuninstallcheck dvi dvi-am html \
        html-am info info-am install install-am install-data \
-       install-data-am install-data-local install-docDATA install-dvi \
+       install-data-am install-data-local install-dvi \
        install-dvi-am install-exec install-exec-am install-exec-hook \
        install-exec-local install-html install-html-am install-info \
        install-info-am install-man install-pdf install-pdf-am \
salsaman commented 3 years ago

Don't know why, but FreeBSD port have this patch:

--- lives-plugins/weed-plugins/projectM.cpp.oirg
+++ lives-plugins/weed-plugins/projectM.cpp
@@ -352,7 +352,6 @@
     }

     if (sd->pidx == -1) {
-      if (rerand) sd->globalPM->selectRandom(true);
       rerand = false;
     } else if (sd->pidx != sd->opidx) {
       sd->globalPM->setPresetLock(true);

Most likely sd->globalPM->selectRandom was removed because it is not supported in older versions of projectM.

However the patch is no longer necessary since LiVES now uses its own random function.

(I had to make this change since some of the patterns just generated blank frames - I am not sure why, but obviously this is not desirable behaviour. So now LiVES will check the first two frames generated by a pattern, and if both are blank then it is marked as a "bad program", and removed from the selection list.)

salsaman commented 3 years ago

You don't need to patch Makefile.in. Just run "automake" and it will be reccreated.

salsaman commented 3 years ago

Build without pulse and jack.

That is not recommended since doing that will disable almost all of the audio features.

You should compile with either pulse or jack or both.

VVD commented 3 years ago

You don't need to patch Makefile.in. Just run "automake" and it will be reccreated.

These are old patches - trying to clean their.

--- lives-plugins/weed-plugins/gdk/Makefile.in.bak
+++ lives-plugins/weed-plugins/gdk/Makefile.in
@@ -861,7 +861,7 @@

 info-am:

-install-data-am: install-data-local install-fxpluginslibLTLIBRARIES
+install-data-am: install-fxpluginslibLTLIBRARIES

 install-dvi: install-dvi-am

That is not recommended since doing that will disable almost all of the audio features. You should compile with either pulse or jack or both.

pulse is "alien element" for FreeBSD. Native sound system is OSS. And I don't need jack too. As I said I'm not active user - sometimes I need small editing and have 6 video editors: avidemux, kdenlive, lives, openshot, pitivi, shotcut. Less dependencies is better for me.

salsaman commented 3 years ago

jackd should run quite well with OSS I think.

salsaman commented 3 years ago

libprojectM-3.1.3 /usr/local/bin/projectM-unittest /usr/local/bin/projectMSDL /usr/local/include/libprojectM/Common.hpp /usr/local/include/libprojectM/PCM.hpp /usr/local/include/libprojectM/dlldefs.h /usr/local/include/libprojectM/event.h /usr/local/include/libprojectM/fatal.h /usr/local/include/libprojectM/projectM.hpp /usr/local/lib/libprojectM.a /usr/local/lib/libprojectM.so /usr/local/lib/libprojectM.so.3 /usr/local/lib/libprojectM.so.3.1.1 /usr/local/libdata/pkgconfig/libprojectM.pc

ttf files and a lot of presets.

You probably need to add the directory /usr/local/libdata/pkgconfig to the environment variable PKG_CONFIG_PATH

salsaman commented 3 years ago

"sometimes I need small editing"

Just out of interest, what editing features do you most commonly use ? What would be your typical workflow ? If you could choose any one thing to make the task easier / better, what would it be ?

It would be helpful to know these things, so I can perhaps better target the app. a t casual users like yourself.

VVD commented 3 years ago

You probably need to add the directory /usr/local/libdata/pkgconfig to the environment variable PKG_CONFIG_PATH

But it can find other libraries. I think I have to upload full build log…

Just out of interest, what editing features do you most commonly use ? What would be your typical workflow ? If you could choose any one thing to make the task easier / better, what would it be ?

Last what I search was lossless cut with visual interface. Didn't find this function in all 6 video editors… Command line ffmpeg saved me. :-D

That is not recommended since doing that will disable almost all of the audio features.

What audio features?

salsaman commented 3 years ago

You probably need to add the directory /usr/local/libdata/pkgconfig to the environment variable PKG_CONFIG_PATH

But it can find other libraries. I think I have to upload full build log…

Just out of interest, what editing features do you most commonly use ? What would be your typical workflow ? If you could choose any one thing to make the task easier / better, what would it be ?

Last what I search was lossless cut with visual interface. Didn't find this function in all 6 video editors… Command line ffmpeg saved me. :-D

LiVES can do this, but it would re-encode (a copy of) the video. Not exactly lossless, but near enough that you probably wouldn't notice. It has to be like that since most formats don't allow for frame / audio removal without re-encoding.

It is very simple with the latest version. Just open the clip, select a section to be deleted, hit ctrl-d for delete, then repeat for all the parts you want to remove. Then when done, select Files / Quick Transcode and it should create the output file. Since it is all done in memory, the original clip is left unchanged..

That is not recommended since doing that will disable almost all of the audio features.

What audio features?

A / V sync during playback, pushing audio to generators (e.e projectM), real time audio recording, audio looping, realtime velocity / direction changes, audio clip switching in real time, positional changes (e.g clicking on the timeline during playback, bookmark jumping), volume control, audio playback in the multitrack interface, audio effects (e.g LADSPA effects), recording of external audio, audio analysis (e.g. beat detector),

salsaman commented 3 years ago

On the other hand, if you are just doing straightforward things like cutting and re-encoding then that wouldn't be affected. The main thing would be that for longer previews the audio and video might play a little out of synch, since LiVES would have no way to measure the number of samples sent to the soundcard in real time. Also when adjusting selections to be deleted, changes in the selection length during playback can't be reflected in the audio player, unless you are using a real time audio player. You would have to stop and restart playback after each adjustment. With a real time audio player, you can set selection points and then shorten or lengthen the selection during playback, useful if you have continuous looping switched on.

Also, if you have more time, you can do your cuts in the multitrack interface, which can be nicer, since then you can drag the part after the cut back to create an overlap, and LiVES willthen automatically do a smooth transition from one cut to the next.

salsaman commented 3 years ago

What would be EXTREMELY useful is if you could send a copy of the Startup messages, so I can see what this looks like on freeBSD. The messages should pop up automatically on start-up, or if this has been disabled, you can click on Info / Show messages. Then you can click the Save As button and post the resulting text file here.

VVD commented 3 years ago

LiVES can do this, but it would re-encode (a copy of) the video. Not exactly lossless, but near enough that you probably wouldn't notice.

It's very long…

It has to be like that since most formats don't allow for frame / audio removal without re-encoding.

I know what is keyframes. :-D I'm used VirtualDub 15-18 years ago. It support cutting video on keyframes without recompress.

A / V sync during playback, pushing audio to generators (e.e projectM), real time audio recording, audio looping, realtime velocity / direction changes, audio clip switching in real time, positional changes (e.g clicking on the timeline during playback, bookmark jumping), volume control, audio playback in the multitrack interface, audio effects (e.g LADSPA effects), recording of external audio, audio analysis (e.g. beat detector),

All this supported by OSS too.

What would be EXTREMELY useful is if you could send a copy of the Startup messages, so I can see what this looks like on freeBSD. The messages should pop up automatically on start-up, or if this has been disabled, you can click on Info / Show messages. Then you can click the Save As button and post the resulting text file here.

GUI Window?

Build log with --enable-projectM: lives.txt

VVD commented 3 years ago

изображение

VVD commented 3 years ago

изображение

VVD commented 3 years ago

Something wrong with Russian(?) letters on 2nd screen.

VVD commented 3 years ago

But here is all OK with Russian letters: изображение

VVD commented 3 years ago

On this stage I got message in console:

$ lives

LiVES 3.0.2
Copyright 2002 - 2019 Gabriel Finch (salsaman+lives@gmail.com) 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.

sh: /bin/grep: not found

FreeBSD's grep is here: /usr/bin/grep

VVD commented 3 years ago

In console:

LiVES info: No usable filters found in plugin /usr/local/lib/lives/plugins/effects/realtime/weed/fourKlives.so

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

Both files installed.

изображение

VVD commented 3 years ago

изображение изображение

VVD commented 3 years ago

изображение

VVD commented 3 years ago

Main window after start: изображение Screenshots was with font DPI 108.

VVD commented 3 years ago

This is the main window from other host with font DPI 96 in "CLIP EDITOR" mode: изображение

But it doesn't work on this host in "MULTITRACK" mode with resolution 1280x960 (some kind of HD): it flickering. Rename this file to *.mkv: lives_vp9

salsaman commented 3 years ago

Please try with the git version if you can.

VVD commented 3 years ago

Small fix for configure.ac:

@@ -865,7 +877,9 @@
 HAVE_SYSTEM_WEED_COMPAT=false
 HAVE_SYSTEM_WEED_PLUGIN=false

-if test "$IS_MINGW" = "false"; then
+AC_ARG_ENABLE(system-weed, [  --enable-system-weed Enable check system weed.] , system_weed=yes, system_weed=no)
+
+if test "$IS_MINGW" = "false" && test "$system_weed" != "no"; then

 PKG_CHECK_MODULES(WEED, libweed >= 0.11.0, HAVE_SYSTEM_WEED=true, HAVE_SYSTEM_WEED=false)
salsaman commented 3 years ago

Those lines do not exist in the current configure.ac. If you want to contribute usefully please build with the git version.

VVD commented 3 years ago
configure: error: conditional "HAVE_OPENCV4" was never defined.
Usually this means the macro was only invoked conditionally.
if test -z "${HAVE_OPENCV4_TRUE}" && test -z "${HAVE_OPENCV4_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_OPENCV4\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
VVD commented 3 years ago

Move:

AC_SUBST(OPENCV4_CFLAGS)
AC_SUBST(OPENCV4_LIBS_ONLY_L)
AC_SUBST(OPENCV4_LIBS_ONLY_OTHER)

AM_CONDITIONAL(HAVE_OPENCV4,$HAVE_OPENCV4)

Near:

AC_SUBST(OPENCV_CFLAGS)
AC_SUBST(OPENCV_LIBS_ONLY_L)
AC_SUBST(OPENCV_LIBS_ONLY_OTHER)

AM_CONDITIONAL(HAVE_OPENCV,$HAVE_OPENCV)
VVD commented 3 years ago

Other error during build:

utils.c:671:76: error: use of undeclared identifier 'O_DSYNC'
  return lives_open_real_buffered(pathname, O_CREAT | O_WRONLY | O_TRUNC | O_DSYNC, mode, FALSE);
                                                                           ^
utils.c:676:66: error: use of undeclared identifier 'O_DSYNC'
  return lives_open_real_buffered(pathname, O_CREAT | O_WRONLY | O_DSYNC | (append ? O_APPEND : 0), mode, FALSE);
                                                                 ^
VVD commented 3 years ago

A lot of warnings:

./lsd.h:900:15: warning: unused function 'lives_struct_get_size' [-Wunused-function]
static size_t lives_struct_get_size(lives_struct_def_t *lsd) {
              ^
./lsd.h:903:13: warning: unused function 'lives_struct_set_user_data' [-Wunused-function]
static void lives_struct_set_user_data(lives_struct_def_t *lsd, void *data) {
            ^
./lsd.h:906:14: warning: unused function 'lives_struct_get_class_data' [-Wunused-function]
static void *lives_struct_get_class_data(lives_struct_def_t *lsd) {
             ^
./lsd.h:909:13: warning: unused function 'lives_struct_set_class_data' [-Wunused-function]
static void lives_struct_set_class_data(lives_struct_def_t *lsd, void *data) {
            ^
./lsd.h:913:31: warning: unused function 'make_special_field' [-Wunused-function]
static lives_special_field_t *make_special_field(uint64_t flags, void *thestruct,
                              ^
./lsd.h:1127:49: warning: attribute declaration must precede definition [-Wignored-attributes]
static int lsd_free(const lives_struct_def_t *) ALLOW_UNUSED;
                                                ^
./lsd.h:43:37: note: expanded from macro 'ALLOW_UNUSED'
#define ALLOW_UNUSED __attribute__((unused))
                                    ^
./lsd.h:1014:12: note: previous definition is here
static int lsd_free(const lives_struct_def_t *lsd) {
           ^
./lsd.h:1128:50: warning: attribute declaration must precede definition [-Wignored-attributes]
static int lsd_unref(const lives_struct_def_t *) ALLOW_UNUSED;
                                                 ^
VVD commented 3 years ago

Error:

In file included from machinestate.c:10:
/usr/include/malloc.h:3:2: error: "<malloc.h> has been replaced by <stdlib.h>"
#error "<malloc.h> has been replaced by <stdlib.h>"
 ^
--- src/machinestate.c.orig
+++ src/machinestate.c
@@ -7,7 +7,11 @@
 // functions for dealing with externalities

 #include <sys/statvfs.h>
+#ifdef __FreeBSD__
+#include <stdlib.h>
+#else
 #include <malloc.h>
+#endif
 #include "main.h"
 #include "callbacks.h"
VVD commented 3 years ago

Don't know how to fix this:

diagnostics.c:53:52: error: member reference base type 'void' is not a structure or union
      avsync -= ((double)mainw->files[mainw->pulsed->playing_file]->frameno - 1.) / mainw->files[mainw->pulsed->playing_file]->fps
                                      ~~~~~~~~~~~~~^ ~~~~~~~~~~~~
diagnostics.c:53:111: error: member reference base type 'void' is not a structure or union
      avsync -= ((double)mainw->files[mainw->pulsed->playing_file]->frameno - 1.) / mainw->files[mainw->pulsed->playing_file]->fps
                                                                                                 ~~~~~~~~~~~~~^ ~~~~~~~~~~~~
VVD commented 3 years ago

This commit: https://github.com/salsaman/LiVES/commit/74431c589e889362055193b9da7c924ec6d33048#diff-38ae40c3b84d3bfe71ae59823401d13f