[vlc-devel] [PATCH] Added functions to get/set the media player audio delay.
Mark Lee
mark.lee at capricasoftware.co.uk
Sun Jul 11 07:34:00 CEST 2010
I will submit a new patch to address your comments.
Is the implementation itself ok or did I miss something?
2010/7/10 Rémi Denis-Courmont <remi at remlab.net>:
> Comments inline.
>
> Le samedi 10 juillet 2010 20:32:42 Mark Lee, vous avez écrit :
>> ---
>> include/vlc/libvlc_media_player.h | 16 ++++++++++++++++
>> src/control/media_player.c | 28 ++++++++++++++++++++++++++++
>> src/libvlc.sym | 2 ++
>> 3 files changed, 46 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/vlc/libvlc_media_player.h
>> b/include/vlc/libvlc_media_player.h index 33654a9..9b7bc18 100644
>> --- a/include/vlc/libvlc_media_player.h
>> +++ b/include/vlc/libvlc_media_player.h
>> @@ -552,6 +552,22 @@ VLC_PUBLIC_API int libvlc_media_player_can_pause(
>> libvlc_media_player_t *p_mi ); */
>> VLC_PUBLIC_API void libvlc_media_player_next_frame( libvlc_media_player_t
>> *p_mi );
>>
>> +/**
>> + * Get current audio delay.
>> + *
>> + * \param p_mi media player
>> + * \return the audio delay (microseconds)
>
> You should probably add a \version Doxygen stanza.
>
>> + */
>> +VLC_PUBLIC_API int64_t libvlc_media_player_get_audio_delay(
>> libvlc_media_player_t *p_mi );
>
> I think this belongs in the Audio functions group rather than plain Media
> Player.
>
>> +
>> +/**
>> + * Set current audio delay.
>> + *
>> + * \param p_mi media player
>> + * \param i_delay the audio delay (microseconds)
>> + * \return 0 on success, -1 on error
>> + */
>> +VLC_PUBLIC_API int libvlc_media_player_set_audio_delay(
>> libvlc_media_player_t *p_mi, int64_t i_delay );
>
> Same comments here.
>
>> /**
>> diff --git a/src/control/media_player.c b/src/control/media_player.c
>> index cf54fcd..bfe8ec3 100644
>> --- a/src/control/media_player.c
>> +++ b/src/control/media_player.c
>> @@ -1288,3 +1288,31 @@ void libvlc_media_player_next_frame(
>> libvlc_media_player_t *p_mi ) vlc_object_release( p_input_thread );
>> }
>> }
>> +
>> +int64_t libvlc_media_player_get_audio_delay( libvlc_media_player_t *p_mi )
>> +{
>> + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi );
>> + int64_t val = 0;
>> + if( p_input_thread != NULL )
>> + {
>> + val = var_GetTime( p_input_thread, "audio-delay" );
>> + vlc_object_release( p_input_thread );
>> + }
>> + return val;
>> +}
>> +
>> +int libvlc_media_player_set_audio_delay( libvlc_media_player_t *p_mi,
>> int64_t i_delay ) +{
>> + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi );
>> + int ret = 0;
>> + if( p_input_thread != NULL )
>> + {
>> + var_SetTime( p_input_thread, "audio-delay", i_delay );
>> + vlc_object_release( p_input_thread );
>> + }
>> + else
>> + {
>> + ret = -1;
>> + }
>> + return ret;
>> +}
>
> At the very least, it should be noted in the documentation that the delay will
> be reset to zero at the next media item. Alternatively, the delay could be
> preserved with some extra hackery, but I am not sure if it makes much sense.
>
> --
> Rémi Denis-Courmont
> http://www.remlab.net/
> http://fi.linkedin.com/in/remidenis
More information about the vlc-devel
mailing list