[vlc-devel] [PATCH 2/8] decoder: simplify how we report lost audio blocks

Thomas Guillem thomas at gllm.fr
Tue Aug 27 09:58:34 CEST 2019



On Tue, Aug 27, 2019, at 07:28, Steve Lhomme wrote:
> No need for pointers.
> ---
>  src/input/decoder.c | 25 ++++++++++---------------
>  1 file changed, 10 insertions(+), 15 deletions(-)
> 
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index d05351fa5c..5935b284c6 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -1126,8 +1126,7 @@ static void DecoderQueueThumbnail( decoder_t 
> *p_dec, picture_t *p_pic )
>  
>  }
>  
> -static void DecoderPlayAudio( decoder_t *p_dec, block_t *p_audio,
> -                             unsigned *restrict pi_lost_sum )

Note that you are keeping decoder_t* here.

> +static bool DecoderPlayAudio( decoder_t *p_dec, block_t *p_audio )

Same than 01. I would prefer a int.

>  {
>      struct decoder_owner *p_owner = dec_get_owner( p_dec );
>      bool prerolled;
> @@ -1139,7 +1138,7 @@ static void DecoderPlayAudio( decoder_t *p_dec, 
> block_t *p_audio,
>      {
>          vlc_mutex_unlock( &p_owner->lock );
>          block_Release( p_audio );
> -        return;
> +        return false;
>      }
>  
>      prerolled = p_owner->i_preroll_end > (vlc_tick_t)INT64_MIN;
> @@ -1158,9 +1157,8 @@ static void DecoderPlayAudio( decoder_t *p_dec, 
> block_t *p_audio,
>      if( p_audio->i_pts == VLC_TICK_INVALID ) // FIXME 
> --VLC_TICK_INVALID verify audio_output/*
>      {
>          msg_Warn( p_dec, "non-dated audio buffer received" );
> -        *pi_lost_sum += 1;
>          block_Release( p_audio );
> -        return;
> +        return true;
>      }
>  
>      /* */
> @@ -1192,14 +1190,12 @@ static void DecoderPlayAudio( decoder_t *p_dec, 
> block_t *p_audio,
>               * previous (failing) aout but will try to create a new 
> one. */
>              atomic_store( &p_owner->reload, RELOAD_DECODER_AOUT );
>          }
> +        return false;
>      }
> -    else
> -    {
> -        msg_Dbg( p_dec, "discarded audio buffer" );
> -        *pi_lost_sum += 1;
> -        block_Release( p_audio );
> -    }
> -    return;
> +
> +    msg_Dbg( p_dec, "discarded audio buffer" );
> +    block_Release( p_audio );
> +    return true;
>  }
>  
>  static void DecoderUpdateStatAudio( struct decoder_owner *p_owner,
> @@ -1220,12 +1216,11 @@ static void DecoderUpdateStatAudio( struct 
> decoder_owner *p_owner,
>  
>  static void DecoderQueueAudio( decoder_t *p_dec, block_t *p_aout_buf )
>  {
> -    unsigned lost = 0;
>      struct decoder_owner *p_owner = dec_get_owner( p_dec );
>  
> -    DecoderPlayAudio( p_dec, p_aout_buf, &lost );
> +    bool lost = DecoderPlayAudio( p_dec, p_aout_buf );
>  
> -    p_owner->pf_update_stat( p_owner, 1, lost );
> +    p_owner->pf_update_stat( p_owner, 1, lost ? 1 : 0 );
>  }
>  
>  static void DecoderPlaySpu( decoder_t *p_dec, subpicture_t *p_subpic )
> -- 
> 2.17.1
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list