[vlc-devel] Position updates in the input thread
fenrir at elivagar.org
Thu Apr 21 18:52:32 CEST 2011
On Thu, Apr 21, 2011 at 06:05:56PM +0200, Ludovic Fauvet wrote:
> I noticed that during a fast-forward (repeated call to var_SetTime
> with a time-offset) the interface was not notified of position changes
> because the event was blocked while buffering.
> The attached patch is an attempt to address this issue without
> flooding the interface with updates.
> I had different choices in mind:
> - Ask the current position at regular interval (during a fast-forward)
> inside the Qt4 interface
> - Send updates every time (even when the input was buffering)
> - Add a flag inside the input thread to allow updates to be sent when
> the request was made using a time-offset
> I chose the last option but this might not be the best choice... so
> comments and suggestions are welcome :-)
> diff --git a/src/input/es_out.c b/src/input/es_out.c
> index a6e3fef..8e08fb8 100644
> --- a/src/input/es_out.c
> +++ b/src/input/es_out.c
> @@ -2611,8 +2611,9 @@ static int EsOutControlLocked( es_out_t *out, int i_query, va_list args )
> input_SendEventLength( p_sys->p_input, i_length );
> - if( !p_sys->b_buffering )
> + if( !p_sys->b_buffering || p_sys->p_input->p->b_fast_jump )
This is wrong, the test should not be by-passed.
I haven't looked at it yet, but it is probable the issued comes from what the variable
callback do on time offset...
More information about the vlc-devel