[vlc-devel] Multiple instances and/or multiple players

Rémi Denis-Courmont remi at remlab.net
Tue Aug 18 13:08:54 CEST 2009


On Tue, 18 Aug 2009 12:39:14 +0200, Pierre d'Herbemont
<pdherbemont at gmail.com> wrote:
> A few things come to my mind:
> - multiple instances is not something that is being tested a lot in VLC.

Neither are multiple players.

> - I am a bit candid here, but what is the effective performance  
> impact? do you have any numbers?

It consumes a little bit more memory, although this is in great due the
unused playlist. The module directory has to be browsed if you destroy
*all* instances _then_ create a new one. That said this cost is also
present if libvlc is instanciated only when one (or more) player is needed.
If we want to optimize it away, I would rather have a pair of void(*)(void)
function that increase the reference count of the module cache (kind of
like WSAStartup/WSACleanup on Windows), than use
libvlc_new()/libvlc_release().

> - Do we want to allow sharing of input item between different  
> instance? How much do we want to make sure we can share between two  
> instances?

Do input items reference anything external anyway? They are not even VLC
objects.

> - Cache: All cached data will be into globals? How do you plan to  
> flush caches? AFAIK this was the only goal of libvlc_new,  
> libvlc_release.

The module cache is already implicitly shared across all instances, and
-this is a bug- so is the configuration.

> - Having multiple audio output could be problematic in some platform,  
> and doing audio mixing ourselves is then a great plus. How do you do  
> that with one instance?

Having a *single* audio output sucks. As Brezhoneg pointed out, you cannot
configure the audio per input as a consequence of this mis-design. I was
planning to have per-input audio outputs regardless - if we keep multiple
player per instances.

> That said, this is an implementation details, how do you plan to  
> reflect that on the API?

Basically, we could merge instance and player types, and simplify quite a
bunch of stuff.

-- 
Rémi Denis-Courmont




More information about the vlc-devel mailing list