[vlc-devel] Some random thoughts and suggestions
Stephan Assmus
stippi at yellowbites.com
Sun Feb 9 18:57:16 CET 2003
Hello all,
lately I've been involved again with the BeOS interface, and I want to
share some thoughts and ideas about vlc's overall design.
I am currently not too happy with the plugins concept. I haven't been
thinking about it too much, but it seems to me, that we are overdoing
it with the plugins. I think it would help if a physical plugin file
could export more than one "logical" plugin. All the converter plugins,
that convert float2int32 and such should be combined. And there are
probably other examples. Some of the plugins seem so absolutley
necessary, that without them, vlc remains a completely useless piece of
code. So should they really be plugins? I know plugins also serve the
purpose of being able to replace an implementation by a better one. But
implementing something as build in, can still allow being replacable by
a plugin.
The reason I ramble about this, is that I'm still not satisfied with
the launch time (at all). I experimented with it, and when I comile
with the plugins linked statically, and launch vlc (being the only file
in a folder) I still get a horrible 5-6 seconds delay until the
interface pops onto the screen. When I close vlc and relaunch it, there
is virtually no delay anymore, since it is launching from the file
system cache. It seems to me vlc is extracting the plugins from its
executable, which takes just the same ammount of time as if the plugins
were separate files. I get the very same results, when I compile with
plugins enabled. Then, the delay also disappears when vlc is launched
the second time.
How come vlc 0.4.6 launches so quickly? What changed? It didn't have a
much lower number of plugins.
Another thing I'm not too happy with, is getting information on the
current capabilities of vlc. For example, is there a way to know if I
can navigate to the DVD menu? I could see if a playlist item has "dvd:"
or "dvdold:" prepended, but I guess I shouldn't do this at every
interface update. The current polling design sucks anyways. And what if
an individual DVD doesn't even feature a menu, even if I'm playing it
with the new "dvd" module. I think we need lots of ways to query the
current file and the playlist too. Besides from information on the
stream (like for example total duration, tracks and codecs), I would
like to query for navigation capabilites (Is it possible to skip ahead?
etc.) The BeOS interface currently does many of these features, and
enables its controls appropriatly, but the code for this is most likely
duplicated and unnecessarly complex. The best way to do this would be
if it didn't involve any polling.
Why am I writing this? I have only a limited ammount of time to be
coding on vlc. And I feel my strength is the BeOS plugin, I don't want
to touch vlc internals. However, an interface can only work arround
limitations in the basic design so far, and how good or bad vlc is,
depends entirely on the interface. And of course on how good vlc's
internal stuff implements its features. Many features are implemented
exceptionally well, like DVD image quality for example. Some other
parts could use some more work though... :-)
Best regards,
-Stephan
--
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the vlc-devel
mailing list