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 A0F3840EDA for ; Sat, 12 Mar 2022 09:06:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4631F68B1BC; Sat, 12 Mar 2022 11:06:19 +0200 (EET) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 696A668B137 for ; Sat, 12 Mar 2022 11:06:13 +0200 (EET) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout02.mail.de (Postfix) with ESMTP id A4F2FA1730 for ; Sat, 12 Mar 2022 10:06:12 +0100 (CET) Received: from smtp01.mail.de (smtp01.bt.mail.de [10.0.121.211]) by postfix01.mail.de (Postfix) with ESMTP id 8ACA480158 for ; Sat, 12 Mar 2022 10:06:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1647075972; bh=oq3qCMIaX0u3tJQPBEIYhTsL2g0Aa8Wf4ltpQ8vYmyY=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=SQ02z6WqHO6zIOapInRLjbrUioSvXaLQKhske2J3Xn1IzN5xoKbGKxYyqJLvcIc7B XCTT6mujLjUJglpTYICJUswioD6rcbJwzUgzIyzUJWit5r23Lsf/5tv33LjtIB9y+E ksER8g0cCi6eFQiKpEcY4zrj9LOm8FR8y1qI8qtHRZ+E26Zjb2/eq5LeLbxwv3xRHg kitJK5nroWzOJ/MDgNoSc+10YPZqzYkGrBXJSGKg1FPgiPdfvn2WmPOkutSudbYsG2 3ckpKhaTS223UluoqIY/gy5+x1bHe/Ps5kK1g2kCGHYGYM1WjwC48JY5AG40jQtrQa ayzsHEBDUER0Q== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp01.mail.de (Postfix) with ESMTPSA id 3ED5410013E for ; Sat, 12 Mar 2022 10:06:11 +0100 (CET) Content-Type: multipart/mixed; boundary="------------vuz0iPniYbtHWwmghudgUyF8" Message-ID: <00b63948-b610-bd38-81fb-95c85235e2f3@mail.de> Date: Sat, 12 Mar 2022 10:06:11 +0100 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20210115045832.76405-1-borbarak@fb.com> <3fa8e9b2-6824-eb3a-2390-22fd024efa9f@mail.de> <164363001951.23111.4989616914372511566@lain.red.khirnov.net> <14fa7592-4acc-2186-335b-56ea500f9663@mail.de> <2621fec9-555f-c977-b378-dbfd7a6d115e@mail.de> <18f95a99-7efd-1d0c-a824-468ef9b83caa@mail.de> From: Thilo Borgmann In-Reply-To: X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 27956 X-purgate-ID: 154282::1647075972-000033E8-C91AD613/0/0 Subject: Re: [FFmpeg-devel] [PATCH] avfilter: Added siti filter 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 is a multi-part message in MIME format. --------------vuz0iPniYbtHWwmghudgUyF8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Am 09.03.22 um 18:31 schrieb Paul B Mahol: > On 3/8/22, Thilo Borgmann wrote: >> Am 07.03.22 um 20:06 schrieb Paul B Mahol: >>> On 3/7/22, Thilo Borgmann wrote: >>>> Am 06.03.22 um 22:25 schrieb Paul B Mahol: >>>>> On 3/6/22, Thilo Borgmann wrote: >>>>>> Am 22.02.22 um 12:30 schrieb Thilo Borgmann: >>>>>>> Am 18.02.22 um 17:08 schrieb Paul B Mahol: >>>>>>>> On Sat, Feb 12, 2022 at 11:55 AM Thilo Borgmann >>>>>>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Am 31.01.22 um 12:55 schrieb James Almer: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 1/31/2022 8:53 AM, Anton Khirnov wrote: >>>>>>>>>>> Quoting Thilo Borgmann (2022-01-18 14:58:07) >>>>>>>>>>>>>> Violations of code style. >>>>>>>>>>>> >>>>>>>>>>>> Enhanced. >>>>>>>>>>> >>>>>>>>>>> Not enough. There are still many remaining, e.g. >>>>>>>>>>> * opening brace of a function definition should be on its own >>>>>>>>>>> line >>>>>>>>>>> * the context should generally be the first argument >>>>>>>>>>> * unsigned char* should be uint8_t* >>>>>>>>>>> * mixed declarations and code (the compiler should warn about >>>>>>>>>>> that) >>>>>>>>>> >>>>>>>>>> I think someone said that clang (or some versions) is apparently >>>>>>>>>> not >>>>>>>>> warning about this, hence why so many of these end up being missed >>>>>>>>> in >>>>>>>>> reviews or even by the patch author. >>>>>>>>> >>>>>>>>> This and all of Anton's comments in v3. Also removed some more >>>>>>>>> obviously >>>>>>>>> useless doubles. >>>>>>>>> >>>>>>>> >>>>>>>> Why it uses doubles in so many places? >>>>>>>> Is there any real benefit in that, except extra slowdown? >>>>>>> >>>>>>> I guess because it's originating in some c&p Matlab code. >>>>>>> I did %s#double#float#g for v4, loosing some precision we can ignore >>>>>>> IMHO. >>>>>>> >>>>>>> >>>>>>> >>>>>>> v3: >>>>>>> >>>>>>> Total frames: 2 >>>>>>> >>>>>>> Spatial Information: >>>>>>> Average: 165.451985 >>>>>>> Max: 165.817542 >>>>>>> Min: 165.086427 >>>>>>> >>>>>>> Temporal Information: >>>>>>> Average: 1.007263 >>>>>>> Max: 2.014525 >>>>>>> Min: 0.000000 >>>>>>> >>>>>>> >>>>>>> >>>>>>> v4: >>>>>>> >>>>>>> Total frames: 2 >>>>>>> >>>>>>> Spatial Information: >>>>>>> Average: 164.385895 >>>>>>> Max: 164.742325 >>>>>>> Min: 164.029480 >>>>>>> >>>>>>> Temporal Information: >>>>>>> Average: 1.007241 >>>>>>> Max: 2.014483 >>>>>>> Min: 0.000000 >>>>>>> >>>>>> >>>>>> Ping. >>>>> >>>>> Into wrong section of changelog added entry. >>>>> >>>>> Useless cast of allocation results. >>>>> >>>>> Does filter changes pixels? If not, add metadata flag to appropriate >>>>> place. >>>> >>>> All addressed in v5, thx! >>>> >>> >>> Changelog entry is still in wrong, 5.0, section. >> >> Fixed in v6. >> >>>> Also added a FATE test for it. >> >> > > Could use fminf/ float functions instead of double variants. v7. -Thilo --------------vuz0iPniYbtHWwmghudgUyF8 Content-Type: text/plain; charset=UTF-8; name="v7-0001-lavfilter-Add-SITI-filter.patch" Content-Disposition: attachment; filename="v7-0001-lavfilter-Add-SITI-filter.patch" Content-Transfer-Encoding: base64 RnJvbSAwMWMzZDZkZDczYWQ0YzM0YzQ0YzljYmM4MTcxZTMzMGU3NjYxNDRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCb3JpcyBCYXJhY2FsZG8gPGJvcmJhcmFrQGZiLmNv bT4KRGF0ZTogU2F0LCAxMiBNYXIgMjAyMiAxMDowNDo0NCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjddIGxhdmZpbHRlcjogQWRkIFNJVEkgZmlsdGVyCgpDYWxjdWxhdGUgU3BhdGlhbCBJ bmZvIChTSSkgYW5kIFRlbXBvcmFsIEluZm8gKFRJKSBzY29yZXMgZm9yIGEgdmlkZW8sIGFz IGRlZmluZWQKaW4gSVRVLVQgUC45MTA6IFN1YmplY3RpdmUgdmlkZW8gcXVhbGl0eSBhc3Nl c3NtZW50IG1ldGhvZHMgZm9yIG11bHRpbWVkaWEKYXBwbGljYXRpb25zLgotLS0KIENoYW5n ZWxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jL2ZpbHRlcnMu dGV4aSAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArKwogbGliYXZmaWx0ZXIvTWFrZWZp bGUgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMg ICAgICAgICAgICAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL3ZlcnNpb24uaCAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGxpYmF2ZmlsdGVyL3ZmX3NpdGkuYyAgICAgICAgICAgICAgICAg fCAzNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL2ZhdGUtcnVuLnNoICAg ICAgICAgICAgICAgICAgICAgfCAgIDkgKwogdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFr ICAgICAgICAgICB8ICAgMyArCiB0ZXN0cy9yZWYvZmF0ZS9maWx0ZXItcmVmY21wLXNpdGkt eXV2IHwgIDE1ICsrCiA5IGZpbGVzIGNoYW5nZWQsIDQwMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvdmZfc2l0aS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLXJlZmNtcC1zaXRpLXl1 dgoKZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwppbmRleCAzYWY4YWEwMzJi Li4yMDBiZDgyNjgwIDEwMDY0NAotLS0gYS9DaGFuZ2Vsb2cKKysrIGIvQ2hhbmdlbG9nCkBA IC01LDYgKzUsNyBAQCB2ZXJzaW9uIDUuMToKIC0gZGlhbG9ndWUgZW5oYW5jZSBhdWRpbyBm aWx0ZXIKIC0gZHJvcHBlZCBvYnNvbGV0ZSBYdk1DIGh3YWNjZWwKIC0gcGNtLWJsdXJheSBl bmNvZGVyCistIFNJVEkgZmlsdGVyCiAKIAogdmVyc2lvbiA1LjA6CmRpZmYgLS1naXQgYS9k b2MvZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCAyNmM1YjRkYjQ4Li45 ZjUwZmQ4OTlmIDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBiL2RvYy9maWx0 ZXJzLnRleGkKQEAgLTE5OTQ0LDYgKzE5OTQ0LDI5IEBAIGZmbXBlZyAtaSBpbnB1dDEubWt2 IC1pIGlucHV0Mi5ta3YgLWZpbHRlcl9jb21wbGV4ICJbMDp2XVsxOnZdIHNpZ25hdHVyZT1u Yl9pbnB1CiAKIEBlbmQgaXRlbWl6ZQogCitAYW5jaG9ye3NpdGl9CitAc2VjdGlvbiBzaXRp CisKK0NhbGN1bGF0ZSBTcGF0aWFsIEluZm8gKFNJKSBhbmQgVGVtcG9yYWwgSW5mbyAoVEkp IHNjb3JlcyBmb3IgYSB2aWRlbywgYXMgZGVmaW5lZAoraW4gSVRVLVQgUC45MTA6IFN1Ympl Y3RpdmUgdmlkZW8gcXVhbGl0eSBhc3Nlc3NtZW50IG1ldGhvZHMgZm9yIG11bHRpbWVkaWEK K2FwcGxpY2F0aW9ucy4gQXZhaWxhYmxlIFBERiBhdCBAdXJse2h0dHBzOi8vd3d3Lml0dS5p bnQvcmVjL1QtUkVDLVAuOTEwLTE5OTkwOS1TL2VuIH0uCisKK0l0IGFjY2VwdHMgdGhlIGZv bGxvd2luZyBvcHRpb246CisKK0B0YWJsZSBAb3B0aW9uCitAaXRlbSBwcmludF9zdW1tYXJ5 CitJZiBzZXQgdG8gMSwgU3VtbWFyeSBzdGF0aXN0aWNzIHdpbGwgYmUgcHJpbnRlZCB0byB0 aGUgY29uc29sZS4gRGVmYXVsdCAwLgorQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBFeGFt cGxlcworQGl0ZW1pemUKK0BpdGVtCitUbyBjYWxjdWxhdGUgU0kvVEkgbWV0cmljcyBhbmQg cHJpbnQgc3VtbWFyeToKK0BleGFtcGxlCitmZm1wZWcgLWkgaW5wdXQubXA0IC12ZiBzaXRp PXByaW50X3N1bW1hcnk9MSAtZiBudWxsIC0KK0BlbmQgZXhhbXBsZQorQGVuZCBpdGVtaXpl CisKIEBhbmNob3J7c21hcnRibHVyfQogQHNlY3Rpb24gc21hcnRibHVyCiAKZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKaW5kZXgg NTZkMzNlNjQ4MC4uNDM2NTM1OTdkOCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvTWFrZWZp bGUKKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAgLTQ1Niw2ICs0NTYsNyBAQCBPQkpT LSQoQ09ORklHX1NNQVJUQkxVUl9GSUxURVIpICAgICAgICAgICAgICArPSB2Zl9zbWFydGJs dXIubwogT0JKUy0kKENPTkZJR19TT0JFTF9GSUxURVIpICAgICAgICAgICAgICAgICAgKz0g dmZfY29udm9sdXRpb24ubwogT0JKUy0kKENPTkZJR19TT0JFTF9PUEVOQ0xfRklMVEVSKSAg ICAgICAgICAgKz0gdmZfY29udm9sdXRpb25fb3BlbmNsLm8gb3BlbmNsLm8gXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmNsL2NvbnZv bHV0aW9uLm8KK09CSlMtJChDT05GSUdfU0lUSV9GSUxURVIpICAgICAgICAgICAgICAgICAg ICs9IHZmX3NpdGkubwogT0JKUy0kKENPTkZJR19TUExJVF9GSUxURVIpICAgICAgICAgICAg ICAgICAgKz0gc3BsaXQubwogT0JKUy0kKENPTkZJR19TUFBfRklMVEVSKSAgICAgICAgICAg ICAgICAgICAgKz0gdmZfc3BwLm8gcXBfdGFibGUubwogT0JKUy0kKENPTkZJR19TUl9GSUxU RVIpICAgICAgICAgICAgICAgICAgICAgKz0gdmZfc3IubwpkaWZmIC0tZ2l0IGEvbGliYXZm aWx0ZXIvYWxsZmlsdGVycy5jIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCmluZGV4IGY1 Y2FlZTNhNjIuLjlmYmFhYWNmNDcgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRl cnMuYworKysgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKQEAgLTQzMiw2ICs0MzIsNyBA QCBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfc2h1ZmZsZXBsYW5lczsKIGV4dGVybiBj b25zdCBBVkZpbHRlciBmZl92Zl9zaWRlZGF0YTsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBm Zl92Zl9zaWduYWxzdGF0czsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9zaWduYXR1 cmU7CitleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfc2l0aTsKIGV4dGVybiBjb25zdCBB VkZpbHRlciBmZl92Zl9zbWFydGJsdXI7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZf c29iZWw7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfc29iZWxfb3BlbmNsOwpkaWZm IC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmVyc2lvbi5oIGIvbGliYXZmaWx0ZXIvdmVyc2lvbi5o CmluZGV4IDlhODkwYzAxNGYuLjk1ZGQ2NGQ1YjUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L3ZlcnNpb24uaAorKysgYi9saWJhdmZpbHRlci92ZXJzaW9uLmgKQEAgLTMwLDcgKzMwLDcg QEAKICNpbmNsdWRlICJsaWJhdnV0aWwvdmVyc2lvbi5oIgogCiAjZGVmaW5lIExJQkFWRklM VEVSX1ZFUlNJT05fTUFKT1IgICA4Ci0jZGVmaW5lIExJQkFWRklMVEVSX1ZFUlNJT05fTUlO T1IgIDI3CisjZGVmaW5lIExJQkFWRklMVEVSX1ZFUlNJT05fTUlOT1IgIDI4CiAjZGVmaW5l IExJQkFWRklMVEVSX1ZFUlNJT05fTUlDUk8gMTAwCiAKIApkaWZmIC0tZ2l0IGEvbGliYXZm aWx0ZXIvdmZfc2l0aS5jIGIvbGliYXZmaWx0ZXIvdmZfc2l0aS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ4YmZjMDA0Y2IKLS0tIC9kZXYvbnVsbAorKysg Yi9saWJhdmZpbHRlci92Zl9zaXRpLmMKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKGMpIDIwMjEgQm9yaXMgQmFyYWNhbGRvCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIg VGhpbG8gQm9yZ21hbm4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisg KgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICog KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisgKiB3aXRoIEZGbXBl ZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LAorICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx MC0xMzAxIFVTQS4KKyAqLworCisvKioKKyAqIEBmaWxlCisgKiBDYWxjdWxhdGUgU3BhdGlh bCBJbmZvIChTSSkgYW5kIFRlbXBvcmFsIEluZm8gKFRJKSBzY29yZXMKKyAqLworCisjaW5j bHVkZSA8bWF0aC5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2ltZ3V0aWxzLmgiCisjaW5j bHVkZSAibGliYXZ1dGlsL2ludGVybmFsLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5o IgorCisjaW5jbHVkZSAiYXZmaWx0ZXIuaCIKKyNpbmNsdWRlICJmb3JtYXRzLmgiCisjaW5j bHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ2aWRlby5oIgorCitzdGF0aWMgY29uc3Qg aW50IFhfRklMVEVSWzldID0geworICAgIDEsIDAsIC0xLAorICAgIDIsIDAsIC0yLAorICAg IDEsIDAsIC0xCit9OworCitzdGF0aWMgY29uc3QgaW50IFlfRklMVEVSWzldID0geworICAg IDEsIDIsIDEsCisgICAgMCwgMCwgMCwKKyAgICAtMSwgLTIsIC0xCit9OworCit0eXBlZGVm IHN0cnVjdCBTaVRpQ29udGV4dCB7CisgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7CisgICAg aW50IHBpeGVsX2RlcHRoOworICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgIHVpbnQ2NF90 IG5iX2ZyYW1lczsKKyAgICB1aW50OF90ICpwcmV2X2ZyYW1lOworICAgIGZsb2F0IG1heF9z aTsKKyAgICBmbG9hdCBtYXhfdGk7CisgICAgZmxvYXQgbWluX3NpOworICAgIGZsb2F0IG1p bl90aTsKKyAgICBmbG9hdCBzdW1fc2k7CisgICAgZmxvYXQgc3VtX3RpOworICAgIGZsb2F0 ICpncmFkaWVudF9tYXRyaXg7CisgICAgZmxvYXQgKm1vdGlvbl9tYXRyaXg7CisgICAgaW50 IGZ1bGxfcmFuZ2U7CisgICAgaW50IHByaW50X3N1bW1hcnk7Cit9IFNpVGlDb250ZXh0Owor CitzdGF0aWMgY29uc3QgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXRzW10gPSB7CisgICAg QVZfUElYX0ZNVF9ZVVY0MjBQLCBBVl9QSVhfRk1UX1lVVjQyMlAsCisgICAgQVZfUElYX0ZN VF9ZVVZKNDIwUCwgQVZfUElYX0ZNVF9ZVVZKNDIyUCwKKyAgICBBVl9QSVhfRk1UX1lVVjQy MFAxMCwgQVZfUElYX0ZNVF9ZVVY0MjJQMTAsCisgICAgQVZfUElYX0ZNVF9OT05FCit9Owor CitzdGF0aWMgYXZfY29sZCBpbnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKK3sKKyAg ICAvLyBVc2VyIG9wdGlvbnMgYnV0IG5vIGlucHV0IGRhdGEKKyAgICBTaVRpQ29udGV4dCAq cyA9IGN0eC0+cHJpdjsKKyAgICBzLT5tYXhfc2kgPSAwOworICAgIHMtPm1heF90aSA9IDA7 CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBhdl9jb2xkIHZvaWQgdW5pbml0KEFWRmls dGVyQ29udGV4dCAqY3R4KQoreworICAgIFNpVGlDb250ZXh0ICpzID0gY3R4LT5wcml2Owor CisgICAgaWYgKHMtPnByaW50X3N1bW1hcnkpIHsKKyAgICAgICAgZmxvYXQgYXZnX3NpID0g cy0+c3VtX3NpIC8gcy0+bmJfZnJhbWVzOworICAgICAgICBmbG9hdCBhdmdfdGkgPSBzLT5z dW1fdGkgLyBzLT5uYl9mcmFtZXM7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZP LAorICAgICAgICAgICAgICAgIlNJVEkgU3VtbWFyeTpcblRvdGFsIGZyYW1lczogJSJQUklk NjQiXG5cbiIKKyAgICAgICAgICAgICAgICJTcGF0aWFsIEluZm9ybWF0aW9uOlxuQXZlcmFn ZTogJWZcbk1heDogJWZcbk1pbjogJWZcblxuIgorICAgICAgICAgICAgICAgIlRlbXBvcmFs IEluZm9ybWF0aW9uOlxuQXZlcmFnZTogJWZcbk1heDogJWZcbk1pbjogJWZcbiIsCisgICAg ICAgICAgICAgICBzLT5uYl9mcmFtZXMsIGF2Z19zaSwgcy0+bWF4X3NpLCBzLT5taW5fc2ks IGF2Z190aSwgcy0+bWF4X3RpLCBzLT5taW5fdGkKKyAgICAgICAgKTsKKyAgICB9CisKKyAg ICBhdl9mcmVlcCgmcy0+cHJldl9mcmFtZSk7CisgICAgYXZfZnJlZXAoJnMtPmdyYWRpZW50 X21hdHJpeCk7CisgICAgYXZfZnJlZXAoJnMtPm1vdGlvbl9tYXRyaXgpOworfQorCitzdGF0 aWMgaW50IGNvbmZpZ19pbnB1dChBVkZpbHRlckxpbmsgKmlubGluaykKK3sKKyAgICAvLyBW aWRlbyBpbnB1dCBkYXRhIGF2aWxhYmxlCisgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggPSBp bmxpbmstPmRzdDsKKyAgICBTaVRpQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKyAgICBpbnQg bWF4X3BpeHN0ZXBzWzRdOworICAgIHNpemVfdCBwaXhlbF9zejsKKyAgICBzaXplX3QgZGF0 YV9zejsKKyAgICBzaXplX3QgZ3JhZGllbnRfc3o7CisgICAgc2l6ZV90IG1vdGlvbl9zejsK KworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVz Y19nZXQoaW5saW5rLT5mb3JtYXQpOworICAgIGF2X2ltYWdlX2ZpbGxfbWF4X3BpeHN0ZXBz KG1heF9waXhzdGVwcywgTlVMTCwgZGVzYyk7CisKKyAgICAvLyBmcmVlIHByZXZpb3VzIGJ1 ZmZlcnMgaW4gY2FzZSB0aGV5IGFyZSBhbGxvY2F0ZWQgYWxyZWFkeQorICAgIGF2X2ZyZWVw KCZzLT5wcmV2X2ZyYW1lKTsKKyAgICBhdl9mcmVlcCgmcy0+Z3JhZGllbnRfbWF0cml4KTsK KyAgICBhdl9mcmVlcCgmcy0+bW90aW9uX21hdHJpeCk7CisKKyAgICBzLT5waXhlbF9kZXB0 aCA9IG1heF9waXhzdGVwc1swXTsKKyAgICBzLT53aWR0aCA9IGlubGluay0+dzsKKyAgICBz LT5oZWlnaHQgPSBpbmxpbmstPmg7CisgICAgcGl4ZWxfc3ogPSBzLT5waXhlbF9kZXB0aCA9 PSAxID8gc2l6ZW9mKHVpbnQ4X3QpIDogc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBkYXRhX3N6 ID0gcy0+d2lkdGggKiBwaXhlbF9zeiAqIHMtPmhlaWdodDsKKworICAgIHMtPnByZXZfZnJh bWUgPSBhdl9tYWxsb2MoZGF0YV9zeik7CisKKyAgICBncmFkaWVudF9zeiA9IChzLT53aWR0 aCAtIDIpICogc2l6ZW9mKGZsb2F0KSAqIChzLT5oZWlnaHQgLSAyKTsKKyAgICBzLT5ncmFk aWVudF9tYXRyaXggPSBhdl9tYWxsb2MoZ3JhZGllbnRfc3opOworCisgICAgbW90aW9uX3N6 ID0gcy0+d2lkdGggKiBzaXplb2YoZmxvYXQpICogcy0+aGVpZ2h0OworICAgIHMtPm1vdGlv bl9tYXRyaXggPSBhdl9tYWxsb2MobW90aW9uX3N6KTsKKworICAgIGlmICghcy0+cHJldl9m cmFtZSB8fCAhIHMtPmdyYWRpZW50X21hdHJpeCB8fCAhcy0+bW90aW9uX21hdHJpeCkgewor ICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgIH0KKworICAgIHJldHVybiAw OworfQorCisvLyBEZXRlcm1pbmUgd2hldGhlciB0aGUgdmlkZW8gaXMgaW4gZnVsbCBvciBs aW1pdGVkIHJhbmdlLiBJZiBub3QgZGVmaW5lZCwgYXNzdW1lIGxpbWl0ZWQuCitzdGF0aWMg aW50IGlzX2Z1bGxfcmFuZ2UoQVZGcmFtZSogZnJhbWUpCit7CisgICAgLy8gSWYgY29sb3Ig cmFuZ2Ugbm90IHNwZWNpZmllZCwgZmFsbGJhY2sgdG8gcGl4ZWwgZm9ybWF0CisgICAgaWYg KGZyYW1lLT5jb2xvcl9yYW5nZSA9PSBBVkNPTF9SQU5HRV9VTlNQRUNJRklFRCB8fCBmcmFt ZS0+Y29sb3JfcmFuZ2UgPT0gQVZDT0xfUkFOR0VfTkIpCisgICAgICAgIHJldHVybiBmcmFt ZS0+Zm9ybWF0ID09IEFWX1BJWF9GTVRfWVVWSjQyMFAgfHwgZnJhbWUtPmZvcm1hdCA9PSBB Vl9QSVhfRk1UX1lVVko0MjJQOworICAgIHJldHVybiBmcmFtZS0+Y29sb3JfcmFuZ2UgPT0g QVZDT0xfUkFOR0VfSlBFRzsKK30KKworLy8gQ2hlY2sgZnJhbWUncyBjb2xvciByYW5nZSBh bmQgY29udmVydCB0byBmdWxsIHJhbmdlIGlmIG5lZWRlZAorc3RhdGljIHVpbnQxNl90IGNv bnZlcnRfZnVsbF9yYW5nZShpbnQgZmFjdG9yLCB1aW50MTZfdCB5KQoreworICAgIGludCBz aGlmdDsKKyAgICBpbnQgbGltaXRfdXBwZXI7CisgICAgaW50IGZ1bGxfdXBwZXI7CisgICAg aW50IGxpbWl0X3k7CisKKyAgICAvLyBGb3IgOCBiaXRzLCBsaW1pdGVkIHJhbmdlIGdvZXMg ZnJvbSAxNiB0byAyMzUsIGZvciAxMCBiaXRzIHRoZSByYW5nZSBpcyBtdWx0aXBsaWVkIGJ5 IDQKKyAgICBzaGlmdCA9IDE2ICogZmFjdG9yOworICAgIGxpbWl0X3VwcGVyID0gMjM1ICog ZmFjdG9yIC0gc2hpZnQ7CisgICAgZnVsbF91cHBlciA9IDI1NiAqIGZhY3RvciAtIDE7Cisg ICAgbGltaXRfeSA9IGZtaW5mKGZtYXgoeSAtIHNoaWZ0LCAwKSwgbGltaXRfdXBwZXIpOwor ICAgIHJldHVybiAoZnVsbF91cHBlciAqIGxpbWl0X3kgLyBsaW1pdF91cHBlcik7Cit9CisK Ky8vIEFwcGxpZXMgc29iZWwgY29udm9sdXRpb24KK3N0YXRpYyB2b2lkIGNvbnZvbHZlX3Nv YmVsKFNpVGlDb250ZXh0ICpzLCBjb25zdCB1aW50OF90ICpzcmMsIGZsb2F0ICpkc3QsIGlu dCBsaW5lc2l6ZSkKK3sKKyAgICBmbG9hdCB4X2NvbnZfc3VtOworICAgIGZsb2F0IHlfY29u dl9zdW07CisgICAgZmxvYXQgZ3JhZGllbnQ7CisgICAgaW50IGtpOworICAgIGludCBrajsK KyAgICBpbnQgaW5kZXg7CisgICAgdWludDE2X3QgZGF0YTsKKyAgICBpbnQgZmlsdGVyX3dp ZHRoID0gMzsKKyAgICBpbnQgZmlsdGVyX3NpemUgPSBmaWx0ZXJfd2lkdGggKiBmaWx0ZXJf d2lkdGg7CisgICAgaW50IHN0cmlkZSA9IGxpbmVzaXplIC8gcy0+cGl4ZWxfZGVwdGg7Cisg ICAgLy8gRm9yIDggYml0cywgbGltaXRlZCByYW5nZSBnb2VzIGZyb20gMTYgdG8gMjM1LCBm b3IgMTAgYml0cyB0aGUgcmFuZ2UgaXMgbXVsdGlwbGllZCBieSA0CisgICAgaW50IGZhY3Rv ciA9IHMtPnBpeGVsX2RlcHRoID09IDEgPyAxIDogNDsKKworICAgIC8vIERzdCBtYXRyaXgg aXMgc21hbGxlciB0aGFuIHNyYyBzaW5jZSB3ZSBpZ25vcmUgZWRnZXMgdGhhdCBjYW4ndCBi ZSBjb252b2x2ZWQKKyAgICAjZGVmaW5lIENPTlZPTFZFKGJwcykgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg IHVpbnQjI2JwcyMjX3QgKnZzcmMgPSAodWludCMjYnBzIyNfdCopc3JjOyAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzLT5oZWlnaHQgLSAxOyBq KyspIHsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7 IGkgPCBzLT53aWR0aCAtIDE7IGkrKykgeyAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgeF9jb252X3N1bSA9IDAuMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICB5X2NvbnZfc3VtID0gMC4wOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAw OyBrIDwgZmlsdGVyX3NpemU7IGsrKykgeyAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgICAgIGtpID0gayAlIGZpbHRlcl93aWR0aCAtIDE7ICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgICAgICAgICAga2ogPSBmbG9vcihrIC8gZmlsdGVyX3dpZHRoKSAt IDE7ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IChqICsg a2opICogc3RyaWRlICsgKGkgKyBraSk7ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg ICAgIGRhdGEgPSBzLT5mdWxsX3JhbmdlID8gdnNyY1tpbmRleF0gOiBjb252ZXJ0X2Z1bGxf cmFuZ2UoZmFjdG9yLCB2c3JjW2luZGV4XSk7IFwKKyAgICAgICAgICAgICAgICAgICAgeF9j b252X3N1bSArPSBkYXRhICogWF9GSUxURVJba107ICAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgICAgICAgICB5X2NvbnZfc3VtICs9IGRhdGEgKiBZX0ZJTFRFUltrXTsgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBncmFkaWVudCA9 IHNxcnQoeF9jb252X3N1bSAqIHhfY29udl9zdW0gKyB5X2NvbnZfc3VtICogeV9jb252X3N1 bSk7IFwKKyAgICAgICAgICAgICAgICBkc3RbKGogLSAxKSAqIChzLT53aWR0aCAtIDIpICsg KGkgLSAxKV0gPSBncmFkaWVudDsgXAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICB9CisKKyAgICBpZiAocy0+cGl4ZWxfZGVwdGggPT0gMikgeworICAgICAgICBD T05WT0xWRSgxNik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQ09OVk9MVkUoOCk7CisgICAg fQorfQorCisvLyBDYWxjdWxhdGUgcGl4ZWwgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQg YW5kIHByZXZpb3VzIGZyYW1lLCBhbmQgdXBkYXRlIHByZXZpb3VzCitzdGF0aWMgdm9pZCBj YWxjdWxhdGVfbW90aW9uKFNpVGlDb250ZXh0ICpzLCBjb25zdCB1aW50OF90ICpjdXJyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqbW90aW9uX21hdHJpeCwgaW50 IGxpbmVzaXplKQoreworICAgIGludCBzdHJpZGUgPSBsaW5lc2l6ZSAvIHMtPnBpeGVsX2Rl cHRoOworICAgIGZsb2F0IG1vdGlvbjsKKyAgICBpbnQgY3Vycl9pbmRleDsKKyAgICBpbnQg cHJldl9pbmRleDsKKyAgICB1aW50MTZfdCBjdXJyX2RhdGE7CisgICAgLy8gRm9yIDggYml0 cywgbGltaXRlZCByYW5nZSBnb2VzIGZyb20gMTYgdG8gMjM1LCBmb3IgMTAgYml0cyB0aGUg cmFuZ2UgaXMgbXVsdGlwbGllZCBieSA0CisgICAgaW50IGZhY3RvciA9IHMtPnBpeGVsX2Rl cHRoID09IDEgPyAxIDogNDsKKworICAgIC8vIFByZXZpb3VzIGZyYW1lIGlzIGFscmVhZHkg Y29udmVydGVkIHRvIGZ1bGwgcmFuZ2UKKyAgICAjZGVmaW5lIENBTENVTEFURShicHMpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgdWludCMjYnBzIyNfdCAqdnNyYyA9ICh1aW50IyNicHMjI190Kilj dXJyOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdWludCMjYnBzIyNfdCAqdmRzdCA9 ICh1aW50IyNicHMjI190KilzLT5wcmV2X2ZyYW1lOyAgICAgICAgIFwKKyAgICAgICAgZm9y IChpbnQgaiA9IDA7IGogPCBzLT5oZWlnaHQ7IGorKykgeyAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy0+d2lkdGg7IGkrKykg eyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBtb3Rpb24gPSAwOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg ICAgICBjdXJyX2luZGV4ID0gaiAqIHN0cmlkZSArIGk7ICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICBwcmV2X2luZGV4ID0gaiAqIHMtPndpZHRoICsgaTsg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBjdXJyX2RhdGEgPSBz LT5mdWxsX3JhbmdlID8gdnNyY1tjdXJyX2luZGV4XSA6IGNvbnZlcnRfZnVsbF9yYW5nZShm YWN0b3IsIHZzcmNbY3Vycl9pbmRleF0pOyBcCisgICAgICAgICAgICAgICAgaWYgKHMtPm5i X2ZyYW1lcyA+IDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAgICAgICAgIG1vdGlvbiA9IGN1cnJfZGF0YSAtIHZkc3RbcHJldl9pbmRleF07ICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgdmRzdFtwcmV2X2luZGV4XSA9IGN1cnJfZGF0 YTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgbW90aW9uX21h dHJpeFtqICogcy0+d2lkdGggKyBpXSA9IG1vdGlvbjsgICAgICAgICAgICBcCisgICAgICAg ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisgICAgaWYgKHMtPnBpeGVs X2RlcHRoID09IDIpIHsKKyAgICAgICAgQ0FMQ1VMQVRFKDE2KTsKKyAgICB9IGVsc2Ugewor ICAgICAgICBDQUxDVUxBVEUoOCk7CisgICAgfQorfQorCitzdGF0aWMgZmxvYXQgc3RkX2Rl dmlhdGlvbihmbG9hdCAqaW1nX21ldHJpY3MsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sK KyAgICBpbnQgc2l6ZSA9IGhlaWdodCAqIHdpZHRoOworICAgIGZsb2F0IG1lYW4gPSAwLjA7 CisgICAgZmxvYXQgc3FyX2RpZmYgPSAwOworCisgICAgZm9yIChpbnQgaiA9IDA7IGogPCBo ZWlnaHQ7IGorKykKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKQor ICAgICAgICAgICAgbWVhbiArPSBpbWdfbWV0cmljc1tqICogd2lkdGggKyBpXTsKKworICAg IG1lYW4gLz0gc2l6ZTsKKworICAgIGZvciAoaW50IGogPSAwOyBqIDwgaGVpZ2h0OyBqKysp IHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7CisgICAgICAg ICAgICBmbG9hdCBtZWFuX2RpZmYgPSBpbWdfbWV0cmljc1tqICogd2lkdGggKyBpXSAtIG1l YW47CisgICAgICAgICAgICBzcXJfZGlmZiArPSAobWVhbl9kaWZmICogbWVhbl9kaWZmKTsK KyAgICAgICAgfQorICAgIH0KKyAgICBzcXJfZGlmZiA9IHNxcl9kaWZmIC8gc2l6ZTsKKyAg ICByZXR1cm4gc3FydChzcXJfZGlmZik7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9tZXRhKEFW RGljdGlvbmFyeSAqKm1ldGFkYXRhLCBjb25zdCBjaGFyICprZXksIGZsb2F0IGQpCit7Cisg ICAgY2hhciB2YWx1ZVsxMjhdOworICAgIHNucHJpbnRmKHZhbHVlLCBzaXplb2YodmFsdWUp LCAiJTAuMmYiLCBkKTsKKyAgICBhdl9kaWN0X3NldChtZXRhZGF0YSwga2V5LCB2YWx1ZSwg MCk7Cit9CisKK3N0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5r LCBBVkZyYW1lICpmcmFtZSkKK3sKKyAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IGlubGlu ay0+ZHN0OworICAgIFNpVGlDb250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIGZsb2F0IHNp OworICAgIGZsb2F0IHRpOworCisgICAgcy0+ZnVsbF9yYW5nZSA9IGlzX2Z1bGxfcmFuZ2Uo ZnJhbWUpOworICAgIHMtPm5iX2ZyYW1lcysrOworCisgICAgLy8gQ2FsY3VsYXRlIHNpIGFu ZCB0aQorICAgIGNvbnZvbHZlX3NvYmVsKHMsIGZyYW1lLT5kYXRhWzBdLCBzLT5ncmFkaWVu dF9tYXRyaXgsIGZyYW1lLT5saW5lc2l6ZVswXSk7CisgICAgY2FsY3VsYXRlX21vdGlvbihz LCBmcmFtZS0+ZGF0YVswXSwgcy0+bW90aW9uX21hdHJpeCwgZnJhbWUtPmxpbmVzaXplWzBd KTsKKyAgICBzaSA9IHN0ZF9kZXZpYXRpb24ocy0+Z3JhZGllbnRfbWF0cml4LCBzLT53aWR0 aCAtIDIsIHMtPmhlaWdodCAtIDIpOworICAgIHRpID0gc3RkX2RldmlhdGlvbihzLT5tb3Rp b25fbWF0cml4LCBzLT53aWR0aCwgcy0+aGVpZ2h0KTsKKworICAgIC8vIENhbGN1bGF0ZSBz dGF0aXN0aWNzCisgICAgcy0+bWF4X3NpICA9IGZtYXgoc2ksIHMtPm1heF9zaSk7CisgICAg cy0+bWF4X3RpICA9IGZtYXgodGksIHMtPm1heF90aSk7CisgICAgcy0+c3VtX3NpICs9IHNp OworICAgIHMtPnN1bV90aSArPSB0aTsKKyAgICBzLT5taW5fc2kgID0gcy0+bmJfZnJhbWVz ID09IDEgPyBzaSA6IGZtaW5mKHNpLCBzLT5taW5fc2kpOworICAgIHMtPm1pbl90aSAgPSBz LT5uYl9mcmFtZXMgPT0gMSA/IHRpIDogZm1pbmYodGksIHMtPm1pbl90aSk7CisKKyAgICAv LyBTZXQgc2kgdGkgaW5mb3JtYXRpb24gaW4gZnJhbWUgbWV0YWRhdGEKKyAgICBzZXRfbWV0 YSgmZnJhbWUtPm1ldGFkYXRhLCAibGF2Zmkuc2l0aS5zaSIsIHNpKTsKKyAgICBzZXRfbWV0 YSgmZnJhbWUtPm1ldGFkYXRhLCAibGF2Zmkuc2l0aS50aSIsIHRpKTsKKworICAgIHJldHVy biBmZl9maWx0ZXJfZnJhbWUoaW5saW5rLT5kc3QtPm91dHB1dHNbMF0sIGZyYW1lKTsKK30K KworI2RlZmluZSBPRkZTRVQoeCkgb2Zmc2V0b2YoU2lUaUNvbnRleHQsIHgpCisjZGVmaW5l IEZMQUdTIEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNfEFWX09QVF9GTEFHX0ZJTFRFUklOR19Q QVJBTQorCitzdGF0aWMgY29uc3QgQVZPcHRpb24gc2l0aV9vcHRpb25zW10gPSB7CisgICAg eyAicHJpbnRfc3VtbWFyeSIsICJQcmludCBzdW1tYXJ5IHNob3dpbmcgYXZlcmFnZSB2YWx1 ZXMiLCBPRkZTRVQocHJpbnRfc3VtbWFyeSksIEFWX09QVF9UWVBFX0JPT0wsIHsgLmk2ND0w IH0sIDAsIDEsIEZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK0FWRklMVEVSX0RFRklO RV9DTEFTUyhzaXRpKTsKKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGF2ZmlsdGVyX3Zm X3NpdGlfaW5wdXRzW10gPSB7CisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0gImRl ZmF1bHQiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAor ICAgICAgICAuY29uZmlnX3Byb3BzID0gY29uZmlnX2lucHV0LAorICAgICAgICAuZmlsdGVy X2ZyYW1lID0gZmlsdGVyX2ZyYW1lLAorICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgQVZG aWx0ZXJQYWQgYXZmaWx0ZXJfdmZfc2l0aV9vdXRwdXRzW10gPSB7CisgICAgeworICAgICAg ICAubmFtZSA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgPSBBVk1FRElBX1RZUEVfVklE RU8KKyAgICB9LAorfTsKKworQVZGaWx0ZXIgZmZfdmZfc2l0aSA9IHsKKyAgICAubmFtZSAg ICAgICAgICA9ICJzaXRpIiwKKyAgICAuZGVzY3JpcHRpb24gICA9IE5VTExfSUZfQ09ORklH X1NNQUxMKCJDYWxjdWxhdGUgc3BhdGlhbCBpbmZvcm1hdGlvbiAoU0kpIGFuZCB0ZW1wb3Jh bCBpbmZvcm1hdGlvbiAoVEkpLiIpLAorICAgIC5wcml2X3NpemUgICAgID0gc2l6ZW9mKFNp VGlDb250ZXh0KSwKKyAgICAucHJpdl9jbGFzcyAgICA9ICZzaXRpX2NsYXNzLAorICAgIC5p bml0ICAgICAgICAgID0gaW5pdCwKKyAgICAudW5pbml0ICAgICAgICA9IHVuaW5pdCwKKyAg ICAuZmxhZ3MgICAgICAgICA9IEFWRklMVEVSX0ZMQUdfTUVUQURBVEFfT05MWSwKKyAgICBG SUxURVJfUElYRk1UU19BUlJBWShwaXhfZm10cyksCisgICAgRklMVEVSX0lOUFVUUyhhdmZp bHRlcl92Zl9zaXRpX2lucHV0cyksCisgICAgRklMVEVSX09VVFBVVFMoYXZmaWx0ZXJfdmZf c2l0aV9vdXRwdXRzKSwKK307CmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlLXJ1bi5zaCBiL3Rl c3RzL2ZhdGUtcnVuLnNoCmluZGV4IGZiZmMwYTkyNWQuLmEzYmU0NGQwZWIgMTAwNzU1Ci0t LSBhL3Rlc3RzL2ZhdGUtcnVuLnNoCisrKyBiL3Rlc3RzL2ZhdGUtcnVuLnNoCkBAIC0zODIs NiArMzgyLDE1IEBAIHJlZmNtcF9tZXRhZGF0YSgpewogICAgICAgICAtZiBudWxsIC9kZXYv bnVsbCB8IGF3ayAtdiByZWY9JHtyZWZ9IC12IGZ1eno9JHtmdXp6fSAtZiAke2Jhc2V9L3Jl ZmNtcC1tZXRhZGF0YS5hd2sgLQogfQogCitjbXBfbWV0YWRhdGEoKXsKKyAgICByZWZjbXA9 JDEKKyAgICBwaXhmbXQ9JDIKKyAgICBmdXp6PSR7MzotMC4wMDF9CisgICAgZmZtcGVnICRG TEFHUyAkRU5DX09QVFMgXAorICAgICAgICAtbGF2ZmkgInRlc3RzcmMyPXNpemU9MzAweDIw MDpyYXRlPTE6ZHVyYXRpb249NSxmb3JtYXQ9JHtwaXhmbXR9LCR7cmVmY21wfSxtZXRhZGF0 YT1wcmludDpmaWxlPS0iIFwKKyAgICAgICAgLWYgbnVsbCAvZGV2L251bGwgfCBhd2sgLXYg cmVmPSR7cmVmfSAtdiBmdXp6PSR7ZnV6en0gLWYgJHtiYXNlfS9yZWZjbXAtbWV0YWRhdGEu YXdrIC0KK30KKwogcGl4Zm10X2NvbnZlcnNpb24oKXsKICAgICBjb252ZXJzaW9uPSIke3Rl c3QjcGl4Zm10LX0iCiAgICAgb3V0ZGlyPSJ0ZXN0cy9kYXRhL3BpeGZtdCIKZGlmZiAtLWdp dCBhL3Rlc3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1hayBiL3Rlc3RzL2ZhdGUvZmlsdGVyLXZp ZGVvLm1hawppbmRleCA1MTBiYjNmZmJjLi5hZTAyMWE3NGE0IDEwMDY0NAotLS0gYS90ZXN0 cy9mYXRlL2ZpbHRlci12aWRlby5tYWsKKysrIGIvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8u bWFrCkBAIC04NjIsNiArODYyLDkgQEAgZmF0ZS1maWx0ZXItcmVmY21wLXNzaW0tcmdiOiBD TUQgPSByZWZjbXBfbWV0YWRhdGEgc3NpbSByZ2IyNCAwLjAxNQogRkFURV9GSUxURVItJChj YWxsIEFMTFlFUywgJChSRUZDTVBfREVQUykgU1NJTV9GSUxURVIpICs9IGZhdGUtZmlsdGVy LXJlZmNtcC1zc2ltLXl1dgogZmF0ZS1maWx0ZXItcmVmY21wLXNzaW0teXV2OiBDTUQgPSBy ZWZjbXBfbWV0YWRhdGEgc3NpbSB5dXY0MjJwIDAuMDE1CiAKK0ZBVEVfRklMVEVSLSQoY2Fs bCBBTExZRVMsICQoUkVGQ01QX0RFUFMpIFNJVElfRklMVEVSKSArPSBmYXRlLWZpbHRlci1y ZWZjbXAtc2l0aS15dXYKK2ZhdGUtZmlsdGVyLXJlZmNtcC1zaXRpLXl1djogQ01EID0gY21w X21ldGFkYXRhIHNpdGkgeXV2NDIwcCAwLjAxNQorCiBGQVRFX1NBTVBMRVNfRkZQUk9CRSAr PSAkKEZBVEVfTUVUQURBVEFfRklMVEVSLXllcykKIEZBVEVfU0FNUExFU19GRk1QRUcgKz0g JChGQVRFX0ZJTFRFUl9TQU1QTEVTLXllcykKIEZBVEVfRkZNUEVHICs9ICQoRkFURV9GSUxU RVIteWVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLXJlZmNtcC1zaXRp LXl1diBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtc2l0aS15dXYKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNWQ5OTk3MmQ5NQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtc2l0aS15dXYKQEAgLTAsMCAr MSwxNSBAQAorZnJhbWU6MCAgICBwdHM6MCAgICAgICBwdHNfdGltZTowCitsYXZmaS5zaXRp LnNpPTEwNi43MgorbGF2Zmkuc2l0aS50aT0wLjAwCitmcmFtZToxICAgIHB0czoxICAgICAg IHB0c190aW1lOjEKK2xhdmZpLnNpdGkuc2k9MTA5LjQwCitsYXZmaS5zaXRpLnRpPTI4LjAw CitmcmFtZToyICAgIHB0czoyICAgICAgIHB0c190aW1lOjIKK2xhdmZpLnNpdGkuc2k9MTA5 LjI5CitsYXZmaS5zaXRpLnRpPTI4LjM4CitmcmFtZTozICAgIHB0czozICAgICAgIHB0c190 aW1lOjMKK2xhdmZpLnNpdGkuc2k9MTEzLjI3CitsYXZmaS5zaXRpLnRpPTMzLjQyCitmcmFt ZTo0ICAgIHB0czo0ICAgICAgIHB0c190aW1lOjQKK2xhdmZpLnNpdGkuc2k9MTEwLjg3Cits YXZmaS5zaXRpLnRpPTMwLjUzCi0tIAoyLjIwLjEgKEFwcGxlIEdpdC0xMTcpCgo= --------------vuz0iPniYbtHWwmghudgUyF8 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". --------------vuz0iPniYbtHWwmghudgUyF8--