[vlc-devel] LibVLC vmem vout and Elementary Stream ID

Jérôme Forissier jerome at taodyne.com
Wed Feb 26 18:27:05 CET 2014

On 24 févr. 2014, at 18:15, Rémi Denis-Courmont wrote:

> Le lundi 24 février 2014, 17:30:37 Jérôme Forissier a écrit :
>> The ID is all I need for now, but if a new API is to be added, I guess it
>> should expose more than the ID.
> The track ID is already exposed where it makes sense with the current design, 
> I think. That is to say at the level of the media player instance.
> But as I already wrote, a video output instance does not map to an elementary 
> stream. It does not even map to an input medium. This is a deliberate and 
> concious design choice, to improve the user experience for the common case of 
> a single (active) video track.
> So I do not really get how you would even define the ES ID of a video output. 
> As far as I can tell, such a notion makes no sense within the current VLC 
> architecture.

OK, got it. I won't try to associate a stream ID to a video output in the general case.

Now, with libvlc_video_set_callbacks()/libvlc_video_set_format_callbacks(), one vmem output is instantiated from the decoder thread whenever a new video stream is found in the input medium. In this case, we *do* have an ES ID which may be passed to the setup() callback.
So I am proposing to add a new parameter to setup(): int es_id, "the ID of the elementary stream that caused the decoder to instantiate the video output".

If this sounds acceptable I will send a patch to the list.



More information about the vlc-devel mailing list