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 CAF4C4B7A2 for ; Fri, 22 Aug 2025 13:47:16 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id C71E568E6BB; Fri, 22 Aug 2025 16:47:11 +0300 (EEST) Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 68E3768E6B8 for ; Fri, 22 Aug 2025 16:47:05 +0300 (EEST) X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org ) Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 57MDl4W9031125 for ; Fri, 22 Aug 2025 15:47:04 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id 447512EFE4; Fri, 22 Aug 2025 15:47:04 +0200 (CEST) Date: Fri, 22 Aug 2025 15:47:04 +0200 To: FFmpeg development discussions and patches Message-ID: References: <20250813162538.GC676537@haasn.xyz> <20250820234318.GB486061@haasn.xyz> <20250820234432.GD486061@haasn.xyz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250820234432.GD486061@haasn.xyz> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Fri, 22 Aug 2025 15:47:04 +0200 (CEST) Subject: Re: [FFmpeg-devel] [PATCH] lavfi: protection against premultiplied alpha (was: The patch series about premultiplied alpha) 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: , From: Nicolas George via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Nicolas George Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: SGkuCgpOaWtsYXMgSGFhcyB2aWEgZmZtcGVnLWRldmVsIChIRTEyMDI1LTA4LTIwKToKPiBJIGFj Y2lkZW50YWxseSBkZWxldGVkIGEgbGluZSB0b28gbWFueSBoZXJlLCB0aGUgdGV4dCB3YXMgc3Vw cG9zZWQgdG8gcmVhZDoKPiAKPiBEbyB5b3UgZXhwZWN0IGZpbHRlciBhdXRob3JzIHRvIHJlbWVt YmVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvcgo+IHByZW11bHRpcGxpZWQgYWxwaGEsIGV2ZW4gaWYg dGhleSBkb24ndCBldmVuIHRvdWNoIHRoZSBhbHBoYSBwbGFuZT8KCkhpLiBJdCBpcyBhIG5pY2Ug Y29pbmNpZGVuY2UgdGhhdCB0aGVzZSB0d28gbGluZXMgc3VtbWFyaXplIHBlcmZlY3RseQp0aGUg bWlzdGFrZSB5b3UgbWFrZSB0aGF0IGlzIGxlYWRpbmcgeW91IHRvIHRoZSB3cm9uZyBjb25jbHVz aW9uLgpUaGVyZWZvcmUsIEkgd2lsbCBvbmx5IHJlcGx5IHRvIHRoaXMsIGFkZHJlc3Npbmcgb3Ro ZXIgcG9pbnRzIG9mIHlvdXIKbWFpbCBhcyBuZWNlc3NhcnkuCgpUaGUgZmlsdGVycyB0aGF0IGRv IG5vdCBldmVuIHRvdWNoIHRoZSBhbHBoYSBwbGFuZSBhcmUgdGhlIG1vc3QgbGlrZWx5CnRvIHBy b2R1Y2UgaW52YWxpZCBnYXJiYWdlIHdpdGggcHJlbXVsdGlwbGllZCBhbHBoYS4gVGhleSBzaG91 bGQgTk9UCmVuYWJsZSBzdXBwb3J0LgoKTGV0IG1lIGV4cGxhaW4uCgpGaXJzdCwgYnkgZ2FyYmFn ZSwgSSBtZWFuOiAoMSkgbm90IHdoYXQgdGhlIHVzZXIgZXhwZWN0cyArICgyKSBub3Qgd2hhdAp0 aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlsdGVycyBzYXlzICsgKDMpIG5vdCB0aGUgc2FtZSBy ZXN1bHQgYXMgaWYKdGhlIHByb2Nlc3Npbmcgd2VyZSBkb25lIGluIGZ1bGwgcmFuZ2UgYW5kIGNv bnZlcnNpb24gdG8gcHJlbXVsdGlwbGllZAphbHBoYSB3YXMgZG9uZSBhZnRlcndhcmRzIChhbmQg bm90IGp1c3QgYmVjYXVzZSBvZiBkaWZmZXJlbnQgcm91bmRpbmcpLgpBbmQgYnkgaW52YWxpZCBn YXJiYWdlIEkgbWVhbiBjYXNlcyB3aGVyZSB0aGUgdmFsdWUgb2YgYSBjb21wb25lbnQgZW5kcwp1 cCBncmVhdGVyIHRoYW4gdGhlIHZhbHVlIG9mIGFscGhhLgoKUHJvY2Vzc2luZyBmcmFtZSBkYXRh IGlzIHdyaXR0ZW4gYmFzZWQgb24gc2V2ZXJhbCBhc3N1bXB0aW9ucyBvZgpsaW5lYXJpdHkgYW5k IGluZGVwZW5kZW5jZTogZmlsdGVycyBhc3N1bWUgdGhhdCB0aGUgc2FtZSAoUixHLEIpIG9yCihZ LFUsVikgdHJpcGxldCBjb3JyZXNwb25kcyB0byB0aGUgc2FtZSBjb2xvciwgZXZlbiBpZiBub3Qg dGFraW5nIEEgaW50bwphY2NvdW50OyBmaWx0ZXJzIGFzc3VtZSB0aGF0IGF2ZXJhZ2luZyBjb2xv cnMgaXMgZG9uZSBieSBhdmVyYWdpbmcgZWFjaApjb21wb25lbnQsIGV0Yy4KCklmIHdlIHdlcmUg dGFsa2luZyBhYm91dCBjaGFuZ2UgaW4gY29sb3IgcHJpbWFyaWVzLCB0aGVuIGFsbCB3b3VsZCBi ZQpmaW5lIGJlY2F1c2UgdGhlc2UgYXNzdW1wdGlvbnMgc3RpbGwgaG9sZCBmb3IgZGlmZmVyZW50 IHByaW1hcmllczogaXQgaXMKanVzdCBhIGNoYW5nZSBvZiBiYXNpcyBpbiB0aGUgc3BhY2Ugb2Yg Y29sb3JzIHdpdGggdGhlIGFscGhhIGRpcmVjdGlvbiBhCnN0YWJsZSBzdWJzcGFjZS4KCihUaGUg aXNzdWUgb2YgZ2FtbWEgYnJlYWtzIGFsbCB0aGVzZSBhc3N1bXB0aW9ucywgYnV0IHRoZSBjb25z ZW5zdXMgb24KdGhlIGlzc3VlIG9mIGdhbW1hIHNlZW1zIHRvIGJlIHRvIGp1c3QgaWdub3JlIGl0 IGFuZCBoYXZlIHRoZSBoYWJpdCB0bwpjb21wZW5zYXRlIGZvciBpdC4gSWYgd2Ugd2VyZSBhZGRp bmcg4oCcZmxvYXQgZ2FtbWHigJ0gdG8gQVZGcmFtZSBJIHdvdWxkCmluc2lzdCBvbiB0aGUgc2Ft ZSBjYXV0aW9uLikKCkJ1dCBwcmVtdWx0aXBsaWVkIGFscGhhIGlzIG5vdCBqdXN0IGEgY2hhbmdl IG9mIGJhc2lzLCBpdCBpcyBub3QgbGluZWFyLgoKTGV0IHVzIGp1c3QgdGFrZSBhbiBleGFtcGxl OiBhIGZpbHRlciB3aWxsIGF2ZXJhZ2UgdHdvIHBpeGVscywgb25lIHZlcnkKZGFyayByZWQgb3Bh cXVlIGFuZCBvbmUgYnJpZ2h0IHJlZCB2ZXJ5IHRyYW5zcGFyZW50LgoKRnVsbCByYW5nZSBpbnB1 dDogKDAuMiwgMCwgMCwgMSkgYW5kICgxLCAwLCAwLCAwLjIpCkF2ZXJhZ2UgY29tcG9uZW50IGJ5 IGNvbXBvbmVudDogKDAuNiwgMCwgMCwgMC42KQoKQ29udmVyc2lvbiB0byBwcmVtdWx0aXBsaWVk OiAoMC4yLCAwLCAwLCAxKSBhbmQgKDAuMiwgMCwgMCwgMC4yKQpBdmVyYWdlIGNvbXBvbmVudCBi eSBjb21wb25lbnQ6ICgwLjIsIDAsIDAsIDAuNikKCkFzIHlvdSBjYW5zIHNlZSwgdGhpcyBub3Qg dGhlIHNhbWUgcmVzdWx0LiBUaGUgc2FtZSByZXN1bHQgd291bGQgYmUKZXhwcmVzc2VkIGFzICgw LjM2LCAwLCAwLCAwLjYpIGluIHByZW11bHRpcGxpZWQuIFRoaXMgZ2F2ZSB1cyAwLjIvMC42ID1+ CjAuMzMgcmVkIGluc3RlYWQgb2YgMC42IHJlZC4KClRoYXQgd2FzIGZvciBmaWx0ZXJzIHRoYXQg ZG8gdGhlIGF2ZXJhZ2Ugb24gYWxsIGNvbXBvbmVudHMsIGluY2x1ZGluZwphbHBoYS4gU2luY2Ug dGhlIHNwYWNlIG9mIHZhbGlkIGNvbXBvbmVudHMgdmFsdWUgd2l0aCBwcmVtdWx0aXBsaWVkCmFs cGhhIGlzIGEgcHlyYW1pZCwgY29udmV4LCB0aGUgcmVzdWx0IGlzIGdhcmJhZ2UgYnV0IG5vdCBp bnZhbGlkCmdhcmJhZ2UuCgpOb3cgbGV0IHVzIGxvb2sgYXQgd291bGQgcHJvZHVjZSBhIGZpbHRl ciB0aGF0IGRvZXMgbm90IHRha2UgYWxwaGEgaW50bwphY2NvdW50IGF0IGFsbC4gVGhlIGNvbXB1 dGF0aW9ucyBhcmUgdGhlIHNhbWUsIHRoZSBmaWx0ZXIgd2lsbCBnZXQKKDAuMiwgMCwgMCkgZm9y IHRoZSBhdmVyYWdlLCBhbmQgaXQgd2lsbCBzdG9yZSBpdCBpbiBhIHBpeGVsLCBub3QKdG91Y2hp bmcgdGhlIGFscGhhIHZhbHVlIGZvciB0aGF0IHBpeGVsLgoKQW5kIHRoaXMgaXMgd2hlcmUgZ2Fy YmFnZSBiZWNvbWVzIGludmFsaWQ6IGlmIHRoZSB0YXJnZXQgcGl4ZWwgaGFkIGFscGhhCjAuMSwg dGhlbiBpdCBub3cgaGFzICgwLjIsIDAsIDAsIDAuMSksIHdoaWNoIGlzIGludmFsaWQuCgpJIHRv b2sgYXZlcmFnZSwgYnV0IHRoZSBpc3N1ZSBhcmlzZXMgZm9yIGFsbCBraW5kcyBvZiBvcGVyYXRp b25zOiBldmVyeQp0aW1lIHRoZSB2YWx1ZXMgb2YgbXVsdGlwbGUgcGl4ZWxzIGFyZSBtaXhlZCB0 b2dldGhlciwgdGhlIHByb3BlciB3YXkgdG8KY29tcHV0ZSBpdCBpbiBwcmVtdWx0aXBsaWVkIGlz IG5vdCB0aGUgdXN1YWwgd2F5LiBJdCBhbHNvIGFwcGxpZXMgdG8KZmlsdGVycyB0aGF0IGRvIG5v dCBkcmF3IHBpeGVscyBidXQgb25seSBjb21wdXRlIHN0YXRpc3RpY3M6IHRoZXkgd2lsbAphc3N1 bWUgYSBwaXhlbCBpcyBkYXJrIHdoZW4gaXQgaXMganVzdCB0cmFuc3BhcmVudC4KCgpUaGlzIGlz IG5vdCB0aGVvcmV0aWNhbC4KClJlbWVtYmVyOiB5b3UgaGFkIHRvIHVwZGF0ZSBkcmF3dXRpbHMs IGJlY2F1c2UgeW91IGNvdWxkIHNlZSwgd2l0aCB5b3VyCm93biBleWVzLCB0aGF0IGZpbHRlcnMg dXNpbmcgZHJhd3V0aWxzIHByb2R1Y2VkIGdhcmJhZ2Ugd2l0aApwcmVtdWx0aXBsaWVkLgoKRG8g eW91IHJlYWxseSB0aGluayBkcmF3dXRpbHMgd2FzIHRoZSBvbmx5IGNvZGUgdGhhdCBwcm9kdWNl cyBnYXJiYWdlCndpdGggcHJlbXVsdGlwbGllZD8gRHJhd3V0aWxzIGlzIGp1c3Qgc2hhcmluZyBj b2RlIGJldHdlZW4gbWFueSBmaWx0ZXJzCnRoYXQgaGF2ZSBuZWVkcyBzaW1pbGFyIGVub3VnaC4g SWYgYSBmaWx0ZXIgaGFzIG5lZWRzIHRoYXQgYXJlIG5vdApjb3ZlcmVkIGJ5IGRyYXd1dGlscywg aXQgd2lsbCB1c2UgaXRzIG93biBjb2RlLCBidXQgdGhlIHNhbWUga2luZCBvZgpjb2RlIGFzIGRy YXd1dGlscy4gQ29kZSB0aGF0IHdpbGwgbmVlZCBmaXhpbmcgdG9vLgoKVGhlIG9ubHkgZmlsdGVy cyB3ZSBjYW4gYmUgc3VyZSB3aWxsIHdvcmsgd2l0aCBwcmVtdWx0aXBsaWVkIGFyZSAoMSkgdGhl CmZpbHRlcnMgdGhhdCBpbXBsZW1lbnQgZm9ybXVsYXMgc3BlY2lmaWMgdG8gdGhlIHByZW11bHRp cGxpZWQgY2FzZSwgKDIpCmZpbHRlcnMgdGhhdCBvbmx5IGNvcHkgcGl4ZWwgdmFsdWVzLCBhbGwg Zm91ciBjb21wb25lbnRzLCBhbmQgbmV2ZXIgZG8KYW55IGtpbmQgb2YgY29tcHV0YXRpb24gb24g dGhlbSBhbmQgKDMpIGZpbHRlcnMgdGhhdCBkbyBub3QgdG91Y2ggdGhlCnBpeGVscyBhdCBhbGws IG9ubHkgdGhlIGZyYW1lIHByb3BlcnRpZXMgYW5kIG1ldGFkYXRhLgoKKFRlY2huaWNhbGx5LCAo MykgaXMgYSBzdWJzZXQgb2YgKDIpLikKCk1vc3QgZmlsdGVycyBhcmUgaW4gbm9uZSBvZiB0aGVz ZSBjYXNlcy4gVGhpcyBpcyB3aHkgSSBpbnNpc3Qgc3VwcG9ydAptdXN0IGJlIG9wdC1pbiwgd2hp dGUgbGlzdCBpbiB5b3VyIG93biB3b3Jkcy4KCgpBbHNvLCBwbGVhc2UgcmVtZW1iZXIgdGhpczog d2l0aCB0aGUgd29yayB5b3UgZGlkIHRvIG1ha2UgaXQgcHJvcGVybHkKcGFydCBvZiB0aGUgbmVn b3RpYXRpb24sIGF1dG9tYXRpYyBjb252ZXJzaW9uIGZpbHRlcnMgYXJlIGluc2VydGVkCmF1dG9t YXRpY2FsbHkuIElmIHdlIGZvcmdldCB0byBmbGFnIGEgZmlsdGVyIHRoYXQgd29ya3MsIHRoZSBh bm5veWFuY2UKd2lsbCBiZSBtaW5pbWFsLiBBbmQgd2UgY2FuIGFsd2F5cyBmbGFnIGl0IGxhdGVy LCB3aGVyZWFzIGdhcmJhZ2UKYWxyZWFkeSB3cml0dGVuIGNhbm5vdCBiZSBmaXhlZC4KCihJIHdh bnQgdG8gZW1waGFzaXplIHRoYXQgeW91IGRpZCB0aGUgd29yayBvZiBtYWtpbmcgaXQgcGFydCBv ZiB0aGUKbmVnb3RpYXRpb24gbm90IG9uIG15IGRlbWFuZC4gSXQgaXMgdXNlZnVsLCB0aGVyZSBp cyBubyBkb3VidCBhYm91dCwgYW5kCm11Y2ggYmV0dGVyIHRoYW4gdGhlIHF1aWNrIGFuZCBkaXJ0 eSB2ZXJzaW9uIEkgc2VudCwgYW5kIGl0IGlzIGEgZ29vZAp0aGluZyB5b3UgZGlkIGl0LiBCdXQg aXQgd2FzIG5vdCBvbiBteSBkZW1hbmQgYW5kIGl0IGRvZXMgbm90IGNoYW5nZSB0aGUKZmFjdCB0 aGF0IHN1cHBvcnQgbXVzdCBiZSBvcHQtaW4uKQoKUmVnYXJkcywKCi0tIAogIE5pY29sYXMgR2Vv cmdlCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1w ZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlz aXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3 aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K