[vlc-devel] [PATCH] nvdec: release used video blocks

Thomas Guillem thomas at gllm.fr
Thu Mar 12 16:35:01 CET 2020


So, nvdec was leaking every input blocks then ?

On Thu, Mar 12, 2020, at 15:31, quentin.chateau at deepskycorp.com wrote:
> From: Quentin Chateau <quentin.chateau at deepskycorp.com>
> 
> ---
>  modules/hw/nvdec/nvdec.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c
> index e5cda56ef3..162330788f 100644
> --- a/modules/hw/nvdec/nvdec.c
> +++ b/modules/hw/nvdec/nvdec.c
> @@ -549,7 +549,9 @@ static int CuvidPushBlock(decoder_t *p_dec, block_t 
> *p_block)
>      cupacket.payload = p_block->p_buffer;
>      cupacket.timestamp = p_block->i_pts == VLC_TICK_INVALID ? 
> p_block->i_dts : p_block->i_pts;
>  
> -    return CALL_CUVID(cuvidParseVideoData, p_sys->cuparser, &cupacket);
> +    int ret = CALL_CUVID(cuvidParseVideoData, p_sys->cuparser, &cupacket);
> +    block_Release(p_block);
> +    return ret;
>  }
>  
>  static block_t * HXXXProcessBlock(decoder_t *p_dec, block_t *p_block)
> @@ -612,8 +614,12 @@ static int DecodeBlock(decoder_t *p_dec, block_t *p_block)
>  {
>      nvdec_ctx_t *p_sys = p_dec->p_sys;
>      // If HandleVideoSequence fails, we give up decoding
> -    if (!p_sys->b_nvparser_success)
> +    if (!p_sys->b_nvparser_success) {
> +        if (p_block != NULL) {
> +            block_Release(p_block);
> +        }
>          return VLCDEC_ECRITICAL;
> +    }
>      if (p_block == NULL) {
>          // Flush stream
>          return CuvidPushEOS(p_dec);
> -- 
> 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