[vlc-devel] RE : RE : [LONG] Some thoughts and questions about vout
brezhoneg1 at yahoo.fr
Thu Nov 13 21:40:49 CET 2008
See answer inside this email
De : vlc-devel-bounces at videolan.org
[mailto:vlc-devel-bounces at videolan.org] De la part de Rémi
Envoyé : jeudi 13 novembre 2008 16:33
À : Mailing list for VLC media player developers
Objet : Re: [vlc-devel] RE : [LONG] Some thoughts and questions about
Importance : Faible
On Thu, 13 Nov 2008 15:28:58 +0100, "brezhoneg1" <brezhoneg1 at yahoo.fr>
> Ok, I do agree there is a problem with vlc_object_find for recycling
> object. A lock mechanism is required.
> Are you interested in integrating a recycling mechanism in vlc ? I can
> write something and submit it for review. Would that be something
> doing for future enhancement?
> I am thinking of:
> 4 exported functions :
> int vlc_recycle_init (p _libvlc)
> int vlc_recycle_release ( p_libvlc )
> vlc_object_t* vlc_object_request ( p_obj, object_type )
> int vlc_object_recycle( p_obj )
> The internal implementation would be:
> - a pointer to a recycle_t structure in libvlc
> - a list of p_obj to be kept
> - proper lock mechanism
> - proper reference handling
Not that simple.
First, you don't want to recycle an output object from a different
owner": If it comes from the playlist, it should only re-used by
items. If it comes from VLM, it should only be used by the same VLM
------ if we need to distinguish origin (playlist, VLM or libvlc API),
this should not be a problem.
Through genealogy of calling object (p_obj->p_parent->p_parent...
till Null), we know how to differentiate them. So we can keep this
information in the recycling structure, and reattribute objects to their
Recycling is most interesting to avoid display transition problem
(especially for fullscreen) when vlc is used as a player. vlm, mainly
server-oriented, may not need recycling as much as the other two.
Anyway, this implementation could be done on a family basis for any
type of objects.
Look at what's done for sout-keep - the sout is tied to the owner of the
input, not to the whole LibVLC instance.
Second, recycling is not as simple as the object type. You cannot
an audio or video output, unless it has the same "raw codec" parameters
at least with the current internal video output and audio output plug-in
------- At least for vout, I really think this should not be a problem.
Decoding is already done in the decoder, and vout mainly deals with
width, height, chroma, aspect-ratio and filtering. (Just not sure about
the vout-filter issues which I found a bit difficult to understand with
multiple vout being created for some video effects).
For aout, fenrir wrote an email that seemed rather optimistic to me.
Though, I don't know much about this part of vlc.
More information about the vlc-devel