[vlc-devel] [PATCH 01/15] Enable selection of secondary SPU ES in the core
Roland Bewick
roland.bewick at gmail.com
Sat May 18 15:28:13 CEST 2019
Hi, turns out there's a few things I'm still uncertain about:
1. Because selection of ES does not complete before the
vlc_player_SelectTrackList ends, the list of spu ids passed to the api
must be allocated in memory.
The list then needs to be freed once the selection is complete (I do
that in input.c:ControlRelease)
I can update the documentation about this.
2. In passing the list of es ids to es_out_Control I realised I also
need to deal with demux_Control (DEMUX_SET_ES). To be honest I have very
little knowledge
in this area and would appreciate some input.
There seem to be two modules (ASF and bluray) that depend on this event
to enable the subtitle stream. However, I have doubts that simultaneous
subtitle streams are supported.
I don't have the hardware to test bluray myrself and I'm also not sure
if I can find a WMV (ASF) with multiple embedded sub tracks?
So, I feel options are pretty limited with regards to the new
INPUT_CONTROL_SET_ES_LIST event.
Please refer to the following code:
=================
case INPUT_CONTROL_SET_ES:
{
if( es_out_Control( input_priv(p_input)->p_es_out_display,
ES_OUT_SET_ES, param.id ) == VLC_SUCCESS )
demux_Control( input_priv(p_input)->master->p_demux, DEMUX_SET_ES,
vlc_es_id_GetInputId( param.id ) );
break;
}
case INPUT_CONTROL_SET_ES_LIST:
{
if( es_out_Control( input_priv(p_input)->p_es_out_display,
ES_OUT_SET_ES_LIST, param.list.cat,
param.list.ids ) == VLC_SUCCESS )
{
/* What to do here? */
}
break;
}
=================
A. I can add a DEMUX_SET_ES_LIST event and add support in relevant files
that check for the DEMUX_SET_ES event.
- I can't test this option as I mentioned above.
B. Loop and call the existing DEMUX_SET_ES for each ES ID (Don't touch
any of the individual consumers)
- I'm using existing code, however I can't guarantee dual subtitles
will actually be enabled (I can't test this either)
C. Don't call the demux_Control in the INPUT_CONTROL_SET_ES_LIST event,
and only use vlc_player_SelectTrackList when dual subtitles are enabled.
- Single subtitle behaviour will be unchanged.
- Dual subtitles will work for External subtitles and embedded in
formats such as .MKV. Bluray / ASF will be unsupported.
Thanks,
Roland
More information about the vlc-devel
mailing list