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 8E7754DE6C for ; Tue, 6 Jan 2026 14:16:58 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'dXhXh/W0GjM29YKGYOpsUf9OA8S63DqQh49WyOqpTyc=', expected b'T/ecxzsv54QnmT/I9Q8m5k3+Vx9XJYuing0K++sXicE=')) header.d=gmail.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1767709001; h=mime-version : references : in-reply-to : date : message-id : to : content-type : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : from; bh=Fp0d4kZq8shOrM7cbfvBOXhKDvi2kCkcd1HpwKxLLgo=; b=WYOr8Kn2DC6caQ4DHcwcfIsFFpdvDYhuHFlzSaYcIfyQEOEB3kwMkC9TudrW7+H5C9YAp wnDt1MQmoUYJAjTbh0GKLICzLwC3vT6fv6GremuaXr1GJ9TtDXzNPrlUkUPbZ488rlkiopR 7TbZHuYHG/vj6rPXCKms/ckRFQzbSh9jYLJIU46/ScyeBSUZzNlSqJNbdFldgIylU7HUzSU 6d0zOLrXLzSzQeoJHO1kcofw3gPAX80XuehFjnLe7UQoZhSCxLOweFWd760ik6X5Hf6f0Zx LculwsxznpJm4nDNzY8VZ+71FRaVWq62pGByKUS8fdqO1sVoYYoQBc7iow5g== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 8BE9D690D82; Tue, 6 Jan 2026 16:16:41 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1767708979; b=R7ZxFE/fldi5nzUqsIUXlVVYF6dntL+wz8wnXac9YHRFNgsll1DOPiwHwoJ1yO5aieOco LvGkH0XQnLD0O69FAg0RJi0WZjeD4BRr2cXgNJM2UYtwZAj0WeKkQos540iEqJDp/vCGLd9 vIM4J40uk3aSPfmV20EI485vE/OIs6MeJH6ZO6V55+3g5+Ca0tkJFpwPh4myvLG7vbCIP30 JB0xJUIr1d8kCz3hakh8QVzhkWcwx3A949i1mPkf+zPqWNsLEaG9GkVCWYpfKExoFicqaVD xANw41iAXTcfI4JPDvaNhF5uV2y/rTNTGiA1hi/D7wywBWLOrHjj+C2pdQdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1767708979; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=dXhXh/W0GjM29YKGYOpsUf9OA8S63DqQh49WyOqpTyc=; b=UwANiLJr/yBg8/bWcg/KUahFeLZl0mZ5tIAaQLLo/wh1tpnd51U6wgvwDvnHbyqPCllBN kfWJvIavRDOvLxJUXnLwv9zd6sVsMjs3ugAvckQ7jFe4JL21i7gH62FcS8oR1+iweb0P3mb QWd363ZGGQLUeJp0acsqWKjI6+SB9zjlqQzF1N714lngkjJCactdS383FiWPmXLLUTb5vra CArBJONnzGxOnvGGDMgDudYObEhfOIroQTXhjbueLC1Oi7PmWuUmh1xAP9mod+jJ+iUcb4z CZL4XWtYzBbwNcANtB/5A8oq5bCaoD9mq2OQRjc/2f0adUAA5ngy/ljqcKvA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=fail header.d=gmail.com; arc=none; dmarc=fail header.from=gmail.com policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=fail header.d=gmail.com; arc=none (Message is not ARC signed); dmarc=fail (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 96DF168FCCD for ; Tue, 6 Jan 2026 16:16:06 +0200 (EET) Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-8c168a9c132so18766985a.0 for ; Tue, 06 Jan 2026 06:16:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767708965; x=1768313765; 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=T/ecxzsv54QnmT/I9Q8m5k3+Vx9XJYuing0K++sXicE=; b=h34L795772q3IWnxRyMPiAE3OpETntm62TAQE5vKsGn1gCPTyGCAZmfbByIBeTJ0CI PIiMWO09q5VIFR6MS60xTkt53HLbhvOAWEKtmVZI1Vrz0ieyVfwGsxkvwlW2U3juMP1X iwrweo2XTBlNZ058Ud9M717SDPW+rnK/+4I/Zh5Deifdo/gG47silPatjzYghlkjijvI qyRPnQZSO7Nb7MMgAJwEe1DY0SeFapYlvnsk1IEUJDkGcSdMQEAJLyVbk+tgiGcdIOV0 1Kg9A/J4tuU2KfhND3qBaGcY2F6nHEvtQUY7dyuRPN8jF9kVaL1Qy+iEwMsfm/eW+Llb 2hNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767708965; x=1768313765; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=T/ecxzsv54QnmT/I9Q8m5k3+Vx9XJYuing0K++sXicE=; b=u7tBCNrNKAO8DVE3ZVycpopfY+9/6Vpyl2a6zJz2BfP4HkwYRVExeqeeSwMqkf9Dxz fXuDaddoSZqi+5iSJ2L1WN31XaET0Pr88a79l+6VBRjKzCnwirDvGm5vsAVL9fu9zdVk mhDJ2+GEALqMHt9EN67l6FXbC6tgBb2r4j4cP2I05S6hb3O+B6mS1x5hIXe9TzYjjdKk p/2qGBtDuGUNwg3w7BIOOY4NdQ+6ZVstmcZvsex+NZozu4Zb7csryZlRZ8phH0lovehy Qz1zr6zOr6ZNih6clpFFp4ee8BooqYleOBi0TizOD7TlCBbu/02NXWxUnCXdTE92ximy hHhA== X-Gm-Message-State: AOJu0YyhT39Jii4nV3+6piGtGl4EW0WPzpGAennvLgi8fjvRq+YZ9JH9 7q7QEl3jerJD5cR9QvXclEKKji6WGmhsNcQ/PdOl0aoPIBW8vhX9wOS6NBtwqLGcETKkMhtiSvX j7AZp/uBn+Syqv6PtLCPn3Bt5p4jxh8CCIZVtANYcag== X-Gm-Gg: AY/fxX6J6eFTh5BsGbDGrqDqSjFYN/0iHARiCh5cRm6jgwGq5uBiTaJ5s0yOq/2qlii 9A4G2a2RpT46QhyoK5iGbaMZffg9Vr35QjWT1/HAbf5qrulpN1d1nRJ/0OTH86OWcwzQGkMJGCP YYRoowRUcmm79KiKVjvk0TzlNdET/27eZ+6oDe8zvOSqMn0SiL8muXUygrRINByuMorV9DIt/99 h3S5xkxMrwx25DjdFQgX4mE98Jq0VF2xMDGlk3NDYzJi3R7f8wrubIbeH+hG1Wp8A/QyEFM X-Google-Smtp-Source: AGHT+IHKzlSXwEmQuuSUbiXa+zs95OV92e5Jy/wn8HOMx6nc8idudOvlP4TmfzLppne0BZ9zuemyncaWk9bj8uMD2IQ= X-Received: by 2002:ac8:5f47:0:b0:4ee:87e:dedf with SMTP id d75a77b69052e-4ffa77b723dmr34697581cf.8.1767708964518; Tue, 06 Jan 2026 06:16:04 -0800 (PST) MIME-Version: 1.0 References: <20260102112935.1842-1-hassanhanyrashad@gmail.com> In-Reply-To: Date: Tue, 6 Jan 2026 16:15:52 +0200 X-Gm-Features: AQt7F2pAfQSRbx6zPgswIk7oCiduEsttiHEUWAEmMWddTDLW7M1pgyVFFVy8eGE Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000e613cd0647b8d065" Message-ID-Hash: 23BWBXDCVXNBJUPY4PMNPN4U4PWY2TKF X-Message-ID-Hash: 23BWBXDCVXNBJUPY4PMNPN4U4PWY2TKF X-MailFrom: SRS0=sQvp=7L=gmail.com=hassanhanyrashad@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] Re: [PATCH] apng: fix rgb24 blending bug for non-alpha frames List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: hassan hany via ffmpeg-devel Cc: hassan hany Archived-At: List-Archive: List-Post: --000000000000e613cd0647b8d065 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Okay well I looked into it and it turns out that just disabling the dispose background operation for non alpha formats just fixes the issue and produces a 504kb APNG that is correct with no gray bars (currently ffmpeg produces a broken 503kb one) now reading the spec it does say " - APNG_DISPOSE_OP_BACKGROUND: the frame's region of the output buffer is to be cleared to fully transparent black before rendering the next frame= ." and we don't have transparency in non alpha formats On Mon, Jan 5, 2026 at 6:13=E2=80=AFPM Michael Niedermayer via ffmpeg-devel= < ffmpeg-devel@ffmpeg.org> wrote: > > On Fri, Jan 02, 2026 at 01:29:32PM +0200, Hassan Hany via ffmpeg-devel > wrote: > > From: "U-DESKTOP-70DF2U5\\GIGABYT" > > > > Delta frame optimization in APNG encoder caused gray bars for RGB24 > frames. > > This patch disables delta optimization for non-alpha frames, ensuring > correct > > rendering. Delta optimization is preserved for RGBA frames. > > > > Fixes: trac Ticket #9602 > > > > Signed-off-by: U-DESKTOP-70DF2U5\GIGABYT > > --- > > This bug caused visible artifacts such as gray bars in non-alpha > > pixel formats such as RGB24 or GRAY. This patch disabled delta frame > > optimization only for non alpha channels. the output size increased > > from 512kb to 1.1mb on the test sample but correctness was restored > > and the relevant APNG FATE tests were ran and no regression occurred > > libavcodec/pngenc.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c > > index e627bf83fc..3e46363b00 100644 > > --- a/libavcodec/pngenc.c > > +++ b/libavcodec/pngenc.c > > @@ -39,7 +39,7 @@ > > #include "libavutil/opt.h" > > #include "libavutil/rational.h" > > #include "libavutil/stereo3d.h" > > - > > +#include "libavutil/pixdesc.h" > > #include > > > > #define IOBUF_SIZE 4096 > > @@ -894,6 +894,19 @@ static int apng_encode_frame(AVCodecContext *avctx= , > const AVFrame *pict, > > best_fctl_chunk->blend_op =3D APNG_BLEND_OP_SOURCE; > > return encode_frame(avctx, pict); > > } > > + > > + const AVPixFmtDescriptor *desc =3D av_pix_fmt_desc_get(pict->forma= t); > > + > > + if(!(desc->flags & AV_PIX_FMT_FLAG_ALPHA)){ > > + best_fctl_chunk->width =3D pict->width; > > + best_fctl_chunk->height =3D pict->height; > > + best_fctl_chunk->x_offset =3D 0; > > + best_fctl_chunk->y_offset =3D 0; > > + best_fctl_chunk->blend_op =3D APNG_BLEND_OP_SOURCE; > > + best_fctl_chunk->dispose_op =3D APNG_DISPOSE_OP_NONE; > > + return encode_frame(avctx, pict); > > + } > > + > > This looks like a hack not like a bugfix > besides the indention is wrong and there are tabs > > thx > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > If the United States is serious about tackling the national security > threats > related to an insecure 5G network, it needs to rethink the extent to whic= h > it > values corporate profits and government espionage over security.-Bruce > Schneier > _______________________________________________ > ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org > To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org > --000000000000e613cd0647b8d065 Content-Type: application/octet-stream; name="0001-avcodec-apngenc-disable-background-disposal-for-non-.patch" Content-Disposition: attachment; filename="0001-avcodec-apngenc-disable-background-disposal-for-non-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk2nsfw00 RnJvbSBkZDE3ZjJkMTAzN2I1MjllZTY0ZjVhNjlhODhjOTBiNGYzNjAzM2Y1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiVS1ERVNLVE9QLTcwREYyVTVcXEdJR0FCWVQiIDxoYXNzYW5o YW55cmFzaGFkQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCA2IEphbiAyMDI2IDE1OjM5OjUxICswMjAw ClN1YmplY3Q6IFtQQVRDSF0gYXZjb2RlYy9hcG5nZW5jOiBkaXNhYmxlIGJhY2tncm91bmQgZGlz cG9zYWwgZm9yIG5vbi1hbHBoYQogZm9ybWF0cwoKLS0tCiBsaWJhdmNvZGVjL3BuZ2VuYy5jIHwg MTUgKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3BuZ2VuYy5jIGIvbGliYXZjb2Rl Yy9wbmdlbmMuYwppbmRleCAzZTQ2MzYzYjAwLi5hZGY1YzEwMDllIDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL3BuZ2VuYy5jCisrKyBiL2xpYmF2Y29kZWMvcG5nZW5jLmMKQEAgLTg5NywxNiArODk3 LDYgQEAgc3RhdGljIGludCBhcG5nX2VuY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgs IGNvbnN0IEFWRnJhbWUgKnBpY3QsCiAgICAgCiAgICAgY29uc3QgQVZQaXhGbXREZXNjcmlwdG9y ICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChwaWN0LT5mb3JtYXQpOwogICAgICAgICAKLSAg ICBpZighKGRlc2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX0FMUEhBKSl7Ci0gICAgICAgICBi ZXN0X2ZjdGxfY2h1bmstPndpZHRoID0gcGljdC0+d2lkdGg7Ci0gICAgICAgICBiZXN0X2ZjdGxf Y2h1bmstPmhlaWdodCA9IHBpY3QtPmhlaWdodDsKLSAgICAgICAgIGJlc3RfZmN0bF9jaHVuay0+ eF9vZmZzZXQgPSAwOwotICAgICAgICAgYmVzdF9mY3RsX2NodW5rLT55X29mZnNldCA9IDA7Ci0g ICAgICAgICBiZXN0X2ZjdGxfY2h1bmstPmJsZW5kX29wID0gQVBOR19CTEVORF9PUF9TT1VSQ0U7 Ci0gICAgICAgICBiZXN0X2ZjdGxfY2h1bmstPmRpc3Bvc2Vfb3AgPSBBUE5HX0RJU1BPU0VfT1Bf Tk9ORTsKLSAgICAgICAgICByZXR1cm4gZW5jb2RlX2ZyYW1lKGF2Y3R4LCBwaWN0KTsKLSAgICAg ICAgIH0gCi0gICAgCiAKICAgICBkaWZmRnJhbWUgPSBhdl9mcmFtZV9hbGxvYygpOwogICAgIGlm ICghZGlmZkZyYW1lKQpAQCAtOTMyLDYgKzkyMiwxMSBAQCBzdGF0aWMgaW50IGFwbmdfZW5jb2Rl X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29uc3QgQVZGcmFtZSAqcGljdCwKICAgICAg ICAgLy8gMDogQVBOR19ESVNQT1NFX09QX05PTkUKICAgICAgICAgLy8gMTogQVBOR19ESVNQT1NF X09QX0JBQ0tHUk9VTkQKICAgICAgICAgLy8gMjogQVBOR19ESVNQT1NFX09QX1BSRVZJT1VTCisg ICAgICAgIGlmKGxhc3RfZmN0bF9jaHVuay5kaXNwb3NlX29wPT1BUE5HX0RJU1BPU0VfT1BfQkFD S0dST1VORCkgeworICAgICAgICAgICAgaWYoIShkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxB R19BTFBIQSkpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgfQogCiAgICAgICAgIGZvciAoZmN0bF9jaHVuay5ibGVuZF9vcCA9IDA7IGZjdGxfY2h1 bmsuYmxlbmRfb3AgPCAyOyArK2ZjdGxfY2h1bmsuYmxlbmRfb3ApIHsKICAgICAgICAgICAgIC8v IDA6IEFQTkdfQkxFTkRfT1BfU09VUkNFCi0tIAoyLjUyLjAKCg== --000000000000e613cd0647b8d065 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 To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org --000000000000e613cd0647b8d065--