vlc | branch: master | Thomas Guillem <[email protected]> | Wed Nov 14 17:47:07 2018 +0100| [7ba3dd8c43babcf2ee8809c3aa0dba644f723cb9] | committer: Thomas Guillem
input: add controls to cycle through ES tracks cf. previous commit. This will be used by vlc_player_t. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7ba3dd8c43babcf2ee8809c3aa0dba644f723cb9 --- src/input/input.c | 12 ++++++++++++ src/input/input_internal.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/input/input.c b/src/input/input.c index 3f173a9b36..5c5830e9ab 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -2102,6 +2102,18 @@ static bool Control( input_thread_t *p_input, demux_Control( input_priv(p_input)->master->p_demux, DEMUX_SET_ES, vlc_es_id_GetInputId( param.id ) ); break; + case INPUT_CONTROL_SET_ES_NEXT: + case INPUT_CONTROL_SET_ES_PREV: + { + vlc_es_id_t *id; + int query = i_type == INPUT_CONTROL_SET_ES_NEXT ? ES_OUT_SET_ES_NEXT + : ES_OUT_SET_ES_PREV; + if( es_out_Control( input_priv(p_input)->p_es_out_display, query, + param.cat, &id ) == VLC_SUCCESS && id != NULL ) + demux_Control( input_priv(p_input)->master->p_demux, DEMUX_SET_ES, + vlc_es_id_GetInputId( id ) ); + break; + } case INPUT_CONTROL_UNSET_ES: es_out_Control( input_priv(p_input)->p_es_out_display, ES_OUT_UNSET_ES, param.id ); diff --git a/src/input/input_internal.h b/src/input/input_internal.h index 82eb5f64bd..311300faa1 100644 --- a/src/input/input_internal.h +++ b/src/input/input_internal.h @@ -85,6 +85,7 @@ typedef union vlc_value_t val; vlc_viewpoint_t viewpoint; vlc_es_id_t *id; + enum es_format_category_e cat; struct { bool b_fast_seek; vlc_tick_t i_val; @@ -247,6 +248,8 @@ enum input_control_e INPUT_CONTROL_RESTART_ES_BY_ID, INPUT_CONTROL_SET_ES, + INPUT_CONTROL_SET_ES_NEXT, + INPUT_CONTROL_SET_ES_PREV, INPUT_CONTROL_UNSET_ES, INPUT_CONTROL_RESTART_ES, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
