Hi guys,
I just cherry-picked Minh's nice work to master; and it looks in
reasonably good shape. As such, it's prolly good to go through the last
few pieces we need to get sorted out before enabling it by default on
master. JB we'll need some help from you here I think.
1. we need to be sure of the API guarentees around libvlc
+ JB - what API guarentees do you have there ?
+ we currently hard-code your ABI in the wrapper
we use to make this a very lite dependency
+ cf. eg.
http://cgit.freedesktop.org/libreoffice/core/tree/avmedia/source/vlc/wrapper/Player.cxx#n21
1.1 - we need to have a strong versioning scheme we can use to
detect ABI change, particularly on Windows where there is
no .so version bumping, and the majority of users.
+ using and parsing this seems a bit risky:
/**
* Retrieve libvlc version.
*
* Example: "1.1.0-git The Luggage"
*
* \return a string containing the libvlc version
*/
LIBVLC_API const char * libvlc_get_version(void);
Would it be better to have an 'ABI version' that is
incremented as/when back-compatibility of your plugin API
changes ? [ that we could switch on ]
gtk+ has some:
GTKMAIN_C_VAR const guint gtk_major_version;
GTKMAIN_C_VAR const guint gtk_minor_version;
GTKMAIN_C_VAR const guint gtk_micro_version;
GTKMAIN_C_VAR const guint gtk_binary_age;
GTKMAIN_C_VAR const guint gtk_interface_age;
const gchar* gtk_check_version (guint required_major,
guint required_minor,
guint required_micro);
Though check_version thing is at least somewhat
unreadable, it's heart is in the right place; I suspect that
the global variables are less elegant a general solution.
So - IMHO we need a strong versioning concept before we can turn this
on by default.
2. we need a good way to locate VLC / libvlc by default on
Win / Mac / Linux
+ JB: I assume that there are default install paths
is there a registry key on Windows ? Mac (I assume)
has nothing but perhaps a normal install path, and
for Linux it's unclear we want to use a system /
distro packaged VLC since it's almost certainly
pre-broken.
+ thoughts on how to find a working VLC
appreciated.
3. warning free backend - just need to quiet the compiler
warnings
4. fix perf / caching issues in Manager more carefully
we should re-use the player object, but we need to understand
the semantics and rational for the empty URLs we get sent,
also we should only re-use the player if it has no associated
window (I guess?).
5. Add a configuration option to allow a user to specify where
the system VLC lives (in case we can't find it)
+ Tools->Options->'Paths' might be a good place:
+ cui/source/options/optpath.cxx
+ add a 'VLC install path' setting ?
+ if this string is empty (the default) - we should try
to auto-detect just dlopen the libs on Linux; and/or
use a registry key.
+ if it is some magic eg 'off' we should disable VLC
integration, important in case of un-caught ABI
issues.
6. Windows / Mac module loading code cf. 5. and 1.
7. Enable in builds & get wider testing ...
Otherwise - I'm pretty happy with the progress here Minh - thanks for
your work; I'd like to get this enabled and working before the end of
your GSOC.
All the best,
Michael.
--
michael.meeks@suse.com <><, Pseudo Engineer, itinerant idiot
Context
- GSOC / VLC status & next steps ... · Michael Meeks
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.