From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 3D44347D2F for ; Sun, 19 Nov 2023 21:55:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 470DE68CAB0; Sun, 19 Nov 2023 23:55:19 +0200 (EET) Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7BC7E68C7A7 for ; Sun, 19 Nov 2023 23:55:12 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 35483E98E7 for ; Sun, 19 Nov 2023 22:55:12 +0100 (CET) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dfvrzTnJSTQT for ; Sun, 19 Nov 2023 22:55:09 +0100 (CET) Received: from iq (iq [217.27.212.140]) by iq.passwd.hu (Postfix) with ESMTPS id 2D00FE9864 for ; Sun, 19 Nov 2023 22:55:09 +0100 (CET) Date: Sun, 19 Nov 2023 22:55:09 +0100 (CET) From: Marton Balint To: FFmpeg development discussions and patches In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="467242196-974071844-1700430909=:4116" Subject: Re: [FFmpeg-devel] [PATCH] avfilter: merge loudnorm filter functionality into f_ebur128.c 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: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --467242196-974071844-1700430909=:4116 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT On Sun, 19 Nov 2023, Paul B Mahol wrote: > On Fri, Nov 17, 2023 at 7:38 AM Kyle Swanson wrote: > >> Hi, >> >> On Wed, Nov 15, 2023 at 12:39 PM Paul B Mahol wrote: >> > >> > Attached. >> >> Only had a few minutes to look at this. Seems like more than just >> merging two filters, I see a bunch of new filter options for example. >> Can you explain? >> > > The linear mode and scanning, both input to filter and filter output itself > should give similar results. > The dynamic mode now actually can be configured how aggressively it will > expand / compress audio. > Because current state of filter have numerous issues: > > - using unmaintained old libebur128 module, when same functionality is > already available in existing filter. > - code duplication and functionality duplication due the above > - buggy limiter - causing clipped samples randomly > - buggy first and final frame filtering > - over-complicated flow path for dynamic code in filter > - excessive compressing of audio dynamic range, causing extreme smaller > LRU from output audio > - and probably more that I forgot > > Some options from this patch can be probably removed, like attack/release > options, and just use defaults as currently in patch. Previously ebur128 functionality was decoupled from specific filters, so there was a chance that multiple filters can use it. Unfortunately f_ebur128.c was never migrated to use internal ebur128 lib, as far as I remember the maintaner rejected the idea for some reason back then. IMHO having some generic ebur128 functionality would be preferable. I have an old patch for example which adds EBUR128 mode to af_dynaudnorm, see attached for reference. Looks much cleaner than af_loudnorm, which was always a bit overcomplicated and slightly buggy, as you mentioned. So please consider two things: - Can you keep some generic ebur128 functionality which can easily reused by multiple filters? I don't mind if it is the old code from ebur128 lib or current code from f_ebur128, but it should be reusable internal ff_ functions. - Does it make sense to maintain a separate loudnorm filter for EBUR128 loudness, or it can be integrated into af_dynaudnorm? Because I kind of think that having this as a option of af_dynaudnorm would be cleaner, at least for the dynamic normalization functionality. For the linear mode, well, we already have compressor filters, so I am not sure if that mode is worth keeping. But maybe it is easier for the end user, I don't know. Thanks, Marton --467242196-974071844-1700430909=:4116 Content-Type: text/x-patch; name=af_dynaudnorm-loudness-poc.patch Content-Transfer-Encoding: BASE64 Content-ID: <53f72586-9f7c-13a-3943-171a33b1401e@passwd.hu> Content-Description: Content-Disposition: attachment; filename=af_dynaudnorm-loudness-poc.patch Y29tbWl0IGRmNGUyODNkN2IyYWE0YjRkZTZlNDA1ZTVkY2JiYWUzOGQwNTNi OWYNCkF1dGhvcjogTWFydG9uIEJhbGludCA8Y3VzQHBhc3N3ZC5odT4NCkRh dGU6ICAgU3VuIE9jdCAxNiAyMDo0NTo1MSAyMDE2ICswMjAwDQoNCiAgICBs YXZmaS9hZl9keW5hdWRub3JtOiBhZGQgc3VwcG9ydCBmb3IgbW9tZW50YXJ5 IGxvdWRuZXNzIGJhc2VkIG5vcm1hbGl6YXRpb24NCiAgICANCiAgICBTaWdu ZWQtb2ZmLWJ5OiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dkLmh1Pg0KDQpk aWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRl eGkNCmluZGV4IDYwNGU0NGQ1NjkuLjlkMDVkN2RiOTQgMTAwNjQ0DQotLS0g YS9kb2MvZmlsdGVycy50ZXhpDQorKysgYi9kb2MvZmlsdGVycy50ZXhpDQpA QCAtMzIxMiw2ICszMjEyLDIyIEBAIGZhY3RvciBpcyBkZWZpbmVkIGFzIHRo ZSBmYWN0b3IgdGhhdCB3b3VsZCByZXN1bHQgaW4gZXhhY3RseSB0aGF0IFJN UyB2YWx1ZS4NCiBOb3RlLCBob3dldmVyLCB0aGF0IHRoZSBtYXhpbXVtIGxv Y2FsIGdhaW4gZmFjdG9yIGlzIHN0aWxsIHJlc3RyaWN0ZWQgYnkgdGhlDQog ZnJhbWUncyBoaWdoZXN0IG1hZ25pdHVkZSBzYW1wbGUsIGluIG9yZGVyIHRv IHByZXZlbnQgY2xpcHBpbmcuDQogDQorQGl0ZW0gbA0KK1NldCB0aGUgdGFy Z2V0IGxvdWRuZXNzIGluIExVRlMuIEluIHJhbmdlIGZyb20gLTcwLjAgdG8g MC4gRGVmYXVsdCBpcyAwLjAgLQ0KK2Rpc2FibGVkLiAgQnkgZGVmYXVsdCwg dGhlIER5bmFtaWMgQXVkaW8gTm9ybWFsaXplciBwZXJmb3JtcyAicGVhayIN Citub3JtYWxpemF0aW9uLiAgVGhpcyBtZWFucyB0aGF0IHRoZSBtYXhpbXVt IGxvY2FsIGdhaW4gZmFjdG9yIGZvciBlYWNoIGZyYW1lIGlzDQorZGVmaW5l ZCAob25seSkgYnkgdGhlIGZyYW1lJ3MgaGlnaGVzdCBtYWduaXR1ZGUgc2Ft cGxlLiBUaGlzIHdheSwgdGhlIHNhbXBsZXMNCitjYW4gYmUgYW1wbGlmaWVk IGFzIG11Y2ggYXMgcG9zc2libGUgd2l0aG91dCBleGNlZWRpbmcgdGhlIG1h eGltdW0gc2lnbmFsDQorbGV2ZWwsIGkuZS4gd2l0aG91dCBjbGlwcGluZy4g T3B0aW9uYWxseSwgaG93ZXZlciwgdGhlIER5bmFtaWMgQXVkaW8gTm9ybWFs aXplcg0KK2NhbiBhbHNvIHRha2UgaW50byBhY2NvdW50IHRoZSBmcmFtZSdz IHBlcmNlaXZlZCBtb21lbnRhcnkgbG91ZG5lc3Mgd2hpY2ggaXMNCittZWFz dXJlZCBiYXNlZCBvbiB0aGUgRUJVIFIxMjggcmVjb21tZW5kYXRpb24uIENv bnNlcXVlbnRseSwgYnkgYWRqdXN0aW5nIGFsbA0KK2ZyYW1lcyB0byBhIGNv bnN0YW50IGxvdWRuZXNzIHZhbHVlLCBhIHVuaWZvcm0gInBlcmNlaXZlZCBs b3VkbmVzcyIgY2FuIGJlDQorZXN0YWJsaXNoZWQuIE5vdGUsIGhvd2V2ZXIs IHRoYXQgbG91ZG5lc3MgaXMgbWVhc3VyZWQgd2l0aG91dCBhbnkga2luZCBv Zg0KK2dhdGluZywgdGhlcmVmb3JlIHRoZSBpbnRlZ3JhdGVkIGxvdWRuZXNz IGFzIGRlZmluZWQgYnkgRUJVIFIxMjggd2lsbCBiZQ0KK3VzdWFsbHkgbGVz cyB0aGFuIHRoZSB0YXJnZXQgbGV2ZWwsIGRlcGVuZGluZyBvbiB5b3VyIGNv bnRlbnQuIEFsc28gbm90ZSwgdGhhdA0KK3RoZSBtYXhpbXVtIGxvY2FsIGdh aW4gZmFjdG9yIGlzIHN0aWxsIHJlc3RyaWN0ZWQgYnkgdGhlIGZyYW1lJ3Mg aGlnaGVzdA0KK21hZ25pdHVkZSBzYW1wbGUsIGluIG9yZGVyIHRvIHByZXZl bnQgY2xpcHBpbmcuDQorDQogQGl0ZW0gbg0KIEVuYWJsZSBjaGFubmVscyBj b3VwbGluZy4gQnkgZGVmYXVsdCBpcyBlbmFibGVkLg0KIEJ5IGRlZmF1bHQs IHRoZSBEeW5hbWljIEF1ZGlvIE5vcm1hbGl6ZXIgd2lsbCBhbXBsaWZ5IGFs bCBjaGFubmVscyBieSB0aGUgc2FtZQ0KZGlmZiAtLWdpdCBhL2xpYmF2Zmls dGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUNCmluZGV4IDQ1 NWM4MDliMTUuLjdjMzIzOGVkZDMgMTAwNjQ0DQotLS0gYS9saWJhdmZpbHRl ci9NYWtlZmlsZQ0KKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUNCkBAIC0x MDMsNyArMTAzLDcgQEAgT0JKUy0kKENPTkZJR19DUllTVEFMSVpFUl9GSUxU RVIpICAgICAgICAgICAgKz0gYWZfY3J5c3RhbGl6ZXIubw0KIE9CSlMtJChD T05GSUdfRENTSElGVF9GSUxURVIpICAgICAgICAgICAgICAgICs9IGFmX2Rj c2hpZnQubw0KIE9CSlMtJChDT05GSUdfREVFU1NFUl9GSUxURVIpICAgICAg ICAgICAgICAgICs9IGFmX2RlZXNzZXIubw0KIE9CSlMtJChDT05GSUdfRFJN RVRFUl9GSUxURVIpICAgICAgICAgICAgICAgICs9IGFmX2RybWV0ZXIubw0K LU9CSlMtJChDT05GSUdfRFlOQVVETk9STV9GSUxURVIpICAgICAgICAgICAg ICs9IGFmX2R5bmF1ZG5vcm0ubw0KK09CSlMtJChDT05GSUdfRFlOQVVETk9S TV9GSUxURVIpICAgICAgICAgICAgICs9IGFmX2R5bmF1ZG5vcm0ubyBlYnVy MTI4Lm8NCiBPQkpTLSQoQ09ORklHX0VBUldBWF9GSUxURVIpICAgICAgICAg ICAgICAgICArPSBhZl9lYXJ3YXgubw0KIE9CSlMtJChDT05GSUdfRUJVUjEy OF9GSUxURVIpICAgICAgICAgICAgICAgICs9IGZfZWJ1cjEyOC5vDQogT0JK Uy0kKENPTkZJR19FUVVBTElaRVJfRklMVEVSKSAgICAgICAgICAgICAgKz0g YWZfYmlxdWFkcy5vDQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYWZfZHlu YXVkbm9ybS5jIGIvbGliYXZmaWx0ZXIvYWZfZHluYXVkbm9ybS5jDQppbmRl eCBmZDQzMDg4NGQ3Li42N2RiMWRjZmMyIDEwMDY0NA0KLS0tIGEvbGliYXZm aWx0ZXIvYWZfZHluYXVkbm9ybS5jDQorKysgYi9saWJhdmZpbHRlci9hZl9k eW5hdWRub3JtLmMNCkBAIC0zNyw2ICszNyw4IEBADQogI2luY2x1ZGUgImZp bHRlcnMuaCINCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCINCiANCisjaW5jbHVk ZSAiZWJ1cjEyOC5oIg0KKw0KIHR5cGVkZWYgc3RydWN0IGNxdWV1ZSB7DQog ICAgIGRvdWJsZSAqZWxlbWVudHM7DQogICAgIGludCBzaXplOw0KQEAgLTU5 LDYgKzYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgRHluYW1pY0F1ZGlvTm9ybWFs aXplckNvbnRleHQgew0KICAgICBkb3VibGUgcGVha192YWx1ZTsNCiAgICAg ZG91YmxlIG1heF9hbXBsaWZpY2F0aW9uOw0KICAgICBkb3VibGUgdGFyZ2V0 X3JtczsNCisgICAgZG91YmxlIHRhcmdldF9sdWZzOw0KICAgICBkb3VibGUg Y29tcHJlc3NfZmFjdG9yOw0KICAgICBkb3VibGUgKnByZXZfYW1wbGlmaWNh dGlvbl9mYWN0b3I7DQogICAgIGRvdWJsZSAqZGNfY29ycmVjdGlvbl92YWx1 ZTsNCkBAIC03Niw2ICs3OSw4IEBAIHR5cGVkZWYgc3RydWN0IER5bmFtaWNB dWRpb05vcm1hbGl6ZXJDb250ZXh0IHsNCiAgICAgY3F1ZXVlICoqZ2Fpbl9o aXN0b3J5X3Ntb290aGVkOw0KIA0KICAgICBjcXVldWUgKmlzX2VuYWJsZWQ7 DQorICAgIEZGRUJVUjEyOFN0YXRlICoqcjEyODsNCisgICAgaW50IG5iX3Ix Mjg7DQogfSBEeW5hbWljQXVkaW9Ob3JtYWxpemVyQ29udGV4dDsNCiANCiAj ZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihEeW5hbWljQXVkaW9Ob3JtYWxp emVyQ29udGV4dCwgeCkNCkBAIC04Nyw2ICs5Miw3IEBAIHN0YXRpYyBjb25z dCBBVk9wdGlvbiBkeW5hdWRub3JtX29wdGlvbnNbXSA9IHsNCiAgICAgeyAi cCIsICJzZXQgdGhlIHBlYWsgdmFsdWUiLCAgICAgICAgICAgICAgIE9GRlNF VChwZWFrX3ZhbHVlKSwgICAgICAgIEFWX09QVF9UWVBFX0RPVUJMRSwgey5k YmwgPSAwLjk1fSwgMC4wLCAgIDEuMCwgRkxBR1MgfSwNCiAgICAgeyAibSIs ICJzZXQgdGhlIG1heCBhbXBsaWZpY2F0aW9uIiwgICAgICAgIE9GRlNFVCht YXhfYW1wbGlmaWNhdGlvbiksIEFWX09QVF9UWVBFX0RPVUJMRSwgey5kYmwg PSAxMC4wfSwgMS4wLCAxMDAuMCwgRkxBR1MgfSwNCiAgICAgeyAiciIsICJz ZXQgdGhlIHRhcmdldCBSTVMiLCAgICAgICAgICAgICAgIE9GRlNFVCh0YXJn ZXRfcm1zKSwgICAgICAgIEFWX09QVF9UWVBFX0RPVUJMRSwgey5kYmwgPSAw LjB9LCAgMC4wLCAgIDEuMCwgRkxBR1MgfSwNCisgICAgeyAibCIsICJzZXQg dGhlIHRhcmdldCBMVUZTIiwgICAgICAgICAgICAgIE9GRlNFVCh0YXJnZXRf bHVmcyksICAgICAgIEFWX09QVF9UWVBFX0RPVUJMRSwgey5kYmwgPSAwLjB9 LC03MC4wLCAgIDAuMCwgRkxBR1MgfSwNCiAgICAgeyAibiIsICJzZXQgY2hh bm5lbCBjb3VwbGluZyIsICAgICAgICAgICAgIE9GRlNFVChjaGFubmVsc19j b3VwbGVkKSwgIEFWX09QVF9UWVBFX0JPT0wsICAgey5pNjQgPSAxfSwgICAg ICAwLCAgICAgMSwgRkxBR1MgfSwNCiAgICAgeyAiYyIsICJzZXQgREMgY29y cmVjdGlvbiIsICAgICAgICAgICAgICAgIE9GRlNFVChkY19jb3JyZWN0aW9u KSwgICAgIEFWX09QVF9UWVBFX0JPT0wsICAgey5pNjQgPSAwfSwgICAgICAw LCAgICAgMSwgRkxBR1MgfSwNCiAgICAgeyAiYiIsICJzZXQgYWx0ZXJuYXRp dmUgYm91bmRhcnkgbW9kZSIsICAgIE9GRlNFVChhbHRfYm91bmRhcnlfbW9k ZSksIEFWX09QVF9UWVBFX0JPT0wsICAgey5pNjQgPSAwfSwgICAgICAwLCAg ICAgMSwgRkxBR1MgfSwNCkBAIC0yOTAsNiArMjk2LDEwIEBAIHN0YXRpYyBh dl9jb2xkIHZvaWQgdW5pbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQ0KICAg ICBhdl9mcmVlcCgmcy0+d2VpZ2h0cyk7DQogDQogICAgIGZmX2J1ZnF1ZXVl X2Rpc2NhcmRfYWxsKCZzLT5xdWV1ZSk7DQorDQorICAgIGZvciAoYyA9IDA7 IGMgPCBzLT5uYl9yMTI4OyBjKyspDQorICAgICAgICBmZl9lYnVyMTI4X2Rl c3Ryb3koJnMtPnIxMjhbY10pOw0KKyAgICBhdl9mcmVlcCgmcy0+cjEyOCk7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgY29uZmlnX2lucHV0KEFWRmlsdGVyTGlu ayAqaW5saW5rKQ0KQEAgLTMzOCw2ICszNDgsMjAgQEAgc3RhdGljIGludCBj b25maWdfaW5wdXQoQVZGaWx0ZXJMaW5rICppbmxpbmspDQogICAgIHMtPmNo YW5uZWxzID0gaW5saW5rLT5jaGFubmVsczsNCiAgICAgcy0+ZGVsYXkgPSBz LT5maWx0ZXJfc2l6ZTsNCiANCisgICAgaWYgKHMtPnRhcmdldF9sdWZzIDwg LURCTF9FUFNJTE9OKSB7DQorICAgICAgICBzLT5uYl9yMTI4ID0gcy0+Y2hh bm5lbHNfY291cGxlZCA/IDEgOiBpbmxpbmstPmNoYW5uZWxzOw0KKyAgICAg ICAgcy0+cjEyOCA9IGF2X21hbGxvY3pfYXJyYXkocy0+bmJfcjEyOCwgc2l6 ZW9mKCpzLT5yMTI4KSk7DQorICAgICAgICBpZiAoIXMtPnIxMjgpIHsNCisg ICAgICAgICAgICBzLT5uYl9yMTI4ID0gMDsNCisgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFTk9NRU0pOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZm9y IChjID0gMDsgYyA8IHMtPm5iX3IxMjg7IGMrKykgew0KKyAgICAgICAgICBz LT5yMTI4W2NdID0gZmZfZWJ1cjEyOF9pbml0KHMtPmNoYW5uZWxzX2NvdXBs ZWQgPyBpbmxpbmstPmNoYW5uZWxzIDogMSwgaW5saW5rLT5zYW1wbGVfcmF0 ZSwgcy0+ZnJhbWVfbGVuX21zZWMsIEZGX0VCVVIxMjhfTU9ERV9NKTsNCisg ICAgICAgICAgaWYgKCFzLT5yMTI4W2NdKQ0KKyAgICAgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7DQorICAgICAgICB9DQorICAgIH0NCisNCiAg ICAgcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTM4MCw2ICs0MDQsMTcgQEAgc3Rh dGljIGRvdWJsZSBmaW5kX3BlYWtfbWFnbml0dWRlKEFWRnJhbWUgKmZyYW1l LCBpbnQgY2hhbm5lbCkNCiAgICAgcmV0dXJuIG1heDsNCiB9DQogDQorc3Rh dGljIGRvdWJsZSBjb21wdXRlX2ZyYW1lX2x1ZnNfZ2FpbihEeW5hbWljQXVk aW9Ob3JtYWxpemVyQ29udGV4dCAqcywgQVZGcmFtZSAqZnJhbWUsIGludCBj aGFubmVsKQ0KK3sNCisgICAgZG91YmxlIGx1ZnM7DQorDQorICAgIGNoYW5u ZWwgPSBGRk1BWCgwLCBjaGFubmVsKTsNCisgICAgZmZfZWJ1cjEyOF9hZGRf ZnJhbWVzX3BsYW5hcl9kb3VibGUocy0+cjEyOFtjaGFubmVsXSwgKGNvbnN0 IGRvdWJsZSAqKilmcmFtZS0+ZXh0ZW5kZWRfZGF0YSArIGNoYW5uZWwsIGZy YW1lLT5uYl9zYW1wbGVzLCAxKTsNCisgICAgZmZfZWJ1cjEyOF9sb3VkbmVz c193aW5kb3cocy0+cjEyOFtjaGFubmVsXSwgcy0+ZnJhbWVfbGVuX21zZWMs ICZsdWZzKTsNCisNCisgICAgcmV0dXJuIHBvdygxMC4wLCAocy0+dGFyZ2V0 X2x1ZnMgLSBsdWZzKSAvIDIwLjApOw0KK30NCisNCiBzdGF0aWMgZG91Ymxl IGNvbXB1dGVfZnJhbWVfcm1zKEFWRnJhbWUgKmZyYW1lLCBpbnQgY2hhbm5l bCkNCiB7DQogICAgIGRvdWJsZSBybXNfdmFsdWUgPSAwLjA7DQpAQCAtNDEy LDcgKzQ0Nyw4IEBAIHN0YXRpYyBkb3VibGUgZ2V0X21heF9sb2NhbF9nYWlu KER5bmFtaWNBdWRpb05vcm1hbGl6ZXJDb250ZXh0ICpzLCBBVkZyYW1lICpm cmFtDQogew0KICAgICBjb25zdCBkb3VibGUgbWF4aW11bV9nYWluID0gcy0+ cGVha192YWx1ZSAvIGZpbmRfcGVha19tYWduaXR1ZGUoZnJhbWUsIGNoYW5u ZWwpOw0KICAgICBjb25zdCBkb3VibGUgcm1zX2dhaW4gPSBzLT50YXJnZXRf cm1zID4gREJMX0VQU0lMT04gPyAocy0+dGFyZ2V0X3JtcyAvIGNvbXB1dGVf ZnJhbWVfcm1zKGZyYW1lLCBjaGFubmVsKSkgOiBEQkxfTUFYOw0KLSAgICBy ZXR1cm4gYm91bmQocy0+bWF4X2FtcGxpZmljYXRpb24sIEZGTUlOKG1heGlt dW1fZ2Fpbiwgcm1zX2dhaW4pKTsNCisgICAgY29uc3QgZG91YmxlIGx1ZnNf Z2FpbiA9IHMtPnRhcmdldF9sdWZzIDwgLURCTF9FUFNJTE9OID8gY29tcHV0 ZV9mcmFtZV9sdWZzX2dhaW4ocywgZnJhbWUsIGNoYW5uZWwpIDogREJMX01B WDsNCisgICAgcmV0dXJuIGJvdW5kKHMtPm1heF9hbXBsaWZpY2F0aW9uLCBG Rk1JTihtYXhpbXVtX2dhaW4sIEZGTUlOKGx1ZnNfZ2Fpbiwgcm1zX2dhaW4p KSk7DQogfQ0KIA0KIHN0YXRpYyBkb3VibGUgbWluaW11bV9maWx0ZXIoY3F1 ZXVlICpxKQ0K --467242196-974071844-1700430909=:4116 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". --467242196-974071844-1700430909=:4116--