-
Notifications
You must be signed in to change notification settings - Fork 31
Roadmap
Chong Kai Xiong edited this page Jan 14, 2023
·
11 revisions
- Ongoing: Streamline API and implementation for (conceptual) simplicity and robustness
- Ongoing: Porting code to use updated libraries.
- Nearly complete: New parameter system for adjusting plugin options during runtime
- Nearly complete: New commandline tool (lv-tool) to query, run and test visualizations
- TODO: Revamp plugin interface to more naturally support OOP
- TODO: Improve event handling for plugins
- TODO: Re-implement LV::Bin (VisBin) as LV::Sequence (VisSequence)
- TODO: Complete basic examples of using LV (both C and C++)
- Ongoing: New website
- Ongoing: Backporting of lv-tool.
- Ongoing: Stability and memory leak fixes.
- Ongoing: Porting code to use updated libraries.
- Beat detection system
- Multi-channel (> 2 channel) audio input
- Comprehensive profiling system
- More test waveforms for input_debug
- Fully DAG pipelines
- Unify actors and morphs
- Scripting capabilities using Lua or JavaScript
- Allow mixing of OpenGL and software-rendered visualisations
- Multi-core CPU+GPU rendering
- Optimisation with better use of vectorised CPU instructions, and better cache friendliness
- GUI for lv-tool
- GUI for visually graphing and configuring pipelines
- Port more plugins (ProjectM, Milkdrop, AVS, etc.)
- Shadertoy like plugin for enabling GLSL scripted visualizations
- WebAssembly build for in-browser visualizations
- Android and iOS apps
- Libvisual plugins for all major media apps and frameworks.
Copied and pasted for reference from the old roadmap drawn up by Dennis (synap)
System | Summary | Detail | Author |
---|---|---|---|
VisParamCollection | implement | A new parameter-type that holds a list of possible-options. (Like menu-entries in a drop-down menu) | starlon |
VisBeat | implement | Beat-detection API | starlon |
VisParam | refactoring | Parameter boundaries are currently stored within VisUI, this should be placed within VisParam. Introduce new list-type. | starlon |
VisAudio | fix | Fix crashes that occur with some alsa-drivers. | rigid |
plugins/input/alsa | implement | Implement parameters for better tuning of alsa-options | rigid |
plugins/input/alsa | fix | Change "ALSA Buffer Overrun" Message from "critical" to "warning" | rigid |
VisParam | implement | Callbacks for parameter checking | starlon |
plugins/actor/lv_analyzer | implement | Implement parameters (bars/scale/color...) | rigid |
The goal of the 0.6.0 release is to give application developers a easier to support framework. Part of the strategy is to make displaying plugins easy and also give application developers a good API to access plugin configuration.
Features / TODO
System | Summary | Detail | Author |
---|---|---|---|
VisPipeline | Implement | Design and implement a system for maintaining pipelines of visualisation plugins, transformation and morphing. | |
VisBin | rewrite | Reimplement VisBin from scratch and make use of VisPipeline for all it's pipeline management. | |
VisMem | mem_copy additions | Create a mem copy that is rowstride aware. | |
VisVideo and libvisual-display | on the fly depth change | Add support to schedule video depth change requests to the display layer. | |
VisVideo and libvisual-display | on the fly preferred FPS set | Add support to schedule a preferred FPS on the fly and propagate this to the display layer. | |
VisVideo and libvisual-display | update by rectangle | Add support for rectangle updates in VisVideo and the underlaying display layer. | |
VisVideo and libvisual-display | pBuffer support | Add pBuffer support to libvisual and it's displaying stack so plugins like projectM can use it. | |
VisVideo and libvisual-display | GL support | Research what is missing from our GL support stack. | |
VisSongInfo | final touches | Finish up the VisSongInfo framework and allow clients like amaroK to display cover art overlayed in visualisations. | |
VisParam and VisUI | refactoring | Parameter boundaries are currently stored within VisUI, this should be placed within VisParam. Also both systems need some serious love to fight bitrot. | |
libvisual-display | implement / refactor | Create the library and setup the environment. | |
libvisual-display | implement / refactor | X11 driver. | |
libvisual-display | implement / refactor | X11 fullscreen driver. | |
libvisual-display | implement / refactor | GLX drivers. | |
libvisual-widgets | implement | Qt VisUI driver. | |
libvisual-widgets | implement / refactor | gtk1 VisUI driver. | |
libvisual-widgets | implement / refactor | gtk2 VisUI driver. |
System | Summary | Detail | Author |
---|---|---|---|
All | Review | Do a big overall code review | Everyone |
All | Review | Do a big overall API review | Everyone |
VisScript | New module | New module for super fast evaluation of mathematical expressions | Sepp Wijnands and Dennis Smit |
VisMem | Buffer pools and Object pools to improve the memory model | Dennis Smit | |
All | Optimalization | Find more hot spots for SIMD optimization, do this as generic as possible | Dennis Smit |
VisFourier | Enhancements | SIMD optimization | Dennis Smit |
VisFourier | Enhancements | 2D FFT | Chong Kai Xiong |
All | Refactoring | Make a generic macro system that can compile our assembly both with gcc and intel syntax style inline assembly compilers. Also we've observed many blocks of instructions that are everywhere the same, we could create a small meta language of macros to make this nicer |