LibVLC 1.1 changes highlights
Posted: 03 Mar 2010 19:39
VLC 1.1.0 is now being stabilized, and will hopefully soon hit the release download directory. It seems like a good time to highlights the main changes to the LibVLC API.
- LibVLC binary version now has number 5. This is a binary break from the three previous interfaces (LibVLC 0.9 and 1.0 had number 2).
- Exceptions are not used anymore anywhere.
- Functions with a pointer return type return NULL in case of error.
- Functions that cannot fail return simply void. There is no need to check for exception just to be sure anymore.
- Other functions return an error code if applicable, typically -1, sometimes zero. Refer to the Doxygen documentation for details.
- libvlc_errmsg() provides an English human-readable error message for the last LibVLC error in the calling thread.
- Multiple instances created with libvlc_new() can have different configuration. This was a known bug/limitation in earlier version (the configuration parameter for the first instance were used by all instances).
- Previously obsoleted functions are removed completely.
- libvlc_get_instance() is removed.
- libvlc_video_get_size() is added, returns both dimensions of an active video output.
- libvlc_video_get_height() and libvlc_video_get_width() are obsoleted (but still present).
- New video functions are added to control Marquee and Logo filters.
- libvlc_video_set_key_input() and libvlc_video_set_mouse_input() can disable key presses and mouse events on the LibVLC video widgets (X11 port). Then the application can handle them.
- X11 C Bindings (libxcb) is used internally instead of Xlib, resolving a lot of race conditions and crashes.
- Many "setter" functions that previously only worked when audio or video was active can now be used off-line, e.g. fullscreen mode, audio volume, etc. In that case, there is no need to wait for events from the LibVLC media player anymore. Obviously, this only applies to some settings (e.g. audio channels cannot be listed when nothing is being played back).
- A number of bugs, especially dead locks and race conditions were fixed.