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 0DB9942336 for ; Thu, 8 Dec 2022 17:56:59 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2B3E268B838; Thu, 8 Dec 2022 19:56:56 +0200 (EET) Received: from mail-vs1-f43.google.com (mail-vs1-f43.google.com [209.85.217.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C15868B834 for ; Thu, 8 Dec 2022 19:56:50 +0200 (EET) Received: by mail-vs1-f43.google.com with SMTP id b189so2163547vsc.10 for ; Thu, 08 Dec 2022 09:56:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=D05/RD0nXCq+L9rEnD0OCKfL7tHhrwa7o6mepvArtks=; b=cOrB3wKbNI5ZBa6ziCqSZvclXVEttxRWx/zzjxLc0PVT8Rkz8iuxzAHc289FtfHl5y ocT9j6l8ZMTRw56CMflRRbpuA1/QbqqL0LyKkqVrqE+4ZMwhdPFgV4pRt69MtdihlTGq lI+uFUnKFHOX85q2U2Pl37fqlII5fPGkUzDeUh8EToLbhgHvWE23yAZB6h947v1395Nj QTri/P8WoD4Wb02C2nvVoPOj4PoKk93jQBye7/FU6UHnkxytkvTsbDZuRnOz4/tYK/pS Orlzpx9ohSixvWbyHJiAo6gOPe78Ox7oVuEpOHmMdR4gI3Riyj42T0ENofM/Tgaob6TF m8GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=D05/RD0nXCq+L9rEnD0OCKfL7tHhrwa7o6mepvArtks=; b=4Io6Y+K4yJqgKrcB8EcDkguGZSY+t2+WC9iZp7dba1u20iR7SFW4AFqMtOKrtmuXXk ZHOmuhxgo80dc7sFQvO6z9BpSmsguRqGcU4thkf6JEcepcSTdnyosYptMu/xWTj7KLWW YB85Z8ozpZcmVl+r4V73KiL+4oynlelj+chwvYZkmGFsXw3lyuFopZlRkF6ONKlQRe7o DbbXUmTk+L6YAOJSnwMv/se/2fWqEQakJ4Hathjg4QHYKUp+TcBNbkWWW50JccvKCKln c6hPMFUbcjImtwZcextVwU1ObPMnTwRGLKt3ItMZ3ezOEkQgvSZD7bReKvZaCZ864q9T ARYQ== X-Gm-Message-State: ANoB5pmU6w77iu8w/DTodP84kTK2KFBLgxahsnwCjiE1k2ibOKvNwjeg glJmu3zd5sHjUQu/cnhUT41fFcEzQyQLAtb8sIlvK+Hl X-Google-Smtp-Source: AA0mqf4NikZ7/UBcRz0Fe5xV2EKHy4KRMgGQIyQSw7LB5YLCvXI6jYnTZzgNsBGdgqdiTqUUzR7UYVkdVn6r4iy7oDE= X-Received: by 2002:a05:6102:3751:b0:3af:b950:489d with SMTP id u17-20020a056102375100b003afb950489dmr54423223vst.36.1670522207995; Thu, 08 Dec 2022 09:56:47 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a05:612c:2428:b0:32a:5eaa:92e4 with HTTP; Thu, 8 Dec 2022 09:56:46 -0800 (PST) From: Paul B Mahol Date: Thu, 8 Dec 2022 18:56:46 +0100 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000cc282a05ef54c2ef" Subject: [FFmpeg-devel] [PATCH] avfilter: add minvar video 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: --000000000000cc282a05ef54c2ef Content-Type: text/plain; charset="UTF-8" Patch attached. TODO: documentation. --000000000000cc282a05ef54c2ef Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avfilter-add-minvar-video-filter.patch" Content-Disposition: attachment; filename="0001-avfilter-add-minvar-video-filter.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 RnJvbSA4NTA2M2ZlMWQ5ZjFmYjMzNjcwMDY4ZjdkM2JiOTAzOGUyMmYyZjc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBEZWMgMjAyMiAyMjowOTo1OSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGF2ZmlsdGVy OiBhZGQgbWludmFyIHZpZGVvIGZpbHRlcgoKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxv bmVtZGFAZ21haWwuY29tPgotLS0KIGxpYmF2ZmlsdGVyL01ha2VmaWxlICAgICB8ICAgMSArCiBs aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgfCAgIDEgKwogbGliYXZmaWx0ZXIvdmZfbWludmFyLmMg IHwgMzMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCAzMzIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVy L3ZmX21pbnZhci5jCgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZp bHRlci9NYWtlZmlsZQppbmRleCA5YTg1MGQ1ZGM1Li4zMjFiZDlhMGM4IDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci9NYWtlZmlsZQorKysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQpAQCAtMzc3LDYg KzM3Nyw3IEBAIE9CSlMtJChDT05GSUdfTUVTVElNQVRFX0ZJTFRFUikgICAgICAgICAgICAgICs9 IHZmX21lc3RpbWF0ZS5vIG1vdGlvbl9lc3RpbWF0aW9uCiBPQkpTLSQoQ09ORklHX01FVEFEQVRB X0ZJTFRFUikgICAgICAgICAgICAgICArPSBmX21ldGFkYXRhLm8KIE9CSlMtJChDT05GSUdfTUlE RVFVQUxJWkVSX0ZJTFRFUikgICAgICAgICAgICs9IHZmX21pZGVxdWFsaXplci5vIGZyYW1lc3lu Yy5vCiBPQkpTLSQoQ09ORklHX01JTlRFUlBPTEFURV9GSUxURVIpICAgICAgICAgICArPSB2Zl9t aW50ZXJwb2xhdGUubyBtb3Rpb25fZXN0aW1hdGlvbi5vCitPQkpTLSQoQ09ORklHX01JTlZBUl9G SUxURVIpICAgICAgICAgICAgICAgICArPSB2Zl9taW52YXIubwogT0JKUy0kKENPTkZJR19NSVhf RklMVEVSKSAgICAgICAgICAgICAgICAgICAgKz0gdmZfbWl4Lm8gZnJhbWVzeW5jLm8KIE9CSlMt JChDT05GSUdfTU9OT0NIUk9NRV9GSUxURVIpICAgICAgICAgICAgICs9IHZmX21vbm9jaHJvbWUu bwogT0JKUy0kKENPTkZJR19NT1JQSE9fRklMVEVSKSAgICAgICAgICAgICAgICAgKz0gdmZfbW9y cGhvLm8KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyBiL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYwppbmRleCAyZWNlNWMxNWM4Li5hMjlkZmYwYmRmIDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKKysrIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCkBA IC0zNTUsNiArMzU1LDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX21lc3RpbWF0ZTsK IGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9tZXRhZGF0YTsKIGV4dGVybiBjb25zdCBBVkZp bHRlciBmZl92Zl9taWRlcXVhbGl6ZXI7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfbWlu dGVycG9sYXRlOworZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX21pbnZhcjsKIGV4dGVybiBj b25zdCBBVkZpbHRlciBmZl92Zl9taXg7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfbW9u b2Nocm9tZTsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9tb3JwaG87CmRpZmYgLS1naXQg YS9saWJhdmZpbHRlci92Zl9taW52YXIuYyBiL2xpYmF2ZmlsdGVyL3ZmX21pbnZhci5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU1ZWM5OGUxMzMKLS0tIC9kZXYvbnVs bAorKysgYi9saWJhdmZpbHRlci92Zl9taW52YXIuYwpAQCAtMCwwICsxLDMzMCBAQAorLyoKKyAq IENvcHlyaWdodCAoYykgMjAyMiBQYXVsIEIgTWFob2wKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBj b3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworICog dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLCBhbmQvb3Igc2VsbAorICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBO TyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS T00sCisgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCisgKi8KKworI2luY2x1 ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNp bmNsdWRlICJsaWJhdnV0aWwvcGl4ZGVzYy5oIgorI2luY2x1ZGUgImF2ZmlsdGVyLmgiCisjaW5j bHVkZSAiZm9ybWF0cy5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAidmlkZW8u aCIKKwordHlwZWRlZiBzdHJ1Y3QgTWluVmFyQ29udGV4dCB7CisgICAgY29uc3QgQVZDbGFzcyAq Y2xhc3M7CisKKyAgICBkb3VibGUgdmFyaWFuY2U7CisgICAgaW50IHNpemV3OworICAgIGludCBz aXplaDsKKyAgICBpbnQgcGxhbmVzOworCisgICAgaW50IGRlcHRoOworICAgIGludCBtYXg7Cisg ICAgaW50IHBsYW5ld2lkdGhbNF07CisgICAgaW50IHBsYW5laGVpZ2h0WzRdOworCisgICAgdWlu dDY0X3QgKmlpWzRdOworICAgIHVpbnQ2NF90ICppMls0XTsKKyAgICBwdHJkaWZmX3QgaV9saW5l c2l6ZVs0XTsKKyAgICBzaXplX3QgaV9zaXplWzRdOworCisgICAgaW50IG5iX3BsYW5lczsKKwor ICAgIHZvaWQgKCpjb21wdXRlX3NhdCkoY29uc3QgdWludDhfdCAqc3NyYywKKyAgICAgICAgICAg ICAgICAgICAgICAgIGludCBsaW5lc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB3 LCBpbnQgaCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXgsCisgICAgICAgICAgICAg ICAgICAgICAgICB1aW50NjRfdCAqaWksCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRf dCAqaTIsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaV9saW5lc2l6ZSk7CisgICAgaW50 ICgqZmlsdGVyKShBVkZpbHRlckNvbnRleHQgKmN0eCwgdm9pZCAqYXJnLAorICAgICAgICAgICAg ICAgICAgaW50IGpvYm5yLCBpbnQgbmJfam9icyk7Cit9IE1pblZhckNvbnRleHQ7CisKKyNkZWZp bmUgT0ZGU0VUKHgpIG9mZnNldG9mKE1pblZhckNvbnRleHQsIHgpCisjZGVmaW5lIEZMQUdTIEFW X09QVF9GTEFHX1ZJREVPX1BBUkFNfEFWX09QVF9GTEFHX0ZJTFRFUklOR19QQVJBTXxBVl9PUFRf RkxBR19SVU5USU1FX1BBUkFNCisKK3N0YXRpYyBjb25zdCBBVk9wdGlvbiBtaW52YXJfb3B0aW9u c1tdID0geworICAgIHsgInZhciIsICJzZXQgZ2xvYmFsIG5vaXNlIHZhcmlhbmNlIiwgT0ZGU0VU KHZhcmlhbmNlKSwgQVZfT1BUX1RZUEVfRE9VQkxFLHsuZGJsPTB9LCAwLCAgMTYsIEZMQUdTIH0s CisgICAgeyAicnciLCAgInNldCBob3Jpem9udGFsIHBhdGNoIHNpemUiLCBPRkZTRVQoc2l6ZXcp LCAgICBBVl9PUFRfVFlQRV9JTlQsICAgey5pNjQ9NX0sIDEsICAxNiwgRkxBR1MgfSwKKyAgICB7 ICJyaCIsICAic2V0IHZlcnRpY2FsIHBhdGNoIHNpemUiLCAgIE9GRlNFVChzaXplaCksICAgIEFW X09QVF9UWVBFX0lOVCwgICB7Lmk2ND01fSwgMSwgIDE2LCBGTEFHUyB9LAorICAgIHsgInBsYW5l cyIsICJzZXQgcGxhbmVzIHRvIGZpbHRlciIsICAgT0ZGU0VUKHBsYW5lcyksICAgQVZfT1BUX1RZ UEVfSU5ULCAgIHsuaTY0PTd9LCAwLCAweEYsIEZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisK K0FWRklMVEVSX0RFRklORV9DTEFTUyhtaW52YXIpOworCit0eXBlZGVmIHN0cnVjdCBUaHJlYWRE YXRhIHsKKyAgICBBVkZyYW1lICppbiwgKm91dDsKK30gVGhyZWFkRGF0YTsKKworc3RhdGljIGF2 X2NvbGQgdm9pZCB1bmluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7CisgICAgTWluVmFyQ29u dGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIGZvciAoaW50IHAgPSAwOyBwIDwgNDsgcCsrKSB7 CisgICAgICAgIGF2X2ZyZWVwKCZzLT5paVtwXSk7CisgICAgICAgIGF2X2ZyZWVwKCZzLT5pMltw XSk7CisgICAgfQorfQorCisjZGVmaW5lIENPTVBVVEVfU0FUKHR5cGUsIGRlcHRoKSAgICAgICAg ICAgICAgICAgICAgIFwKK3N0YXRpYyB2b2lkIGNvbXB1dGVfc2F0IyNkZXB0aChjb25zdCB1aW50 OF90ICpzc3JjLCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lc2l6 ZSwgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHcsIGludCBo LCAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4LCAgICAg ICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICppaSwg ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmkyLCAg ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaV9saW5lc2l6ZSkg ICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgY29uc3QgdHlwZSAqc3JjID0gKGNvbnN0IHR5cGUgKilzc3JjOyAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIGxpbmVzaXplIC89IHNpemVvZih0eXBlKTsgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgaWkgKz0gaV9saW5lc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBpMiArPSBpX2xpbmVzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgdWludDY0X3Qgc3VtMiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICB1aW50NjRfdCBzdW0gPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCB3OyB4KyspIHsgICAgICAgICAgICAgICAgXAorICAg ICAgICAgICAgY29uc3QgaW50IHYgPSBzcmNbeC0xXTsgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICAgICBzdW0gKz0gdjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgIHN1bTIgKz0gdip2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgaWlbeF0gPSBzdW0gKyBpaVt4IC0gaV9saW5lc2l6ZV07ICAgICAgICBcCisgICAgICAg ICAgICBpMlt4XSA9IHN1bTIgKyBpMlt4IC0gaV9saW5lc2l6ZV07ICAgICAgIFwKKyAgICAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHNy YyArPSBsaW5lc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWkg Kz0gaV9saW5lc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpMiAr PSBpX2xpbmVzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworQ09NUFVURV9T QVQodWludDhfdCwgOCkKK0NPTVBVVEVfU0FUKHVpbnQxNl90LCAxNikKKworI2RlZmluZSBTUVIo eCkgKCh4KSAqICh4KSkKKworI2RlZmluZSBGSUxURVIodHlwZSwgZnR5cGUsIGRkZXB0aCwgTFJJ TlQpICAgICAgICAgICBcCitzdGF0aWMgaW50IGZpbHRlciMjZGRlcHRoKEFWRmlsdGVyQ29udGV4 dCAqY3R4LCAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnLCAgICAg ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgam9ibnIsIGludCBu Yl9qb2JzKSAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBNaW5WYXJDb250ZXh0ICpzID0gY3R4LT5wcml2OyAgICAgICAgICAg ICAgICAgICAgXAorICAgIGNvbnN0IGludCBkZXB0aCA9IHMtPmRlcHRoOyAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgY29uc3QgZnR5cGUgZ3ZhciA9IFNRUihzLT52YXJpYW5jZSAqICgoMSA8 PCAoZGVwdGggLSA4KSkpIC0gMSk7IFwKKyAgICBUaHJlYWREYXRhICp0ZCA9IGFyZzsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIEFWRnJhbWUgKm91dCA9IHRkLT5vdXQ7ICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgQVZGcmFtZSAqaW4gPSB0ZC0+aW47ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBwbGFuZSA9IDA7IHBs YW5lIDwgcy0+bmJfcGxhbmVzOyBwbGFuZSsrKSB7ICAgICAgIFwKKyAgICAgICAgY29uc3QgcHRy ZGlmZl90IHNsaW5lc2l6ZSA9IGluLT5saW5lc2l6ZVtwbGFuZV0gLyBzaXplb2YodHlwZSk7IFwK KyAgICAgICAgY29uc3QgcHRyZGlmZl90IGxpbmVzaXplID0gb3V0LT5saW5lc2l6ZVtwbGFuZV0g LyBzaXplb2YodHlwZSk7IFwKKyAgICAgICAgY29uc3QgaW50IGhlaWdodCA9IHMtPnBsYW5laGVp Z2h0W3BsYW5lXTsgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgaW50IHdpZHRoID0gcy0+ cGxhbmV3aWR0aFtwbGFuZV07ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgaW50IHNs aWNlX3N0YXJ0ID0gKGhlaWdodCAqIGpvYm5yKSAvIG5iX2pvYnM7ICAgIFwKKyAgICAgICAgY29u c3QgaW50IHNsaWNlX2VuZCA9IChoZWlnaHQgKiAoam9ibnIrMSkpIC8gbmJfam9iczsgIFwKKyAg ICAgICAgY29uc3QgaW50IGlfbGluZXNpemUgPSBzLT5pX2xpbmVzaXplW3BsYW5lXTsgICAgICAg ICAgIFwKKyAgICAgICAgY29uc3QgaW50IHNpemVoID0gcy0+c2l6ZWg7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgaW50IHNpemV3ID0gcy0+c2l6ZXc7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgdWludDY0X3QgKmlpID0gcy0+ aWlbcGxhbmVdICsgaV9saW5lc2l6ZTsgICAgICAgIFwKKyAgICAgICAgY29uc3QgdWludDY0X3Qg KmkyID0gcy0+aTJbcGxhbmVdICsgaV9saW5lc2l6ZTsgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICBjb25zdCB0eXBlICpzcmMgPSAoKGNvbnN0IHR5cGUgKilpbi0+ZGF0YVtwbGFuZV0pICsg c2xpY2Vfc3RhcnQgKiBzbGluZXNpemU7IFwKKyAgICAgICAgdHlwZSAqZHN0ID0gKCh0eXBlICop b3V0LT5kYXRhW3BsYW5lXSkgKyBzbGljZV9zdGFydCAqIGxpbmVzaXplOyAgICAgICAgIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIShzLT5wbGFuZXMgJiAoMSA8PCBwbGFuZSkp KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjb250aW51 ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgZm9yIChpbnQgeSA9IHNsaWNlX3N0YXJ0OyB5IDwgc2xpY2VfZW5kOyB5KyspIHsg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgY29uc3QgaW50IHQgPSBGRk1JTihzaXpl aCwgeSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjb25z dCBpbnQgYiA9IEZGTUlOKHNpemVoLCBoZWlnaHQgLSB5IC0gMSk7ICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgIGNvbnN0IGludCB0YiA9IHQrYjsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgY29uc3QgaW50IHliID0gKHkrYikg KiBpX2xpbmVzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBj b25zdCBpbnQgeXQgPSAoeS10KSAqIGlfbGluZXNpemU7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHgg PCB3aWR0aDsgeCsrKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgY29uc3QgaW50IGwgPSBGRk1JTihzaXpldywgeCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgICAgICBjb25zdCBpbnQgciA9IEZGTUlOKHNpemV3LCB3aWR0 aCAtIHggLSAxKTsgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGNvbnN0IGludCB4 bCA9IHggLSBsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAgICAgY29uc3QgaW50IHhyID0geCArIHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB0bDIgPSBpMlt5dCArIHhsXTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHVpbnQ2NF90 IHRyMiA9IGkyW3l0ICsgeHJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICAgICAgICAgdWludDY0X3QgYmwyID0gaTJbeWIgKyB4bF07ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBicjIgPSBpMlt5YiArIHhy XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHVpbnQ2 NF90IHRsICA9IGlpW3l0ICsgeGxdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICAgICAgICAgdWludDY0X3QgdHIgID0gaWlbeXQgKyB4cl07ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBibCAgPSBpaVt5YiAr IHhsXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHVp bnQ2NF90IGJyICA9IGlpW3liICsgeHJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgY29uc3QgZnR5cGUgc2NhbGUgPSAxLmYgLyAoKGwgKyByKSAqIHRi KTsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBmdHlwZSBJMiA9IGJyMiAtIGJs MiAtIHRyMiArIHRsMjsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAg IGZ0eXBlIEkxID0gYnIgLSBibCAtIHRyICsgdGw7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICAgICAgY29uc3QgZnR5cGUgbWVhbiA9IEkxICogc2NhbGU7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBjb25zdCBmdHlwZSBsdmFy ID0gSTIgKiBzY2FsZSAtIG1lYW4gKiBtZWFuOyAgICAgICAgICAgICAgXAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICAgICAgaWYgKGx2YXIgPiBndmFyKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgZHN0W3hdID0g YXZfY2xpcF91aW50cDJfYyhMUklOVChzcmNbeF0gKyAoKGd2YXIgLyBsdmFyKSAqIChtZWFuIC0g c3JjW3hdKSkpLCBkZXB0aCk7IFwKKyAgICAgICAgICAgICAgICBlbHNlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAg ICAgICBkc3RbeF0gPSBtZWFuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg c3JjICs9IHNsaW5lc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBkc3QgKz0gbGluZXNpemU7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gMDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCitG SUxURVIodWludDhfdCwgZmxvYXQsIDgsIGxyaW50ZikKK0ZJTFRFUih1aW50MTZfdCwgZG91Ymxl LCAxNiwgbHJpbnQpCisKK3N0YXRpYyBpbnQgY29uZmlnX2lucHV0KEFWRmlsdGVyTGluayAqaW5s aW5rKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gaW5saW5rLT5kc3Q7CisgICAgY29u c3QgQVZQaXhGbXREZXNjcmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChpbmxpbmst PmZvcm1hdCk7CisgICAgTWluVmFyQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIHVuaW5p dChjdHgpOworCisgICAgcy0+ZGVwdGggPSBkZXNjLT5jb21wWzBdLmRlcHRoOworICAgIHMtPm1h eCA9ICgxIDw8IHMtPmRlcHRoKSAtIDE7CisgICAgcy0+cGxhbmV3aWR0aFsxXSA9IHMtPnBsYW5l d2lkdGhbMl0gPSBBVl9DRUlMX1JTSElGVChpbmxpbmstPncsIGRlc2MtPmxvZzJfY2hyb21hX3cp OworICAgIHMtPnBsYW5ld2lkdGhbMF0gPSBzLT5wbGFuZXdpZHRoWzNdID0gaW5saW5rLT53Owor ICAgIHMtPnBsYW5laGVpZ2h0WzFdID0gcy0+cGxhbmVoZWlnaHRbMl0gPSBBVl9DRUlMX1JTSElG VChpbmxpbmstPmgsIGRlc2MtPmxvZzJfY2hyb21hX2gpOworICAgIHMtPnBsYW5laGVpZ2h0WzBd ID0gcy0+cGxhbmVoZWlnaHRbM10gPSBpbmxpbmstPmg7CisKKyAgICBzLT5jb21wdXRlX3NhdCA9 IHMtPmRlcHRoIDw9IDggPyBjb21wdXRlX3NhdDggOiBjb21wdXRlX3NhdDE2OworICAgIHMtPmZp bHRlciA9IHMtPmRlcHRoIDw9IDggPyBmaWx0ZXI4IDogZmlsdGVyMTY7CisgICAgcy0+bmJfcGxh bmVzID0gYXZfcGl4X2ZtdF9jb3VudF9wbGFuZXMoaW5saW5rLT5mb3JtYXQpOworCisgICAgZm9y IChpbnQgcCA9IDA7IHAgPCBzLT5uYl9wbGFuZXM7IHArKykgeworICAgICAgICBzLT5pX2xpbmVz aXplW3BdID0gKHMtPnBsYW5ld2lkdGhbcF0gKyAxKTsKKyAgICAgICAgcy0+aV9zaXplW3BdID0g cy0+aV9saW5lc2l6ZVtwXSAqIChzLT5wbGFuZWhlaWdodFtwXSArIDEpOworICAgICAgICBzLT5p aVtwXSA9IGF2X2NhbGxvYyhzLT5pX3NpemVbcF0sIHNpemVvZigqcy0+aWlbMF0pKTsKKyAgICAg ICAgcy0+aTJbcF0gPSBhdl9jYWxsb2Mocy0+aV9zaXplW3BdLCBzaXplb2YoKnMtPmkyWzBdKSk7 CisgICAgICAgIGlmICghcy0+aWlbcF0gfHwgIXMtPmkyW3BdKQorICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRU5PTUVNKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGNv bnN0IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10c1tdID0geworICAgIEFWX1BJWF9GTVRfWVVW QTQ0NFAsIEFWX1BJWF9GTVRfWVVWNDQ0UCwgQVZfUElYX0ZNVF9ZVVY0NDBQLAorICAgIEFWX1BJ WF9GTVRfWVVWSjQ0NFAsIEFWX1BJWF9GTVRfWVVWSjQ0MFAsCisgICAgQVZfUElYX0ZNVF9ZVVZB NDIyUCwgQVZfUElYX0ZNVF9ZVVY0MjJQLCBBVl9QSVhfRk1UX1lVVkE0MjBQLCBBVl9QSVhfRk1U X1lVVjQyMFAsCisgICAgQVZfUElYX0ZNVF9ZVVZKNDIyUCwgQVZfUElYX0ZNVF9ZVVZKNDIwUCwK KyAgICBBVl9QSVhfRk1UX1lVVko0MTFQLCBBVl9QSVhfRk1UX1lVVjQxMVAsIEFWX1BJWF9GTVRf WVVWNDEwUCwKKyAgICBBVl9QSVhfRk1UX1lVVjQyMFA5LCBBVl9QSVhfRk1UX1lVVjQyMlA5LCBB Vl9QSVhfRk1UX1lVVjQ0NFA5LAorICAgIEFWX1BJWF9GTVRfWVVWNDIwUDEwLCBBVl9QSVhfRk1U X1lVVjQyMlAxMCwgQVZfUElYX0ZNVF9ZVVY0NDRQMTAsCisgICAgQVZfUElYX0ZNVF9ZVVY0MjBQ MTIsIEFWX1BJWF9GTVRfWVVWNDIyUDEyLCBBVl9QSVhfRk1UX1lVVjQ0NFAxMiwgQVZfUElYX0ZN VF9ZVVY0NDBQMTIsCisgICAgQVZfUElYX0ZNVF9ZVVY0MjBQMTQsIEFWX1BJWF9GTVRfWVVWNDIy UDE0LCBBVl9QSVhfRk1UX1lVVjQ0NFAxNCwKKyAgICBBVl9QSVhfRk1UX1lVVjQyMFAxNiwgQVZf UElYX0ZNVF9ZVVY0MjJQMTYsIEFWX1BJWF9GTVRfWVVWNDQ0UDE2LAorICAgIEFWX1BJWF9GTVRf WVVWQTQyMFA5LCBBVl9QSVhfRk1UX1lVVkE0MjJQOSwgQVZfUElYX0ZNVF9ZVVZBNDQ0UDksCisg ICAgQVZfUElYX0ZNVF9ZVVZBNDIwUDEwLCBBVl9QSVhfRk1UX1lVVkE0MjJQMTAsIEFWX1BJWF9G TVRfWVVWQTQ0NFAxMCwKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjJQMTIsIEFWX1BJWF9GTVRfWVVW QTQ0NFAxMiwKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjBQMTYsIEFWX1BJWF9GTVRfWVVWQTQyMlAx NiwgQVZfUElYX0ZNVF9ZVVZBNDQ0UDE2LAorICAgIEFWX1BJWF9GTVRfR0JSUCwgQVZfUElYX0ZN VF9HQlJQOSwgQVZfUElYX0ZNVF9HQlJQMTAsCisgICAgQVZfUElYX0ZNVF9HQlJQMTIsIEFWX1BJ WF9GTVRfR0JSUDE0LCBBVl9QSVhfRk1UX0dCUlAxNiwKKyAgICBBVl9QSVhfRk1UX0dCUkFQLCBB Vl9QSVhfRk1UX0dCUkFQMTAsIEFWX1BJWF9GTVRfR0JSQVAxMiwgQVZfUElYX0ZNVF9HQlJBUDE2 LAorICAgIEFWX1BJWF9GTVRfR1JBWTgsIEFWX1BJWF9GTVRfR1JBWTksIEFWX1BJWF9GTVRfR1JB WTEwLCBBVl9QSVhfRk1UX0dSQVkxMiwgQVZfUElYX0ZNVF9HUkFZMTQsIEFWX1BJWF9GTVRfR1JB WTE2LAorICAgIEFWX1BJWF9GTVRfTk9ORQorfTsKKworc3RhdGljIGludCBmaWx0ZXJfZnJhbWUo QVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJhbWUgKmluKQoreworICAgIEFWRmlsdGVyQ29udGV4 dCAqY3R4ID0gaW5saW5rLT5kc3Q7CisgICAgTWluVmFyQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsK KyAgICBBVkZpbHRlckxpbmsgKm91dGxpbmsgPSBjdHgtPm91dHB1dHNbMF07CisgICAgVGhyZWFk RGF0YSB0ZDsKKyAgICBBVkZyYW1lICpvdXQ7CisKKyAgICBpZiAoYXZfZnJhbWVfaXNfd3JpdGFi bGUoaW4pKSB7CisgICAgICAgIG91dCA9IGluOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCA9 IGZmX2dldF92aWRlb19idWZmZXIob3V0bGluaywgb3V0bGluay0+dywgb3V0bGluay0+aCk7Cisg ICAgICAgIGlmICghb3V0KSB7CisgICAgICAgICAgICBhdl9mcmFtZV9mcmVlKCZpbik7CisgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICB9CisgICAgICAgIGF2X2Zy YW1lX2NvcHlfcHJvcHMob3V0LCBpbik7CisgICAgfQorCisgICAgZm9yIChpbnQgcGxhbmUgPSAw OyBwbGFuZSA8IHMtPm5iX3BsYW5lczsgcGxhbmUrKykgeworICAgICAgICBjb25zdCBpbnQgaGVp Z2h0ID0gcy0+cGxhbmVoZWlnaHRbcGxhbmVdOworICAgICAgICBjb25zdCBpbnQgaV9saW5lc2l6 ZSA9IHMtPmlfbGluZXNpemVbcGxhbmVdOworICAgICAgICBjb25zdCBpbnQgd2lkdGggPSBzLT5w bGFuZXdpZHRoW3BsYW5lXTsKKyAgICAgICAgdWludDY0X3QgKmlpID0gcy0+aWlbcGxhbmVdOwor ICAgICAgICB1aW50NjRfdCAqaTIgPSBzLT5pMltwbGFuZV07CisKKyAgICAgICAgaWYgKCEocy0+ cGxhbmVzICYgKDEgPDwgcGxhbmUpKSkgeworICAgICAgICAgICAgaWYgKG91dCAhPSBpbikKKyAg ICAgICAgICAgICAgICBhdl9pbWFnZV9jb3B5X3BsYW5lKG91dC0+ZGF0YVtwbGFuZV0sIG91dC0+ bGluZXNpemVbcGxhbmVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4t PmRhdGFbcGxhbmVdLCBpbi0+bGluZXNpemVbcGxhbmVdLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2lkdGggKiAoKHMtPmRlcHRoICsgNykgLyA4KSwgaGVpZ2h0KTsKKyAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgcy0+Y29tcHV0ZV9zYXQo aW4tPmRhdGFbcGxhbmVdLCBpbi0+bGluZXNpemVbcGxhbmVdLAorICAgICAgICAgICAgICAgICAg ICAgICB3aWR0aCwgaGVpZ2h0LCBzLT5tYXgsCisgICAgICAgICAgICAgICAgICAgICAgIGlpLCBp MiwgaV9saW5lc2l6ZSk7CisgICAgfQorCisgICAgdGQuaW4gPSBpbjsKKyAgICB0ZC5vdXQgPSBv dXQ7CisKKyAgICBmZl9maWx0ZXJfZXhlY3V0ZShjdHgsIHMtPmZpbHRlciwgJnRkLCBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgIEZGTUlOKHMtPnBsYW5laGVpZ2h0WzFdLCBmZl9maWx0ZXJf Z2V0X25iX3RocmVhZHMoY3R4KSkpOworCisgICAgaWYgKG91dCAhPSBpbikKKyAgICAgICAgYXZf ZnJhbWVfZnJlZSgmaW4pOworICAgIHJldHVybiBmZl9maWx0ZXJfZnJhbWUob3V0bGluaywgb3V0 KTsKK30KKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIG1pbnZhcl9pbnB1dHNbXSA9IHsKKyAg ICB7CisgICAgICAgIC5uYW1lICAgICAgICAgPSAiZGVmYXVsdCIsCisgICAgICAgIC50eXBlICAg ICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisgICAgICAgIC5jb25maWdfcHJvcHMgPSBjb25m aWdfaW5wdXQsCisgICAgICAgIC5maWx0ZXJfZnJhbWUgPSBmaWx0ZXJfZnJhbWUsCisgICAgfSwK K307CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBtaW52YXJfb3V0cHV0c1tdID0geworICAg IHsKKyAgICAgICAgLm5hbWUgPSAiZGVmYXVsdCIsCisgICAgICAgIC50eXBlID0gQVZNRURJQV9U WVBFX1ZJREVPLAorICAgIH0sCit9OworCitjb25zdCBBVkZpbHRlciBmZl92Zl9taW52YXIgPSB7 CisgICAgLm5hbWUgICAgICAgICAgPSAibWludmFyIiwKKyAgICAuZGVzY3JpcHRpb24gICA9IE5V TExfSUZfQ09ORklHX1NNQUxMKCJBcHBseSBNaW5pbXVtIFZhcmlhbmNlIGZpbHRlci4iKSwKKyAg ICAucHJpdl9zaXplICAgICA9IHNpemVvZihNaW5WYXJDb250ZXh0KSwKKyAgICAucHJpdl9jbGFz cyAgICA9ICZtaW52YXJfY2xhc3MsCisgICAgLnVuaW5pdCAgICAgICAgPSB1bmluaXQsCisgICAg RklMVEVSX0lOUFVUUyhtaW52YXJfaW5wdXRzKSwKKyAgICBGSUxURVJfT1VUUFVUUyhtaW52YXJf b3V0cHV0cyksCisgICAgRklMVEVSX1BJWEZNVFNfQVJSQVkocGl4X2ZtdHMpLAorICAgIC5mbGFn cyAgICAgICAgID0gQVZGSUxURVJfRkxBR19TVVBQT1JUX1RJTUVMSU5FX0dFTkVSSUMgfAorICAg ICAgICAgICAgICAgICAgICAgQVZGSUxURVJfRkxBR19TTElDRV9USFJFQURTLAorICAgIC5wcm9j ZXNzX2NvbW1hbmQgPSBmZl9maWx0ZXJfcHJvY2Vzc19jb21tYW5kLAorfTsKLS0gCjIuMzcuMgoK --000000000000cc282a05ef54c2ef 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". --000000000000cc282a05ef54c2ef--