[vlc-devel] [PATCH 2/3] input: return a status from input_ControlPush
Thomas Guillem
thomas at gllm.fr
Mon Aug 26 15:10:28 CEST 2019
---
src/input/input.c | 9 ++++++---
src/input/input_internal.h | 14 +++++++-------
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/input/input.c b/src/input/input.c
index 2473cae292..02513ed21b 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -1412,8 +1412,8 @@ static void End( input_thread_t * p_input )
/*****************************************************************************
* Control
*****************************************************************************/
-void input_ControlPush( input_thread_t *p_input,
- int i_type, const input_control_param_t *p_param )
+int input_ControlPush( input_thread_t *p_input,
+ int i_type, const input_control_param_t *p_param )
{
input_thread_private_t *sys = input_priv(p_input);
@@ -1428,6 +1428,8 @@ void input_ControlPush( input_thread_t *p_input,
i_type );
if( p_param )
ControlRelease( i_type, p_param );
+ vlc_mutex_unlock( &sys->lock_control );
+ return VLC_EGENERIC;
}
else
{
@@ -1441,8 +1443,9 @@ void input_ControlPush( input_thread_t *p_input,
sys->control[sys->i_control++] = c;
vlc_cond_signal( &sys->wait_control );
+ vlc_mutex_unlock( &sys->lock_control );
+ return VLC_SUCCESS;
}
- vlc_mutex_unlock( &sys->lock_control );
}
static size_t ControlGetReducedIndexLocked( input_thread_t *p_input )
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index 67ee8a03ae..688fd56b19 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -587,30 +587,30 @@ enum input_control_e
/* Internal helpers */
-void input_ControlPush( input_thread_t *, int, const input_control_param_t * );
+int input_ControlPush( input_thread_t *, int, const input_control_param_t * );
/* XXX for string value you have to allocate it before calling
* input_ControlPushHelper
*/
-static inline void input_ControlPushHelper( input_thread_t *p_input, int i_type, vlc_value_t *val )
+static inline int input_ControlPushHelper( input_thread_t *p_input, int i_type, vlc_value_t *val )
{
if( val != NULL )
{
input_control_param_t param = { .val = *val };
- input_ControlPush( p_input, i_type, ¶m );
+ return input_ControlPush( p_input, i_type, ¶m );
}
else
{
- input_ControlPush( p_input, i_type, NULL );
+ return input_ControlPush( p_input, i_type, NULL );
}
}
-static inline void input_ControlPushEsHelper( input_thread_t *p_input, int i_type,
- vlc_es_id_t *id )
+static inline int input_ControlPushEsHelper( input_thread_t *p_input, int i_type,
+ vlc_es_id_t *id )
{
assert( i_type == INPUT_CONTROL_SET_ES || i_type == INPUT_CONTROL_UNSET_ES ||
i_type == INPUT_CONTROL_RESTART_ES );
- input_ControlPush( p_input, i_type, &(input_control_param_t) {
+ return input_ControlPush( p_input, i_type, &(input_control_param_t) {
.id = vlc_es_id_Hold( id ),
} );
}
--
2.20.1
More information about the vlc-devel
mailing list