From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 62B6C4CB15 for ; Thu, 7 Aug 2025 23:21:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 90E0F68CBC9; Fri, 8 Aug 2025 02:21:10 +0300 (EEST) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id BA4C068C397 for ; Fri, 8 Aug 2025 02:21:03 +0300 (EEST) Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-3323afe4804so13367941fa.0 for ; Thu, 07 Aug 2025 16:21:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754608861; x=1755213661; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=57QkCKTZ80gkq9F1Vxv/0Ff01lzN/c+oJ1R8KvLpKd8=; b=LaGZKY8pSOpWTOnvgtfkEveL5Pj8sQHMTMoQ8as+G9WBMMFxg4YU8prBNzNoeRp1XA a6b5bUcsWSD5+scF1xETNYK7t3IiXr5mEt/PzsL7Xf2Lk/wWkiqOAhZk5TeZplieHm9F w8u6WdMQLs1Gg9F/Wqd3VX/EKnzZfBJ33aprOqFjbK0aDu71NytP8vQwOB5pIm9jYJyL q57RJdyhTqQ1oar4N70ZPBMcj88hJPoHSl4Xte37vC5vDncTfRzhg1BaUaw350AyfDhV bA/+pAlajGhncmJwAQauJPxkDkEONLgVuMmBD5V74/E2jG/yuYlsv0gPleAzGvFjPVHq Hguw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754608861; x=1755213661; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=57QkCKTZ80gkq9F1Vxv/0Ff01lzN/c+oJ1R8KvLpKd8=; b=oYdplX+6s94OYaxDkwa2Il3ciKGdm4HSQWqtotrLS6eheAPuPTtnEMWcLW7PylT6V8 B2NyfKiRlMML7NIYfo5Nxs43OGsBC9FuuAZ84ZhDz0l4ZZ2cPb3Yg8prcO3n0+Js3cL/ 1b7xQGiDF/hrG8mrDpIzNlydK5kEj01BjXgIBUbg1sxyYmwtaykemAvq2RTSUQeg/Lst BYwd38XhzDqP9BMbRbu6+sh7xKzJQOJBjUrInzNdcGqWcN8QliexzCZoP4Ue9kgHZM84 TERXJT84mTWN+rCxED27RcSIvR3lLjJubG6ZukR8wEJPeoQM97pRts4wX/cd70hD5HPL MwVQ== X-Gm-Message-State: AOJu0YwkoYI29+acbhjKej/vZyk903rNgtF/0ZgmjNz4qQA2++j09+x9 V3V27yvUBbJgLOH0iOg+mw3ZwNZFG89u5BfRYEJhc8N28heeALEtdqKY88NN1741Oe1HpLtf/6a 1qTthxjdDKES6GghfMFj3d6RPhg52PGJvOA== X-Gm-Gg: ASbGncsaPWD+iV7BsRIsGN2aSgLbzIWGga/37wrh3U4L5qPy78H3EUKOO2DseOHqCsc wQe1Nurzl9Pyytw4Sl2au5cUaOy9vIAgnhcyWYIL3TgCSOve+sWOzaP8uetzVY0fCi8WdxuiNjP JApLbZqbBmDp0ErLXjaSEkryUO81rWxlKluP1Hatw1bZWnmSHZQUsQyvKYyW8uQV1tTVaV69/jo RdubQ== X-Google-Smtp-Source: AGHT+IFcqcFM9FOmEPLid42mfDLA2P7wTLEproEEC429Pj8RLMnvzwouJ+UEpkYxlBZFOU1Sp/ooTKmOgR4dViFdFKs= X-Received: by 2002:a2e:b891:0:b0:32b:8778:6f0a with SMTP id 38308e7fff4ca-333a221368fmr1454811fa.27.1754608861265; Thu, 07 Aug 2025 16:21:01 -0700 (PDT) MIME-Version: 1.0 References: <20250807195800.77462-1-jestrada.list@gmail.com> <3dfd6642-9f52-4808-a25c-60807ddb18ef@gmail.com> In-Reply-To: <3dfd6642-9f52-4808-a25c-60807ddb18ef@gmail.com> From: Jorge Estrada Date: Thu, 7 Aug 2025 16:21:08 -0700 X-Gm-Features: Ac12FXzHl_j6C_50b9Jjg3rwOXmF9GANF6_4myRPnGgudTXzqolZXYnd1Y64gnY Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000e55fe4063bceb52f" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] avfilter/vf_alphamerge: use refcounting for planar formats X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --000000000000e55fe4063bceb52f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Addressed and attached the updated patch. I sent my previous email incorrectly. My bad. On Thu, Aug 7, 2025 at 1:13=E2=80=AFPM James Almer wrot= e: > On 8/7/2025 4:58 PM, Jorge Estrada wrote: > > Use reference plane when handling planar formats. Should address > > https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/20153 > > > > Example: > > ffmpeg -f lavfi -i "color=3Dred:s=3D640x480:d=3D5,format=3Dyuva420p" \ > > -f lavfi -i > "color=3Dblack:s=3D640x480:d=3D5,format=3Dyuv420p,geq=3Dlum=3D'255*gt(150= ,hypot(X-W/2,Y-H/2))':a=3D0" > \ > > -f lavfi -i "color=3Dblue:s=3D640x480:d=3D5,format=3Dyuv420p" \ > > -filter_complex > "[0:v][1:v]alphamerge[merged_with_alpha];[2:v][merged_with_alpha]overlay"= \ > > -c:v libx264 \ > > -y out.mp4 > > --- > > libavfilter/vf_alphamerge.c | 26 +++++++++++++++++++------- > > 1 file changed, 19 insertions(+), 7 deletions(-) > > > > diff --git a/libavfilter/vf_alphamerge.c b/libavfilter/vf_alphamerge.c > > index f5779484a9..9f53806537 100644 > > --- a/libavfilter/vf_alphamerge.c > > +++ b/libavfilter/vf_alphamerge.c > > @@ -28,12 +28,12 @@ > > #include "libavutil/imgutils.h" > > #include "libavutil/opt.h" > > #include "libavutil/pixfmt.h" > > +#include "libavutil/frame.h" > > #include "avfilter.h" > > #include "drawutils.h" > > #include "formats.h" > > #include "filters.h" > > #include "framesync.h" > > -#include "video.h" > > > > enum { Y, U, V, A }; > > > > @@ -78,11 +78,23 @@ static int do_alphamerge(FFFrameSync *fs) > > } > > } > > } else { > > - const int main_linesize =3D main_buf->linesize[A]; > > - const int alpha_linesize =3D alpha_buf->linesize[Y]; > > - av_image_copy_plane(main_buf->data[A], main_linesize, > > - alpha_buf->data[Y], alpha_linesize, > > - FFMIN(main_linesize, alpha_linesize), > alpha_buf->height); > > + AVBufferRef *alpha_plane_buf =3D > av_frame_get_plane_buffer(alpha_buf, Y); > > + > > + if (!alpha_plane_buf) { > > + av_log(ctx, AV_LOG_ERROR, "Could not get buffer for alpha > plane.\n"); > > + return AVERROR(EINVAL); > > + } > > + > > > + av_buffer_unref(&main_buf->buf[A]); > > + > > + main_buf->buf[A] =3D av_buffer_ref(alpha_plane_buf); > > av_buffer_replace() > > > + if (!main_buf->buf[A]) { > > + av_log(ctx, AV_LOG_ERROR, "Failed to reference alpha plane > buffer.\n"); > > + return AVERROR(ENOMEM); > > + } > > + > > + main_buf->data[A] =3D alpha_buf->data[Y]; > > + main_buf->linesize[A] =3D alpha_buf->linesize[Y]; > > } > > > > return ff_filter_frame(ctx->outputs[0], main_buf); > > @@ -212,4 +224,4 @@ const FFFilter ff_vf_alphamerge =3D { > > FILTER_QUERY_FUNC2(query_formats), > > .uninit =3D uninit, > > .activate =3D activate, > > -}; > > +}; > > \ No newline at end of file > Please fix this. > > _______________________________________________ > 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". > --000000000000e55fe4063bceb52f Content-Type: application/octet-stream; name="0001-avfilter-vf_alphamerge-use-refcounting-for-planar-fo.patch" Content-Disposition: attachment; filename="0001-avfilter-vf_alphamerge-use-refcounting-for-planar-fo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me20t4wt0 RnJvbSBiNDEzYjdmOGE5NjZjMmNmNzdjODcwM2I1ZjY4ZThlYTQ5MmQ5MzBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3JnZSBFc3RyYWRhIDxqZXN0cmFkYS5saXN0QGdtYWlsLmNv bT4KRGF0ZTogVGh1LCA3IEF1ZyAyMDI1IDEyOjU1OjE5IC0wNzAwClN1YmplY3Q6IHVzZSBhdl9i dWZmZXJfcmVwbGFjZQoKQWRkcmVzc2VkLiBVc2VzIGF2X2J1ZmZlcl9yZXBsYWNlIG5vdwoKLS0t CiBsaWJhdmZpbHRlci92Zl9hbHBoYW1lcmdlLmMgfCAyNCArKysrKysrKysrKysrKysrKy0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2FscGhhbWVyZ2UuYyBiL2xpYmF2ZmlsdGVyL3ZmX2Fs cGhhbWVyZ2UuYwppbmRleCBmNTc3OTQ4NGE5Li42OWMwZGQwNGVhIDEwMDY0NAotLS0gYS9saWJh dmZpbHRlci92Zl9hbHBoYW1lcmdlLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfYWxwaGFtZXJnZS5j CkBAIC0yOCwxMiArMjgsMTIgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKICNp bmNsdWRlICJsaWJhdnV0aWwvb3B0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3BpeGZtdC5oIgor I2luY2x1ZGUgImxpYmF2dXRpbC9mcmFtZS5oIgogI2luY2x1ZGUgImF2ZmlsdGVyLmgiCiAjaW5j bHVkZSAiZHJhd3V0aWxzLmgiCiAjaW5jbHVkZSAiZm9ybWF0cy5oIgogI2luY2x1ZGUgImZpbHRl cnMuaCIKICNpbmNsdWRlICJmcmFtZXN5bmMuaCIKLSNpbmNsdWRlICJ2aWRlby5oIgogCiBlbnVt IHsgWSwgVSwgViwgQSB9OwogCkBAIC03OCwxMSArNzgsMjEgQEAgc3RhdGljIGludCBkb19hbHBo YW1lcmdlKEZGRnJhbWVTeW5jICpmcykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g ZWxzZSB7Ci0gICAgICAgIGNvbnN0IGludCBtYWluX2xpbmVzaXplID0gbWFpbl9idWYtPmxpbmVz aXplW0FdOwotICAgICAgICBjb25zdCBpbnQgYWxwaGFfbGluZXNpemUgPSBhbHBoYV9idWYtPmxp bmVzaXplW1ldOwotICAgICAgICBhdl9pbWFnZV9jb3B5X3BsYW5lKG1haW5fYnVmLT5kYXRhW0Fd LCBtYWluX2xpbmVzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhX2J1Zi0+ ZGF0YVtZXSwgYWxwaGFfbGluZXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZN SU4obWFpbl9saW5lc2l6ZSwgYWxwaGFfbGluZXNpemUpLCBhbHBoYV9idWYtPmhlaWdodCk7Cisg ICAgICAgIEFWQnVmZmVyUmVmICphbHBoYV9wbGFuZV9idWYgPSBhdl9mcmFtZV9nZXRfcGxhbmVf YnVmZmVyKGFscGhhX2J1ZiwgWSk7CisKKyAgICAgICAgaWYgKCFhbHBoYV9wbGFuZV9idWYpIHsK KyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBnZXQgYnVm ZmVyIGZvciBhbHBoYSBwbGFuZS5cbiIpOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlO VkFMKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IGF2X2J1ZmZlcl9yZXBsYWNlKCZtYWlu X2J1Zi0+YnVmW0FdLCBhbHBoYV9wbGFuZV9idWYpOworICAgICAgICBpZiAocmV0IDwgMCkgewor ICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHJlcGxhY2Ug YWxwaGEgcGxhbmUgYnVmZmVyLlxuIik7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAg ICB9CisKKyAgICAgICAgbWFpbl9idWYtPmRhdGFbQV0gPSBhbHBoYV9idWYtPmRhdGFbWV07Cisg ICAgICAgIG1haW5fYnVmLT5saW5lc2l6ZVtBXSA9IGFscGhhX2J1Zi0+bGluZXNpemVbWV07CiAg ICAgfQogCiAgICAgcmV0dXJuIGZmX2ZpbHRlcl9mcmFtZShjdHgtPm91dHB1dHNbMF0sIG1haW5f YnVmKTsKQEAgLTIxMiw0ICsyMjIsNCBAQCBjb25zdCBGRkZpbHRlciBmZl92Zl9hbHBoYW1lcmdl ID0gewogICAgIEZJTFRFUl9RVUVSWV9GVU5DMihxdWVyeV9mb3JtYXRzKSwKICAgICAudW5pbml0 ICAgICAgICAgPSB1bmluaXQsCiAgICAgLmFjdGl2YXRlICAgICAgID0gYWN0aXZhdGUsCi19Owor fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM0LjEKCg== --000000000000e55fe4063bceb52f Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --000000000000e55fe4063bceb52f--