vlc | branch: master | Thomas Guillem <[email protected]> | Tue Jun 7 17:19:45 2016 +0200| [09e53a474854bee7e3bac05bf186f7d0fd6034a3] | committer: Thomas Guillem
input/input: only select the first slave of each type > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=09e53a474854bee7e3bac05bf186f7d0fd6034a3 --- src/input/input.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/input/input.c b/src/input/input.c index 1fa356f..7dce0b8 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -1111,6 +1111,9 @@ static void LoadSlaves( input_thread_t *p_input ) SlaveCompare ); /* add all detected slaves */ + bool p_forced[2] = {}; + static_assert( SLAVE_TYPE_AUDIO <= 1 && SLAVE_TYPE_SPU <= 1, + "slave type size mismatch"); for( int i = 0; i < i_slaves && pp_slaves[i] != NULL; i++ ) { input_item_slave_t *p_slave = pp_slaves[i]; @@ -1118,13 +1121,15 @@ static void LoadSlaves( input_thread_t *p_input ) unsigned i_flags = p_slave->i_priority != SLAVE_PRIORITY_USER ? SLAVE_ADD_CANFAIL : SLAVE_ADD_NOFLAG; - if( p_slave->b_forced || p_slave->i_priority == SLAVE_PRIORITY_USER ) + if( !p_forced[p_slave->i_type] + && ( p_slave->b_forced || p_slave->i_priority == SLAVE_PRIORITY_USER ) ) i_flags |= SLAVE_ADD_FORCED; if( input_SlaveSourceAdd( p_input, p_slave->i_type, p_slave->psz_uri, i_flags ) == VLC_SUCCESS ) { input_item_AddSlave( p_input->p->p_item, p_slave ); + p_forced[p_slave->i_type] = true; } else input_item_slave_Delete( p_slave ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
