From: averne <averne381-at-gmail.com@ffmpeg.org> To: ffmpeg-devel@ffmpeg.org Cc: averne <averne381@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] vulkan/ffv1dec: fix FFVkSPIRVCompiler leak Date: Tue, 10 Jun 2025 20:58:57 +0200 Message-ID: <20250610-vk-ffv1-leaks-v1-3-6bd045fc51e2@gmail.com> (raw) In-Reply-To: <20250610-vk-ffv1-leaks-v1-0-6bd045fc51e2@gmail.com> --- libavcodec/vulkan_ffv1.c | 58 +++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/libavcodec/vulkan_ffv1.c b/libavcodec/vulkan_ffv1.c index 8329b5d7dfad18de96884ea2c1f6f186682e430c..b02bc71683fd7d06dad3f4cf667ee3e8c57f3c83 100644 --- a/libavcodec/vulkan_ffv1.c +++ b/libavcodec/vulkan_ffv1.c @@ -1033,23 +1033,17 @@ static int vk_decode_ffv1_init(AVCodecContext *avctx) /* Intermediate frame pool for RCT */ for (int i = 0; i < 2; i++) { /* 16/32 bit */ - err = init_indirect(avctx, &ctx->s, &fv->intermediate_frames_ref[i], - i ? AV_PIX_FMT_GBRAP32 : AV_PIX_FMT_GBRAP16); - if (err < 0) - return err; + RET(init_indirect(avctx, &ctx->s, &fv->intermediate_frames_ref[i], + i ? AV_PIX_FMT_GBRAP32 : AV_PIX_FMT_GBRAP16)); } /* Setup shader */ - err = init_setup_shader(f, &ctx->s, &ctx->exec_pool, spv, &fv->setup); - if (err < 0) - return err; + RET(init_setup_shader(f, &ctx->s, &ctx->exec_pool, spv, &fv->setup)); /* Reset shaders */ for (int i = 0; i < 2; i++) { /* AC/Golomb */ - err = init_reset_shader(f, &ctx->s, &ctx->exec_pool, - spv, &fv->reset[i], !i ? AC_RANGE_CUSTOM_TAB : 0); - if (err < 0) - return err; + RET(init_reset_shader(f, &ctx->s, &ctx->exec_pool, + spv, &fv->reset[i], !i ? AC_RANGE_CUSTOM_TAB : 0)); } /* Decode shaders */ @@ -1059,39 +1053,31 @@ static int vk_decode_ffv1_init(AVCodecContext *avctx) AVHWFramesContext *dec_frames_ctx; dec_frames_ctx = k ? (AVHWFramesContext *)fv->intermediate_frames_ref[i]->data : (AVHWFramesContext *)avctx->hw_frames_ctx->data; - err = init_decode_shader(f, &ctx->s, &ctx->exec_pool, - spv, &fv->decode[i][j][k], - dec_frames_ctx, - (AVHWFramesContext *)avctx->hw_frames_ctx->data, - i, - !j ? AC_RANGE_CUSTOM_TAB : AC_GOLOMB_RICE, - k); - if (err < 0) - return err; + RET(init_decode_shader(f, &ctx->s, &ctx->exec_pool, + spv, &fv->decode[i][j][k], + dec_frames_ctx, + (AVHWFramesContext *)avctx->hw_frames_ctx->data, + i, + !j ? AC_RANGE_CUSTOM_TAB : AC_GOLOMB_RICE, + k)); } } } /* Range coder data */ - err = ff_ffv1_vk_init_state_transition_data(&ctx->s, - &fv->rangecoder_static_buf, - f); - if (err < 0) - return err; + RET(ff_ffv1_vk_init_state_transition_data(&ctx->s, + &fv->rangecoder_static_buf, + f)); /* Quantization table data */ - err = ff_ffv1_vk_init_quant_table_data(&ctx->s, - &fv->quant_buf, - f); - if (err < 0) - return err; + RET(ff_ffv1_vk_init_quant_table_data(&ctx->s, + &fv->quant_buf, + f)); /* CRC table buffer */ - err = ff_ffv1_vk_init_crc_table_data(&ctx->s, - &fv->crc_tab_buf, - f); - if (err < 0) - return err; + RET(ff_ffv1_vk_init_crc_table_data(&ctx->s, + &fv->crc_tab_buf, + f)); /* Update setup global descriptors */ RET(ff_vk_shader_update_desc_buffer(&ctx->s, &ctx->exec_pool.contexts[0], @@ -1124,6 +1110,8 @@ static int vk_decode_ffv1_init(AVCodecContext *avctx) } fail: + spv->uninit(&spv); + return err; } -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2025-06-10 18:59 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-06-10 18:58 [FFmpeg-devel] [PATCH 0/3] Fix memory leaks in vulkan ffv1 decoding averne 2025-06-10 18:58 ` [FFmpeg-devel] [PATCH 1/3] vulkan: fix leak in FFVkExecPool averne 2025-06-10 18:58 ` [FFmpeg-devel] [PATCH 2/3] vulkan/ffv1dec: fix leak in FFVulkanDecodeShared averne 2025-06-10 18:58 ` averne [this message] 2025-06-11 4:30 ` [FFmpeg-devel] [PATCH 0/3] Fix memory leaks in vulkan ffv1 decoding Lynne
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20250610-vk-ffv1-leaks-v1-3-6bd045fc51e2@gmail.com \ --to=averne381-at-gmail.com@ffmpeg.org \ --cc=averne381@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git