From: Laurent Aimar Date: Mon, 1 Feb 2010 20:21:11 +0000 (+0100) Subject: Added input_GetPcrSystem/input_ModifyPcrSystem. X-Git-Tag: 1.1.0-ff~535 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=709d0455ceb4aab2f7a059f9a7a96f2eea9c5636;p=vlc Added input_GetPcrSystem/input_ModifyPcrSystem. --- diff --git a/include/vlc_input.h b/include/vlc_input.h index a0968e4852..6a357cd17b 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -512,6 +512,10 @@ enum input_query_e INPUT_GET_AOUT, /* arg1=aout_instance_t ** res=can fail */ INPUT_GET_VOUTS, /* arg1=vout_thread_t ***, int * res=can fail */ INPUT_GET_ES_OBJECTS, /* arg1=int id, vlc_object_t **dec, vout_thread_t **, aout_instance_t ** */ + + /* External clock managments */ + INPUT_GET_PCR_SYSTEM, /* arg1=mtime_t * res=can fail */ + INPUT_MODIFY_PCR_SYSTEM,/* arg1=int absolute, arg2=mtime_t res=can fail */ }; /** @}*/ @@ -613,6 +617,21 @@ static inline int input_GetEsObjects( input_thread_t *p_input, int i_id, pp_decoder, pp_vout, pp_aout ); } +/** + * \see input_clock_GetSystemOrigin + */ +static inline int input_GetPcrSystem( input_thread_t *p_input, mtime_t *pi_system ) +{ + return input_Control( p_input, INPUT_GET_PCR_SYSTEM, pi_system ); +} +/** + * \see input_clock_ChangeSystemOrigin + */ +static inline int input_ModifyPcrSystem( input_thread_t *p_input, bool b_absolute, mtime_t i_system ) +{ + return input_Control( p_input, INPUT_MODIFY_PCR_SYSTEM, b_absolute, i_system ); +} + /* */ typedef struct input_clock_t input_clock_t; VLC_EXPORT( decoder_t *, input_DecoderNew, ( input_thread_t *, es_format_t *, input_clock_t *, sout_instance_t * ) ); diff --git a/src/input/control.c b/src/input/control.c index 3fa280bc1e..85ffb650b0 100644 --- a/src/input/control.c +++ b/src/input/control.c @@ -449,6 +449,19 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) pp_decoder, pp_vout, pp_aout ); } + case INPUT_GET_PCR_SYSTEM: + { + mtime_t *pi_system = va_arg( args, mtime_t * ); + return es_out_ControlGetPcrSystem( p_input->p->p_es_out_display, pi_system ); + } + + case INPUT_MODIFY_PCR_SYSTEM: + { + bool b_absolute = va_arg( args, int ); + mtime_t i_system = va_arg( args, mtime_t ); + return es_out_ControlModifyPcrSystem( p_input->p->p_es_out_display, b_absolute, i_system ); + } + default: msg_Err( p_input, "unknown query in input_vaControl" ); return VLC_EGENERIC;