libvisual / libvisual Goto Github PK
View Code? Open in Web Editor NEWLibvisual Audio Visualization
Home Page: http://libvisual.org/
Libvisual Audio Visualization
Home Page: http://libvisual.org/
Compile++ thumb : visual <= lv_plugin_registry.cpp
jni/libvisual/libvisual/libvisual//lv_plugin_registry.cpp: In function 'LV::PluginRef* LV::load_plugin_ref(const std::string&)':
jni/libvisual/libvisual/libvisual//lv_plugin_registry.cpp:104: error: 'dlerror' was not declared in this scope
make[1]: *** [obj/local/armeabi/objs/visual//lv_plugin_registry.o] Error 1
make[1]: Leaving directory `/storage/code/embedded/android/mine/LibVisual
We need to encode RPATHs when linking binaries against libraries (libvisual.so itself included) that are installed in non-standard directories.
This is needed so that:
CMake provides a number of variables to control the RPATH of each target:
http://www.cmake.org/Wiki/CMake_RPATH_handling
This issue tracks the development of the C++ API and will be closed once the API is considered ready for release
launch lv-tool with invalid input plugin to reproduce
There is RandomContext.set_seed() to initialize the internal RNG system in LV. Feeding it the same seed should always produce the same result.
But some actors (like gforce) seem to bring their own RNG so behaviour is not repeatable by feeding the same seed to LV. All actors should use the mechanism provided by the core.
when rendered frames are output using stdout, there's no way to change actors (like using the mousebutton with the SDL driver for example). Would some simple stdin parser maybe a good way to change actors?
visual_mem_copy
(Use libc)visual_mem_set
(Use libc)visual_mem_set16
, visual_mem_set32
Would be awesome even if it's no major use case. "Bug" because it fixes "all-black-output" when using stdout driver although it's not really a bug.
Proposed API:
class Sequence {
public:
// Constructor
VisSequence ();
// Destructor
~VisSequence ();
// Run
void run ();
// Set input driver
bool set_input (std::string const& input_name);
// Set actor (immediate change, no transitions)
bool set_actor (std::string const& actor_name);
// Set actor (transition with a morph plugin in the given time)
bool set_actor (std::string const& actor_name, Time const& time, std::string const& morph_name);
};
Currently the media.name of the pulseaudio source is hardcoded to "record" in input_pulseaudio.c:126
For some use cases it needs to be adjustable by the user.
The (incorrect) threading code in input_pulseaudio was recently removed in attempt to fix the weird issue where rendered frames appear to flip back and forth.
This reduced the implementation to a single blocking read with a single pa_simple_read() of 1024 samples (at 44,100Hz) followed by a frame render per main loop iteration and worked well on my test machine using PulseAudio 1.1 (Ubuntu 12.04 x64) but stutters horribly on PulseAudio 2.1 (tested on Ubuntu 12.10 x64).
Although I haven't measured, I believed pa_simple_read() is taking longer to return than it needs to be, and is incredibly inconsistent timing wise despite reading the same amount of samples every frame. More investigation is needed.
We will likely have to either restore threading code or use the complex API. Both approaches kind of suck.
EDIT: apparently this isn't limited to pulseaudio input.
actor_corona crashes on x86 and android
it would be nice if CMakeLists.txt could generate a "PACKAGE_BUILD" variable that holds the hash of the current commit, the build date or any other information to differ between different builds
Choose some mechanism to periodically generate doxygen docs & upload/commit them to the webpages.
Every actor currently crashes randomly/constantly on resolutions < 32x32. I think this is because of bugs in LV aswell as in plugins. Those bugs should be fixed + there should be a test for new plugins to systematically check fitness in different situations.
input_jack uses the deprecated jack_client_new() to open a connection to the JACK server. Using jack_client_open() is the preferred/supported way.
This morph plugin seems not to work with libvisual/cxx. Did something change regarding blitting with VisRectangle constraint functions?
framerate limiting is useful not only for testing. It should be implemented...
Apparently the project switched from autotools to CMake, but the instructions in INSTALL and README are still for autotools.
in all waveform-displaying actors, the signal seems very low as if it was scaled wrong with input_alsa (input_debug works)
lv-tool shouldn't use start if compiled without SDL and no -d argument given. stdout gibberish will confuse new users. A message like "please choose output driver with -d " should be displayed instead.
While this is a understandable consequence of actor implementation/optimization it sucks for small resolution work-cases (like audio visualization icon madness or LED hacking ;)
It would be awesome if LV dictated a mimimum resolution for actors (like 32x32) and did a simple scale (e.g. nearest neighbour) that doesn't introduce lots of blurring for smaller resolutions.
plugin parameters should be parsed by lv-tool (e.g. something like "-i pulseaudio:device=foo:param2=bar" )
currently, lv-tool uses inappropriate high verbosity by default. "lv-tool -h" should just output the help text without so much debug output imo.
==27455== Memcheck, a memory error detector
==27455== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==27455== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==27455== Command: lv-tool -a plazma
==27455==
lv-tool v0.1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:408:print_cpu_info: CPU: Number of CPUs: 2
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:409:print_cpu_info: CPU: type 3
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:412:print_cpu_info: CPU: X86 type 6
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:413:print_cpu_info: CPU: cacheline 64
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:414:print_cpu_info: CPU: MMX 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:415:print_cpu_info: CPU: MMX2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:416:print_cpu_info: CPU: SSE 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:417:print_cpu_info: CPU: SSE2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:418:print_cpu_info: CPU: 3DNow 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:419:print_cpu_info: CPU: 3DNowExt 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:80:LV::PluginRegistry::PluginRegistry(): Initializing plugin registry
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/transform
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/transform
Loading actor 'plazma'...
Loading input 'debug'...
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 0 new: 1
WARNING /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_video.c:336:visual_video_set_pitch: Assertion `pitch > 0' failed
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 1 new: 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'plazma'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'debug'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:293:visual_bin_sync: starting sync
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:326:visual_bin_sync: setting new video from actvideo 1 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:335:visual_bin_sync: one last video pitch check 320 depth old 1 forcedmain 1 noevent 0
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_actor.cpp:356:int visual_actor_video_negotiate(VisActor_, int, int, int): negotiating plugin Plazma plugin
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:349:visual_bin_sync: pitch after main actor negotiate 320
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:377:visual_bin_sync: end sync function
==27455==
==27455== HEAP SUMMARY:
==27455== in use at exit: 1,180,582 bytes in 1,320 blocks
==27455== total heap usage: 63,010 allocs, 61,690 frees, 54,953,302 bytes allocated
==27455==
==27455== 1 bytes in 1 blocks are definitely lost in loss record 1 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x452F62E: _XlcDefaultMapModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F6AE: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x80564A2: (anonymous namespace)::SDLDriver::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (sdl_driver.cpp:87)
==27455== by 0x8052F11: SADisplay::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (display.cpp:76)
==27455== by 0x80522D3: main (lv-tool.cpp:346)
==27455==
==27455== 16 bytes in 2 blocks are definitely lost in loss record 28 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x42D0E6C: strdup (in /lib/libc-2.13.so)
==27455== by 0x453D95C: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453CF5E: _XimEncodeLocalICAttr (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453E041: _XimSetICValueData (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45399B2: _XimLocalCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452256D: XCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40F54E9: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 40 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4DEA4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 41 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D924BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 42 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x560C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 92 bytes in 4 blocks are definitely lost in loss record 164 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D6C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 112 (8 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 171 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45427A2: _XlcDefaultLoader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F53B5: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 120 bytes in 1 blocks are definitely lost in loss record 172 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4074432: visual_event_queue_new (lv_event.c:100)
==27455== by 0x80523B3: main (lv-tool.cpp:361)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 174 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F45ED: X11_Available (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5E29: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 175 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E3E: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 176 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E5F: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 202 (12 direct, 190 indirect) bytes in 1 blocks are definitely lost in loss record 186 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408345D: visual_list_add (lv_list.c:284)
==27455== by 0x408758B: visual_param_container_add (lv_param.c:146)
==27455== by 0x40960E1: LV::(anonymous namespace)::init_params(VisParamContainer) (lv_libvisual.cpp:80)
==27455== by 0x409626D: LV::System::System(int&, char**&) (lv_libvisual.cpp:149)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455== by 0x8051F7C: main (lv-tool.cpp:290)
==27455==
==27455== 980 (68 direct, 912 indirect) bytes in 1 blocks are definitely lost in loss record 222 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4545A7E: _XlcUtf8Loader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 1,036 (12 direct, 1,024 indirect) bytes in 1 blocks are definitely lost in loss record 231 of 260
==27455== at 0x40249C7: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x40A1A95: visual_palette_clone (lv_palette_c.cpp:42)
==27455== by 0x4078590: visual_video_set_palette (lv_video.c:285)
==27455== by 0x4091739: visual_actor_run (lv_actor.cpp:556)
==27455== by 0x40779C2: visual_bin_run (lv_bin.c:861)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 1,176 (112 direct, 1,064 indirect) bytes in 4 blocks are definitely lost in loss record 234 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409ADCB: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:84)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 2,382 (196 direct, 2,186 indirect) bytes in 7 blocks are definitely lost in loss record 245 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AE1A: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:85)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 4,096 bytes in 1 blocks are possibly lost in loss record 247 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081299: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 5,180 (1,036 direct, 4,144 indirect) bytes in 1 blocks are definitely lost in loss record 248 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x5515227: ???
==27455== by 0x551424A: ???
==27455== by 0x5508690: ???
==27455== by 0x54DE7FA: ???
==27455== by 0x553F51F: ???
==27455== by 0x54DD95C: ???
==27455== by 0x400E2A5: call_init (in /lib/ld-2.13.so)
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455==
==27455== 6,383 (504 direct, 5,879 indirect) bytes in 18 blocks are definitely lost in loss record 250 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AD7C: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:83)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 8,192 bytes in 2 blocks are possibly lost in loss record 253 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081274: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 40,960 bytes in 5 blocks are possibly lost in loss record 254 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x408099D: sample_data_func (lv_audio.c:1261)
==27455== by 0x408C1EA: fixate_with_partial_data_request (lv_ringbuffer.c:323)
==27455== by 0x408BEBF: visual_ringbuffer_get_data_offset (lv_ringbuffer.c:211)
==27455== by 0x408C3AE: visual_ringbuffer_get_data_from_end (lv_ringbuffer.c:370)
==27455== by 0x407D93D: visual_audio_get_sample (lv_audio.c:342)
==27455== by 0x407DCE4: visual_audio_get_sample_mixed (lv_audio.c:426)
==27455== by 0x402B19A: act_plazma_render (actor_plazma.c:235)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 257 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B680: _plazma_init (plazma.c:89)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 258 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B6A8: _plazma_init (plazma.c:90)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 561,713 (124 direct, 561,589 indirect) bytes in 1 blocks are definitely lost in loss record 260 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4075078: visual_bin_new (lv_bin.c:101)
==27455== by 0x805200E: main (lv-tool.cpp:298)
==27455==
==27455== LEAK SUMMARY:
==27455== definitely lost: 2,742 bytes in 49 blocks
==27455== indirectly lost: 577,092 bytes in 779 blocks
==27455== possibly lost: 565,248 bytes in 10 blocks
==27455== still reachable: 35,500 bytes in 482 blocks
==27455== suppressed: 0 bytes in 0 blocks
==27455== Reachable blocks (those to which a pointer was found) are not shown.
==27455== To see them, rerun with: --leak-check=full --show-reachable=yes
==27455==
==27455== For counts of detected and suppressed errors, rerun with: -v
==27455== ERROR SUMMARY: 24 errors from 24 contexts (suppressed: 2634 from 14)
VisVideo, VisDFT and VisAudio buffers need to be properly aligned in order for SIMD routines to work at maximum efficiency. MMX requires at least 8-byte alignments; SSE/SSE2 and Neon need 16; and finally AVX needs 32.
Neither malloc() nor C++'s new operator will automatically provide such a large alignment. We will have to create a visual_new_aligned() based on _allgned_malloc() on WIndows and memalign() on POSIX. According to some sources, OS X does not have memalign(), but we can count on its malloc() always producing addresses at 16 byte boundaries.
Objects allocated in C++ using new will need a custom allocator and the use of placement new.
Additionally, for buffers holding 2-dimensional data such as VisVIdeo, and where block operations such as blitting are performed row by row, every data row requires a similar alignment. Padding will need to be added to achieve this (while keeping contiguity).
...also should print morph and input plugin info
Part of the more general refactoring effort described in #39.
While working with input_debug, it crashes with input_mplayer (not sure about other inputs)
Reproduce with:
$(mplayer -af export song.mp3) & $(lv-tool -a plazma -i mplayer)
white/pink/... noise PCM data would be nice for testing, file input (raw PCM or wav) would be nice to do reproducable real-world tests
lv-tool crashes when LMB is clicked (actor change) since actor->transform is used uninitialized:
The new design (seen at http://libvisual.org/libvisual) is a bit bland, and should incorporate a visualization just below the masthead. Currently, my idea is to base it off synap's recent JavaScript hacks, and fall back to a static image for JavaScript-disabled viewing.
actors are not morphed when switched, should be implemented...
An url field could link to a plugin info page with further info. URLs nowadays are nicely integrated and provide a good way to centralize information management for plugin authors.
Blocks on #54.
is there currently a way to find out what drivers are available?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.