[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,

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