Git Product home page Git Product logo

Comments (22)

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

CPU: M1 Pro (arm64)
MacOS: Ventura 13.0.1
Kernel: Darwin Kernel Version 22.1.0

Does it compile out of the box?

no

If it doesn't compile, did ./configure complain and helped figuring out what was needed?

no, it fails at make

Does lv-tool-0.4 start and show a spinning 3D GL spectrum?

(after successful compile) it does start, but with a blank window

Does lv-tool-0.4 use actual audio input when run with --input portaudio (and does it use the microphone or the audio that other apps are playing)?

no
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed

image

Workaround for compile

make fails with default compiler clang

  1. install alternative compiler gcc 11 via brew brew install gcc@11
  2. override compiler flags for configure & make
    2.1. ./configure CC=/opt/homebrew/bin/gcc-11 CXX=/opt/homebrew/bin/g++-11
    2.2. make CC=/opt/homebrew/bin/gcc-11 CXX=/opt/homebrew/bin/g++-11

notes for run-0.4-macos.sh

  1. nproc is not available by default
  2. make install requires root privileges

from libvisual.

idleberg avatar idleberg commented on September 22, 2024

For comparison, here's the result on my rather old setup:

System Version: macOS 10.15.7 (19H2026)
Kernel Version: Darwin 19.6.0
Model Name: Mac mini
Model Identifier: Macmini8,1
Processor Name: 6-Core Intel Core i5

The output of your demo script:


+ LV_INSTALL_PREFIX=/Users/jan/Desktop/libvisual/INSTALL_PREFIX
+ configure_args=(--prefix="${LV_INSTALL_PREFIX}")
+ for i in libvisual libvisual-plugins
+ cd libvisual
+ NOCONFIGURE=please
+ ./autogen.sh
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: glibtoolize --copy --force
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I m4
autoreconf: running: /usr/local/Cellar/autoconf/2.71/bin/autoconf --force
configure.ac:101: error: possibly undefined macro: AC_MSG_ERROR
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: error: /usr/local/Cellar/autoconf/2.71/bin/autoconf failed with exit status: 1

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

Thank you! 👍 👍 That's more and more severe trouble than I expected.

@ChrisScheffler regarding your report:

  • Is there no other error output before the priv->stream != NULL? It would mean that PortAudio failed to open the stream but also pretended it worked (thinking line visual_log_return_val_if_fail (open_error == paNoError, -3);)
  • Any ideas on why PortAudio could have trouble opening the microphone on your system? Are you aware of other apps using PortAudio that work fine for you on macOS? The only two things I can think of right now are stereo versus mono (currently tries stereo) and permission problems. For permissions, someone has ideas here: pure-data/pure-data#1208 (comment) .
  • My guess on the blank window is that we'd need to link against macOS -framework OpenGL rather than homebrew's Mesa then.
  • Regarding the Clang compile error, could you share the error, the clang version and whether it's from homebrew or macOS very own?
  • nproc is GNU coreutils, right, coreutils was is not in the list for homebrew to install, my bad.
  • Did make install require root despite --prefix="${LV_INSTALL_PREFIX}"? If so, did you find why?

@idleberg regarding the AC_MSG_ERROR, is this with pkg-config installed, did you run the homebrew install list mentioned above? From what this reads it seems to happen when pkg-config is not installed.

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@idleberg PS: Alternatively, could it be that there are multiple copies of pkg-config and the wrong one wins the ${PATH} race? Does which pkg-config point at homebrew? Autoconf tries to satisfy macro PKG_PROG_PKG_CONFIG and it needs file pkg.m4 for that — my copy is at /usr/share/aclocal/pkg.m4. If the wrong pkg-config looks in effectively the wrong place, maybe that would cause the error.

from libvisual.

idleberg avatar idleberg commented on September 22, 2024

Homebrew gave me some warnings when installing the dependencies. Basically, they don't guarantee that installing "formalas" will continue work for an outdated OS. I tried again and I'm now getting this:

=====================================================================
LIBVISUAL, AN AUDIO VISUALISATION ABSTRACTION LIBRARY, VERSION 0.4.1
=====================================================================

install path                         : ~/libvisual/INSTALL_PREFIX/lib
plugins base directory               : /Users/jan/Desktop/libvisual/INSTALL_PREFIX/lib/libvisual-0.4
compiler                             : gcc
debug enabled                        : no

++ nproc
+ make -j6
/Library/Developer/CommandLineTools/usr/bin/make  all-recursive
Making all in libvisual
make[2]: Nothing to be done for `all'.
Making all in po
make[2]: Nothing to be done for `all'.
Making all in examples
make[2]: Nothing to be done for `all'.
Making all in tools/lv-tool
g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../libvisual  -D_THREAD_SAFE -I/usr/local/include/SDL -g -O2 -MT lv_tool_0_4-lv-tool.o -MD -MP -MF .deps/lv_tool_0_4-lv-tool.Tpo -c -o lv_tool_0_4-lv-tool.o `test -f 'lv-tool.cpp' || echo './'`lv-tool.cpp
lv-tool.cpp:145:55: error: expected ';' after top level declarator
  const std::unordered_set<std::string> actors_to_skip {
                                                      ^
                                                      ;
lv-tool.cpp:168:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class CycleDir
       ^
lv-tool.cpp:382:11: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
          auto modelist = SDL_ListModes (nullptr, SDL_FULLSCREEN);
          ^
lv-tool.cpp:415:67: error: expected ';' at end of declaration
                  std::array<SDL_Color, target_color_count> colors {};
                                                                  ^
                                                                  ;
lv-tool.cpp:733:7: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
      auto cycler = (dir == CycleDir::NEXT) ? visual_actor_get_next_by_name
      ^
lv-tool.cpp:733:29: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
      auto cycler = (dir == CycleDir::NEXT) ? visual_actor_get_next_by_name
                            ^
lv-tool.cpp:736:7: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
      auto new_name = cycler (name.c_str ());
      ^
lv-tool.cpp:770:19: error: no matching constructor for initialization of '(anonymous namespace)::Libvisual'
        Libvisual main {argc, argv};
                  ^
/usr/local/include/SDL/SDL_main.h:34:14: note: expanded from macro 'main'
#define main SDL_main
             ^
lv-tool.cpp:175:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
      were provided
  class Libvisual
        ^
lv-tool.cpp:179:7: note: candidate constructor not viable: requires 2 arguments, but 0 were provided
      Libvisual (int& argc, char**& argv)
      ^
lv-tool.cpp:770:23: error: expected ';' at end of declaration
        Libvisual main {argc, argv};
                      ^
                      ;
lv-tool.cpp:807:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
        auto actor = bin.get_actor();
        ^
lv-tool.cpp:835:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
        auto vidoptions = visual_actor_get_video_attribute_options(actor);
        ^
lv-tool.cpp:841:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
        auto video = display.create(depth, vidoptions, width, height, true);
        ^
lv-tool.cpp:887:29: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
                DisplayLock lock {display};
                            ^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
      provided
      DisplayLock(Display & display) : m_display(&display) {
      ^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
      were provided
  class DisplayLock
        ^
lv-tool.cpp:887:33: error: expected ';' at end of declaration
                DisplayLock lock {display};
                                ^
                                ;
lv-tool.cpp:910:64: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
                    actor_name = cycle_actor_name (actor_name, CycleDir::NEXT);
                                                               ^
lv-tool.cpp:922:13: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
            auto pluginqueue = visual_plugin_get_eventqueue (visual_actor_get_plugin(bin.get_actor()));
            ^
lv-tool.cpp:938:37: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
                        DisplayLock lock {display};
                                    ^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
      provided
      DisplayLock(Display & display) : m_display(&display) {
      ^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
      were provided
  class DisplayLock
        ^
lv-tool.cpp:938:41: error: expected ';' at end of declaration
                        DisplayLock lock {display};
                                        ^
                                        ;
lv-tool.cpp:960:68: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
                        actor_name = cycle_actor_name (actor_name, CycleDir::NEXT);
                                                                   ^
lv-tool.cpp:1032:29: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
                DisplayLock lock {display};
                            ^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
      provided
      DisplayLock(Display & display) : m_display(&display) {
      ^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
      were provided
  class DisplayLock
        ^
lv-tool.cpp:1032:33: error: expected ';' at end of declaration
                DisplayLock lock {display};
                                ^
                                ;
11 warnings and 10 errors generated.
make[2]: *** [lv_tool_0_4-lv-tool.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

startup with root privileges:

libvisual CRITICAL: lv-tool-0.4: VisPluginRef **visual_plugin_get_references(const char *, int *)(): Cannot load plugin: dlopen(/usr/local/lib/libvisual-0.4/input/input_mplayer.so, 0x0001): symbol not found in flat namespace '_mremap'
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_init(): assertion `open_error == paNoError' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

@idleberg last comment addresses the clang issue. Its the default compiler frontend (not homebrew).
On M1 Pro @ Ventura: gcc -v

Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.1.0

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

Thanks for the updates, interesting! 👍

There is a new branch 0.4.x-macos with these noteworthy changes:

  • Enable C++11 support for the compiler, Clang in particular
  • Compile and link against macOS' own OpenGL rather than Mesa's
  • Make the PortAudio plugin output error code and error message to help understand the situation
  • Fix C++11 and Clang macOS issues until the CI was all green

Could you try with branch 0.4.x-macos and report back?

Thanks in advance! 🙏

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

PS: One more homebrew package is needed with branch 0.4.x-macos now: autoconf-archive.

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

compiling branch 0.4.x-macos with native clang fails for G-Force plugin (errors only):

G-Force.cpp:345:4: error: no matching member function for call to 'Print'
                        Print(_("WaveShape:  "));
                        ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:347:4: error: no matching member function for call to 'Print'
                        Print(_("ColorMap:   "));
                        ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:349:4: error: no matching member function for call to 'Print'
                        Print(_("DeltaField: "));
                        ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:353:5: error: no matching member function for call to 'Print'
                                Print(_("Particles:  "));
                                ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:374:4: error: no matching member function for call to 'Print'
                        Print(_("Amplitude scale: "));
                        ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:381:4: error: no matching member function for call to 'Print'
                        Print(_("Amplitude scale: "));
                        ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:388:5: error: no matching member function for call to 'Println'
                                Println(_("Particles ON"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:390:5: error: no matching member function for call to 'Println'
                                Println(_("Particles OFF"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:412:5: error: no matching member function for call to 'Println'
                                Println(_("Show names ON"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:414:5: error: no matching member function for call to 'Println'
                                Println(_("Show names OFF"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:420:5: error: no matching member function for call to 'Println'
                                Println(_("Normalize ON"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:422:5: error: no matching member function for call to 'Println'
                                Println(_("Normalize OFF"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:435:5: error: no matching member function for call to 'Print'
                                Print(_("Loading DeltaField: "));
                                ^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Print( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Print( UtilStr* inStr )                                                                                 { if ( inStr ) Print( inStr -> getCStr() );             }
                                                        ^
G-Force.cpp:446:5: error: no matching member function for call to 'Println'
                                Println(_("DeltaField slideshow ON"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:449:5: error: no matching member function for call to 'Println'
                                Println(_("DeltaField slideshow OFF"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:457:4: error: no matching member function for call to 'Println'
                        Println(_("All slideshows ON"));
                        ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:464:4: error: no matching member function for call to 'Println'
                        Println(_("All slideshows OFF"));
                        ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:483:5: error: no matching member function for call to 'Println'
                                Println(_("ColorMap slideshow ON"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
G-Force.cpp:486:5: error: no matching member function for call to 'Println'
                                Println(_("ColorMap slideshow OFF"));
                                ^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
                void                                    Println( char* inStr );
                                                        ^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
                void                                    Println( UtilStr* inStr )                                                                               { Println( inStr ? inStr -> getCStr() : 0 ); }
                                                        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

output for compiled binary (with gcc 11):

lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_init(): PortAudio: Could not open input stream, error -9998 "Invalid number of channels".
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@ChrisScheffler thanks! Will need to look into the C++ errors and find a clean way to make the PortAudio code first try stereo and the fall back to mono. With the changes regarding OpenGL, did you still get a black window or a rotating plane of squares this time?

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

@hartwork sorry, forgot the screenshot. The window is now filled with colored "bars" as expected.

image

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@ChrisScheffler that is plain awesome! 👍

from libvisual.

idleberg avatar idleberg commented on September 22, 2024

With the new version, I'm getting dozens of warnings (C++11 related, OpenGL deprecations and others) and ultimately an error:

~/Desktop/libvisual
+ lv_tool_env=(DYLD_LIBRARY_PATH="${LV_INSTALL_PREFIX}"/lib/)
+ exec env DYLD_LIBRARY_PATH=/Users/jan/Desktop/libvisual/INSTALL_PREFIX/lib/ /Users/jan/Desktop/libvisual/INSTALL_PREFIX/bin/lv-tool-0.4 --input portaudio
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
Failed to start pipeline with actor 'lv_gltest' and input 'portaudio'

Let me know if you need the entire log (3181 lines)

PS: neither version will compile with root privileges

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@ChrisScheffler I made the PortAudio plugin fall back to mono now when stereo is not available, same branch. Could you give it a try?

@idleberg I did try with macOS 10.15 and its system Clang in the CI earlier, strange. If you could drag-n-drop the full log as a text file into a reply, that would rock (and be the easiest to look at). Alternatively, a <details> tag would work well too. The log would allow seeing if plugins lv_gltest and portaudio were fully built.
PS: There should be no need for root with anything here, I made run-0.4-macos.sh with that in mind, e.g. that's why I put DYLD_LIBRARY_PATH in there. But maybe it needs adjustment (if the plugins are fully built). Could you share the output of find . -name \*lv_gltest.dy\*?

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@idleberg PS: Got your e-mail just now.

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

@hartwork with the new version of the plugin audio is captured from the microphone and visualized.

output:

lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@hartwork with the new version of the plugin audio is captured from the microphone and visualized.

@ChrisScheffler awesome!

lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed

The assertion output is not specific to macOS and a known todo, but thanks.

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

compiling branch 0.4.x-macos with native clang fails for G-Force plugin (errors only):

Compiler output ``` G-Force.cpp:345:4: error: no matching member function for call to 'Print' Print(_("WaveShape: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:347:4: error: no matching member function for call to 'Print' Print(_("ColorMap: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:349:4: error: no matching member function for call to 'Print' Print(_("DeltaField: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:353:5: error: no matching member function for call to 'Print' Print(_("Particles: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:374:4: error: no matching member function for call to 'Print' Print(_("Amplitude scale: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:381:4: error: no matching member function for call to 'Print' Print(_("Amplitude scale: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:388:5: error: no matching member function for call to 'Println' Println(_("Particles ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:390:5: error: no matching member function for call to 'Println' Println(_("Particles OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:412:5: error: no matching member function for call to 'Println' Println(_("Show names ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:414:5: error: no matching member function for call to 'Println' Println(_("Show names OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:420:5: error: no matching member function for call to 'Println' Println(_("Normalize ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:422:5: error: no matching member function for call to 'Println' Println(_("Normalize OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:435:5: error: no matching member function for call to 'Print' Print(_("Loading DeltaField: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:446:5: error: no matching member function for call to 'Println' Println(_("DeltaField slideshow ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:449:5: error: no matching member function for call to 'Println' Println(_("DeltaField slideshow OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:457:4: error: no matching member function for call to 'Println' Println(_("All slideshows ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:464:4: error: no matching member function for call to 'Println' Println(_("All slideshows OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:483:5: error: no matching member function for call to 'Println' Println(_("ColorMap slideshow ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:486:5: error: no matching member function for call to 'Println' Println(_("ColorMap slideshow OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] ```

@ChrisScheffler this^^ seems to be about const correctness. I believe that is fixed by 0c21b88 now, same branch. Can you confirm?

from libvisual.

ChrisScheffler avatar ChrisScheffler commented on September 22, 2024

@hartwork 6d93614 compiles without errors for clang and gcc11

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

@ChrisScheffler perfect, thank you! 👍

from libvisual.

hartwork avatar hartwork commented on September 22, 2024

libvisual just entered Homebrew. Please be invited to try it on macOS for yourself:

brew install libvisual libvisual-plugins libvisual-projectm
lv-tool-0.4 --input portaudio  # left click cycles through visual effects

from libvisual.

Related Issues (20)

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.