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 7C64F42617 for ; Sun, 24 Apr 2022 22:03:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4D8CE68AF51; Mon, 25 Apr 2022 01:03:25 +0300 (EEST) Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0CC64688050 for ; Mon, 25 Apr 2022 01:03:23 +0300 (EEST) Received: from postfix03.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout01.mail.de (Postfix) with ESMTP id 0118AA0931 for ; Mon, 25 Apr 2022 00:03:23 +0200 (CEST) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix03.mail.de (Postfix) with ESMTP id DB6AF801CF for ; Mon, 25 Apr 2022 00:03:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1650837802; bh=mrtGzGyfs0VTfvsfeOAF9QqEhl9aNFYJblaw1E5Aun8=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=XudegFxHIf9rwcIxfGSPtscFrp2DH1+cNu+Ma0UeLbNl4xRZwdZMqePHL/UNCoLmF Bb4RhLqdpzKp/a6YizFaG/TWvV0a2DrSSLaKxTMsNSBHpri3oTMtWicwxFZYTi55ps 8Fd3iwglh0Tt69JH8txaa9YdOf15ZM4V5Y1kwOuWRD5tlil+rjTFvQ2F5pwyymvRtU e4H/NmcSBJbjhVcegpekRJvJFc+unQPIBBa38sO3M3S+XVYI1FtRl0YSgYtMGVXV6l PIlyxgQYA6MuIIRUaVwbYp3xX+SsKmr/W+3s4MV0FRH4VIYjyPF7qLe+QdQ+tF7NSZ H0yHr955LTtgw== 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 smtp03.mail.de (Postfix) with ESMTPSA id A5CD0A014C for ; Mon, 25 Apr 2022 00:03:22 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------WQvRsygAn0oug39YWxmHeBXy" Message-ID: Date: Mon, 25 Apr 2022 00:03:21 +0200 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <00ca6f6f-fc18-8b6b-1ff0-f24db7f3714b@mail.de> <6ef64d28-6f3a-93f5-5f72-29e40fc73e86@mail.de> <8a6f5d41-c68a-5076-2f6b-932637ccb691@mail.de> <9c0ddee4-1740-f951-18d8-532026410783@mail.de> From: Thilo Borgmann In-Reply-To: <9c0ddee4-1740-f951-18d8-532026410783@mail.de> 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: 27397 X-purgate-ID: 154282::1650837802-0000061A-730B62F1/0/0 Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavfi: Add blurriness 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. --------------WQvRsygAn0oug39YWxmHeBXy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Am 24.04.22 um 19:28 schrieb Thilo Borgmann: > Am 23.04.22 um 15:32 schrieb Thilo Borgmann: >> Hi, >> >>>>>> v3 updated to current HEAD. >>>>>> >>>>>> Named blurdetect filter now. >>>>>> Minor fixes on allocation and removed -f option. >>>>>> >>>>> >>>>> Please make this per plane filtering, with default to measure only first >>>>> plane. >>>> >>>> done in v4. >>>> >>>> (Will add Changelog, version.h and fate test once the filter itself looks ok) >>> >>> Ping. >> >> v5 according to IRC comments. > > v6 (1/2 and 2/2) according to IRC comments. LGTM'd there, applying soon. > > Added Changelog, version.h, FATE. v7: removed useless debug garbage. Still applying soon. -Thilo --------------WQvRsygAn0oug39YWxmHeBXy Content-Type: text/plain; charset=UTF-8; name="v7-0002-lavfi-Add-blurdetect-filter.patch" Content-Disposition: attachment; filename="v7-0002-lavfi-Add-blurdetect-filter.patch" Content-Transfer-Encoding: base64 RnJvbSAyODc5Y2ZkOTQzNThhYTk3N2RkN2Y0MzE0ZjkzMWZiNzgyNzUwZjk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogTW9uLCAyNSBBcHIgMjAyMiAwMDowMTo1MSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjcgMi8yXSBsYXZmaTogQWRkIGJsdXJkZXRlY3QgZmlsdGVyCgotLS0KIENo YW5nZWxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9j L2ZpbHRlcnMudGV4aSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MiArKysKIGxp YmF2ZmlsdGVyL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogbGli YXZmaWx0ZXIvYWxsZmlsdGVycy5jICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsaWJh dmZpbHRlci92ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBsaWJh dmZpbHRlci92Zl9ibHVyZGV0ZWN0LmMgICAgICAgICAgICAgICAgIHwgMzk1ICsrKysrKysr KysrKysrKysrKysrCiB0ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsgICAgICAgICAgICAg ICAgIHwgICAzICsKIHRlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtYmx1cmRldGVjdC15 dXYgfCAgMTAgKwogOCBmaWxlcyBjaGFuZ2VkLCA0NjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3ZmX2JsdXJkZXRlY3Qu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtYmx1 cmRldGVjdC15dXYKCmRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cgYi9DaGFuZ2Vsb2cKaW5kZXgg N2E2M2UzZDFlZS4uNGQ0NjdlYjc0MSAxMDA2NDQKLS0tIGEvQ2hhbmdlbG9nCisrKyBiL0No YW5nZWxvZwpAQCAtMTMsNiArMTMsNyBAQCB2ZXJzaW9uIDUuMToKIC0gcGl4ZWxpemUgdmlk ZW8gZmlsdGVyCiAtIGNvbG9ybWFwIHZpZGVvIGZpbHRlcgogLSBjb2xvcmNoYXJ0IHZpZGVv IHNvdXJjZSBmaWx0ZXIKKy0gYmx1cmRldGVjdCBmaWx0ZXIKIAogCiB2ZXJzaW9uIDUuMDoK ZGlmZiAtLWdpdCBhL2RvYy9maWx0ZXJzLnRleGkgYi9kb2MvZmlsdGVycy50ZXhpCmluZGV4 IGM4Njk5YjkwOTkuLjQ5OWYzYWRjZDkgMTAwNjQ0Ci0tLSBhL2RvYy9maWx0ZXJzLnRleGkK KysrIGIvZG9jL2ZpbHRlcnMudGV4aQpAQCAtNzk5Nyw2ICs3OTk3LDU4IEBAIHRibGVuZD1h bGxfbW9kZT1ncmFpbmV4dHJhY3QKIEBzdWJzZWN0aW9uIENvbW1hbmRzCiBUaGlzIGZpbHRl ciBzdXBwb3J0cyBzYW1lIEByZWZ7Y29tbWFuZHN9IGFzIG9wdGlvbnMuCiAKK0BhbmNob3J7 Ymx1cmRldGVjdH0KK0BzZWN0aW9uIGJsdXJkZXRlY3QKKworRGV0ZXJtaW5lcyBibHVycmlu ZXNzIG9mIGZyYW1lcyB3aXRob3V0IGFsdGVyaW5nIHRoZSBpbnB1dCBmcmFtZXMuCisKK0Jh c2VkIG9uIE1hcnppbGlhbm8sIFBpbmEsIGV0IGFsLiAiQSBuby1yZWZlcmVuY2UgcGVyY2Vw dHVhbCBibHVyIG1ldHJpYy4iCitBbGxvd3MgZm9yIGEgYmxvY2stYmFzZWQgYWJicmV2aWF0 aW9uLgorCitUaGUgZmlsdGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitA dGFibGUgQG9wdGlvbgorQGl0ZW0gbG93CitAaXRlbSBoaWdoCitTZXQgbG93IGFuZCBoaWdo IHRocmVzaG9sZCB2YWx1ZXMgdXNlZCBieSB0aGUgQ2FubnkgdGhyZXNob2xkaW5nCithbGdv cml0aG0uCisKK1RoZSBoaWdoIHRocmVzaG9sZCBzZWxlY3RzIHRoZSAic3Ryb25nIiBlZGdl IHBpeGVscywgd2hpY2ggYXJlIHRoZW4KK2Nvbm5lY3RlZCB0aHJvdWdoIDgtY29ubmVjdGl2 aXR5IHdpdGggdGhlICJ3ZWFrIiBlZGdlIHBpeGVscyBzZWxlY3RlZAorYnkgdGhlIGxvdyB0 aHJlc2hvbGQuCisKK0B2YXJ7bG93fSBhbmQgQHZhcntoaWdofSB0aHJlc2hvbGQgdmFsdWVz IG11c3QgYmUgY2hvc2VuIGluIHRoZSByYW5nZQorWzAsMV0sIGFuZCBAdmFye2xvd30gc2hv dWxkIGJlIGxlc3NlciBvciBlcXVhbCB0byBAdmFye2hpZ2h9LgorCitEZWZhdWx0IHZhbHVl IGZvciBAdmFye2xvd30gaXMgQGNvZGV7MjAvMjU1fSwgYW5kIGRlZmF1bHQgdmFsdWUgZm9y IEB2YXJ7aGlnaH0KK2lzIEBjb2RlezUwLzI1NX0uCisKK0BpdGVtIHJhZGl1cworRGVmaW5l IHRoZSByYWRpdXMgdG8gc2VhcmNoIGFyb3VuZCBhbiBlZGdlIHBpeGVsIGZvciBsb2NhbCBt YXhpbWEuCisKK0BpdGVtIGJsb2NrX3BjdAorRGV0ZXJtaW5lIGJsdXJyaW5lc3Mgb25seSBm b3IgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYmxvY2tzLCBnaXZlbiBpbiBwZXJjZW50YWdlLgor CitAaXRlbSBibG9ja193aWR0aAorRGV0ZXJtaW5lIGJsdXJyaW5lc3MgZm9yIGJsb2NrcyBv ZiB3aWR0aCBAdmFye2Jsb2NrX3dpZHRofS4gSWYgc2V0IHRvIGFueSB2YWx1ZSBzbWFsbGVy IDEsIG5vIGJsb2NrcyBhcmUgdXNlZCBhbmQgdGhlIHdob2xlIGltYWdlIGlzIHByb2Nlc3Nl ZCBhcyBvbmUgbm8gbWF0dGVyIG9mIEB2YXJ7YmxvY2tfaGVpZ2h0fS4KKworQGl0ZW0gYmxv Y2tfaGVpZ2h0CitEZXRlcm1pbmUgYmx1cnJpbmVzcyBmb3IgYmxvY2tzIG9mIGhlaWdodCBA dmFye2Jsb2NrX2hlaWdodH0uIElmIHNldCB0byBhbnkgdmFsdWUgc21hbGxlciAxLCBubyBi bG9ja3MgYXJlIHVzZWQgYW5kIHRoZSB3aG9sZSBpbWFnZSBpcyBwcm9jZXNzZWQgYXMgb25l IG5vIG1hdHRlciBvZiBAdmFye2Jsb2NrX3dpZHRofS4KKworQGl0ZW0gcGxhbmVzCitTZXQg cGxhbmVzIHRvIGZpbHRlci4gRGVmYXVsdCBpcyBmaXJzdCBvbmx5LgorQGVuZCB0YWJsZQor CitAc3Vic2VjdGlvbiBFeGFtcGxlcworCitAaXRlbWl6ZQorQGl0ZW0KK0RldGVybWluZSBi bHVyIGZvciA4MCUgb2YgbW9zdCBzaWduaWZpY2FudCAzMngzMiBibG9ja3M6CitAZXhhbXBs ZQorYmx1cmRldGVjdD1ibG9ja193aWR0aD0zMjpibG9ja19oZWlnaHQ9MzI6YmxvY2tfcGN0 PTgwCitAZW5kIGV4YW1wbGUKK0BlbmQgaXRlbWl6ZQorCiBAc2VjdGlvbiBibTNkCiAKIERl bm9pc2UgZnJhbWVzIHVzaW5nIEJsb2NrLU1hdGNoaW5nIDNEIGFsZ29yaXRobS4KZGlmZiAt LWdpdCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKaW5k ZXggMzhjYTM3OWU1YS4uMWRiMDk3YjQ2NCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvTWFr ZWZpbGUKKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAgLTE5NSw2ICsxOTUsNyBAQCBP QkpTLSQoQ09ORklHX0JMQUNLREVURUNUX0ZJTFRFUikgICAgICAgICAgICArPSB2Zl9ibGFj a2RldGVjdC5vCiBPQkpTLSQoQ09ORklHX0JMQUNLRlJBTUVfRklMVEVSKSAgICAgICAgICAg ICArPSB2Zl9ibGFja2ZyYW1lLm8KIE9CSlMtJChDT05GSUdfQkxFTkRfRklMVEVSKSAgICAg ICAgICAgICAgICAgICs9IHZmX2JsZW5kLm8gZnJhbWVzeW5jLm8KIE9CSlMtJChDT05GSUdf QkxFTkRfVlVMS0FOX0ZJTFRFUikgICAgICAgICAgICs9IHZmX2JsZW5kX3Z1bGthbi5vIGZy YW1lc3luYy5vIHZ1bGthbi5vIHZ1bGthbl9maWx0ZXIubworT0JKUy0kKENPTkZJR19CTFVS REVURUNUX0ZJTFRFUikgICAgICAgICAgICAgKz0gdmZfYmx1cmRldGVjdC5vIGVkZ2VfY29t bW9uLm8KIE9CSlMtJChDT05GSUdfQk0zRF9GSUxURVIpICAgICAgICAgICAgICAgICAgICs9 IHZmX2JtM2QubyBmcmFtZXN5bmMubwogT0JKUy0kKENPTkZJR19CT1hCTFVSX0ZJTFRFUikg ICAgICAgICAgICAgICAgKz0gdmZfYm94Ymx1ci5vIGJveGJsdXIubwogT0JKUy0kKENPTkZJ R19CT1hCTFVSX09QRU5DTF9GSUxURVIpICAgICAgICAgKz0gdmZfYXZnYmx1cl9vcGVuY2wu byBvcGVuY2wubyBcCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgYi9s aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKaW5kZXggMzZmYTNhZThkNy4uMmFkNTIzZmQwZiAx MDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCisrKyBiL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYwpAQCAtMTgzLDYgKzE4Myw3IEBAIGV4dGVybiBjb25zdCBBVkZpbHRl ciBmZl92Zl9ibGFja2RldGVjdDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9ibGFj a2ZyYW1lOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2JsZW5kOwogZXh0ZXJuIGNv bnN0IEFWRmlsdGVyIGZmX3ZmX2JsZW5kX3Z1bGthbjsKK2V4dGVybiBjb25zdCBBVkZpbHRl ciBmZl92Zl9ibHVyZGV0ZWN0OwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2JtM2Q7 CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYm94Ymx1cjsKIGV4dGVybiBjb25zdCBB VkZpbHRlciBmZl92Zl9ib3hibHVyX29wZW5jbDsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVy L3ZlcnNpb24uaCBiL2xpYmF2ZmlsdGVyL3ZlcnNpb24uaAppbmRleCA5YWRkMTY1OGU1Li44 ZjFiMTY5NjlhIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92ZXJzaW9uLmgKKysrIGIvbGli YXZmaWx0ZXIvdmVyc2lvbi5oCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlICJ2ZXJz aW9uX21ham9yLmgiCiAKLSNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgMzYK KyNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgMzcKICNkZWZpbmUgTElCQVZG SUxURVJfVkVSU0lPTl9NSUNSTyAxMDAKIAogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9ibHVyZGV0ZWN0LmMgYi9saWJhdmZpbHRlci92Zl9ibHVyZGV0ZWN0LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2MwZjVjZTY4YQotLS0gL2Rldi9udWxs CisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2JsdXJkZXRlY3QuYwpAQCAtMCwwICsxLDM5NSBAQAor LyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21h bm4gX2F0XyBtYWlsLmRlPgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4K KyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq IEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisvKioKKyAqIEBm aWxlCisgKiBOby1yZWZlcmVuY2UgYmx1cmRldGVjdCBmaWx0ZXIKKyAqCisgKiBJbXBsZW1l bnRpbmc6CisgKiBNYXJ6aWxpYW5vLCBQaW5hLCBldCBhbC4gIkEgbm8tcmVmZXJlbmNlIHBl cmNlcHR1YWwgYmx1ciBtZXRyaWMuIiBQcm9jZWVkaW5ncy4KKyAqIEludGVybmF0aW9uYWwg Y29uZmVyZW5jZSBvbiBpbWFnZSBwcm9jZXNzaW5nLiBWb2wuIDMuIElFRUUsIDIwMDIuCisg KiBodHRwczovL2luZm9zY2llbmNlLmVwZmwuY2gvcmVjb3JkLzExMTgwMi9maWxlcy8xNCUy MEElMjBuby1yZWZlcmVuY2UlMjBwZXJjZXB0dWFsJTIwYmx1ciUyMG1ldHJpYy5wZGYKKyAq CisgKiBAYXV0aG9yIFRoaWxvIEJvcmdtYW5uIDx0aGlsby5ib3JnbWFubiBfYXRfIG1haWwu ZGU+CisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgorI2luY2x1ZGUg ImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNp bmNsdWRlICJsaWJhdnV0aWwvcGl4ZWx1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9t b3Rpb25fdmVjdG9yLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL3Fzb3J0LmgiCisjaW5jbHVk ZSAiYXZmaWx0ZXIuaCIKKyNpbmNsdWRlICJmb3JtYXRzLmgiCisjaW5jbHVkZSAiaW50ZXJu YWwuaCIKKyNpbmNsdWRlICJ2aWRlby5oIgorI2luY2x1ZGUgImVkZ2VfY29tbW9uLmgiCisK K3N0YXRpYyBpbnQgY29tcChjb25zdCBmbG9hdCAqYSxjb25zdCBmbG9hdCAqYikKK3sKKyAg ICByZXR1cm4gRkZESUZGU0lHTigqYSwgKmIpOworfQorCit0eXBlZGVmIHN0cnVjdCBCTFJD b250ZXh0IHsKKyAgICBjb25zdCBBVkNsYXNzICpjbGFzczsKKworICAgIGludCBoc3ViLCB2 c3ViOworICAgIGludCBuYl9wbGFuZXM7CisKKyAgICBmbG9hdCAgIGxvdywgaGlnaDsKKyAg ICB1aW50OF90IGxvd191OCwgaGlnaF91ODsKKyAgICBpbnQgICAgIHJhZGl1czsgICAgICAg IC8vIHJhZGl1cyBkdXJpbmcgbG9jYWwgbWF4aW1hIGRldGVjdGlvbgorICAgIGludCAgICAg YmxvY2tfcGN0OyAgICAgLy8gcGVyY2VudGFnZSBvZiAic2hhcnBlc3QiIGJsb2NrcyBpbiB0 aGUgaW1hZ2UgdG8gdXNlIGZvciBibHVyaW5lc3MgY2FsY3VsYXRpb24KKyAgICBpbnQgICAg IGJsb2NrX3dpZHRoOyAgIC8vIHdpZHRoIGZvciBibG9jayBhYmJyZXZpYXRpb24KKyAgICBp bnQgICAgIGJsb2NrX2hlaWdodDsgIC8vIGhlaWdodCBmb3IgYmxvY2sgYWJicmV2aWF0aW9u CisgICAgaW50ICAgICBwbGFuZXM7ICAgICAgICAvLyBudW1iZXIgb2YgcGxhbmVzIHRvIGZp bHRlcgorCisgICAgZG91YmxlICAgYmx1cl90b3RhbDsKKyAgICB1aW50NjRfdCBuYl9mcmFt ZXM7CisKKyAgICBmbG9hdCAgICAqYmxrczsKKyAgICB1aW50OF90ICAqZmlsdGVyYnVmOwor ICAgIHVpbnQ4X3QgICp0bXBidWY7CisgICAgdWludDE2X3QgKmdyYWRpZW50czsKKyAgICBj aGFyICAgICAqZGlyZWN0aW9uczsKK30gQkxSQ29udGV4dDsKKworI2RlZmluZSBPRkZTRVQo eCkgb2Zmc2V0b2YoQkxSQ29udGV4dCwgeCkKKyNkZWZpbmUgRkxBR1MgQVZfT1BUX0ZMQUdf RklMVEVSSU5HX1BBUkFNfEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNCitzdGF0aWMgY29uc3Qg QVZPcHRpb24gYmx1cmRldGVjdF9vcHRpb25zW10gPSB7CisgICAgeyAiaGlnaCIsICAgICAg ICAgICJzZXQgaGlnaCB0aHJlc2hvbGQiLCBPRkZTRVQoaGlnaCksIEFWX09QVF9UWVBFX0ZM T0FULCB7LmRibD0zMC8yNTUufSwgMCwgMSwgRkxBR1MgfSwKKyAgICB7ICJsb3ciLCAgICAg ICAgICAgInNldCBsb3cgdGhyZXNob2xkIiwgIE9GRlNFVChsb3cpLCAgQVZfT1BUX1RZUEVf RkxPQVQsIHsuZGJsPTE1LzI1NS59LCAwLCAxLCBGTEFHUyB9LAorICAgIHsgInJhZGl1cyIs ICAgICAgICAic2VhcmNoIHJhZGl1cyBmb3IgbWF4aW1hIGRldGVjdGlvbiIsIE9GRlNFVChy YWRpdXMpLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0PTUwfSwgMSwgMTAwLCBGTEFHUyB9LAor ICAgIHsgImJsb2NrX3BjdCIsICAgICAiYmxvY2sgcG9vbGluZyB0aHJlc2hvbGQgd2hlbiBj YWxjdWxhdGluZyBibHVycmluZXNzIiwgT0ZGU0VUKGJsb2NrX3BjdCksIEFWX09QVF9UWVBF X0lOVCwgey5pNjQ9ODB9LCAxLCAxMDAsIEZMQUdTIH0sCisgICAgeyAiYmxvY2tfd2lkdGgi LCAgICJibG9jayBzaXplIGZvciBibG9jay1iYXNlZCBhYmJyZXZpYXRpb24gb2YgYmx1cnJp bmVzcyIsIE9GRlNFVChibG9ja193aWR0aCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQ9LTF9 LCAtMSwgSU5UX01BWCwgRkxBR1MgfSwKKyAgICB7ICJibG9ja19oZWlnaHQiLCAgImJsb2Nr IHNpemUgZm9yIGJsb2NrLWJhc2VkIGFiYnJldmlhdGlvbiBvZiBibHVycmluZXNzIiwgT0ZG U0VUKGJsb2NrX2hlaWdodCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQ9LTF9LCAtMSwgSU5U X01BWCwgRkxBR1MgfSwKKyAgICB7ICJwbGFuZXMiLCAgICAgICAgInNldCBwbGFuZXMgdG8g ZmlsdGVyIiwgT0ZGU0VUKHBsYW5lcyksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQ9MX0sIDAs IDE1LCBGTEFHUyB9LAorICAgIHsgTlVMTCB9Cit9OworCitBVkZJTFRFUl9ERUZJTkVfQ0xB U1MoYmx1cmRldGVjdCk7CisKK3N0YXRpYyBhdl9jb2xkIGludCBibHVyZGV0ZWN0X2luaXQo QVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7CisgICAgQkxSQ29udGV4dCAqcyA9IGN0eC0+cHJp djsKKworICAgIHMtPmxvd191OCAgPSBzLT5sb3cgICogMjU1LiArIC41OworICAgIHMtPmhp Z2hfdTggPSBzLT5oaWdoICogMjU1LiArIC41OworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYmx1cmRldGVjdF9jb25maWdfaW5wdXQoQVZGaWx0ZXJMaW5rICppbmxpbmsp Cit7CisgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggPSBpbmxpbmstPmRzdDsKKyAgICBCTFJD b250ZXh0ICAgICAgKnMgICA9IGN0eC0+cHJpdjsKKyAgICBjb25zdCBpbnQgYnVmc2l6ZSAg ICA9IGlubGluay0+dyAqIGlubGluay0+aDsKKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0 b3IgKnBpeF9kZXNjOworCisgICAgcGl4X2Rlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGlu bGluay0+Zm9ybWF0KTsKKyAgICBzLT5oc3ViID0gcGl4X2Rlc2MtPmxvZzJfY2hyb21hX3c7 CisgICAgcy0+dnN1YiA9IHBpeF9kZXNjLT5sb2cyX2Nocm9tYV9oOworICAgIHMtPm5iX3Bs YW5lcyA9IGF2X3BpeF9mbXRfY291bnRfcGxhbmVzKGlubGluay0+Zm9ybWF0KTsKKworICAg IGlmIChzLT5ibG9ja193aWR0aCAgPCAxIHx8IHMtPmJsb2NrX2hlaWdodCA8IDEpIHsKKyAg ICAgICAgcy0+YmxvY2tfd2lkdGggID0gaW5saW5rLT53OworICAgICAgICBzLT5ibG9ja19o ZWlnaHQgPSBpbmxpbmstPmg7CisgICAgfQorCisgICAgcy0+dG1wYnVmICAgICA9IGF2X21h bGxvYyhidWZzaXplKTsKKyAgICBzLT5maWx0ZXJidWYgID0gYXZfbWFsbG9jKGJ1ZnNpemUp OworICAgIHMtPmdyYWRpZW50cyAgPSBhdl9jYWxsb2MoYnVmc2l6ZSwgc2l6ZW9mKCpzLT5n cmFkaWVudHMpKTsKKyAgICBzLT5kaXJlY3Rpb25zID0gYXZfbWFsbG9jKGJ1ZnNpemUpOwor ICAgIHMtPmJsa3MgICAgICAgPSBhdl9jYWxsb2MoKGlubGluay0+dyAvIHMtPmJsb2NrX3dp ZHRoKSAqIChpbmxpbmstPmggLyBzLT5ibG9ja19oZWlnaHQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKCpzLT5ibGtzKSk7CisKKyAgICBpZiAoIXMtPnRtcGJ1 ZiB8fCAhcy0+ZmlsdGVyYnVmIHx8ICFzLT5ncmFkaWVudHMgfHwgIXMtPmRpcmVjdGlvbnMg fHwgIXMtPmJsa3MpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBy ZXR1cm4gMDsKK30KKworLy8gZWRnZSB3aWR0aCBpcyBkZWZpbmVkIGFzIHRoZSBkaXN0YW5j ZSBiZXR3ZWVuIHN1cnJvdW5kaW5nIG1heGltYSBvZiB0aGUgZWRnZSBwaXhlbAorc3RhdGlj IGZsb2F0IGVkZ2Vfd2lkdGgoQkxSQ29udGV4dCAqYmxyLCBpbnQgaSwgaW50IGosIGludDhf dCBkaXIsIGludCB3LCBpbnQgaCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBlZGdl LCBjb25zdCB1aW50OF90ICpzcmMsIGludCBzcmNfbGluZXNpemUpCit7CisgICAgZmxvYXQg d2lkdGggPSAwOworICAgIGludCBkWCwgZFk7CisgICAgaW50IHNpZ247CisgICAgaW50IHRt cDsKKyAgICBpbnQgcDE7CisgICAgaW50IHAyOworICAgIGludCBrLCB4LCB5OworICAgIGlu dCBlZGdlMTsKKyAgICBpbnQgZWRnZTI7CisgICAgZmxvYXQgbHVtYTEgPSAwLjA7IC8vIGF2 ZXJhZ2UgbHVtYSBkaWZmZXJlbmNlIHBlciBlZGdlIHBpeGVsCisgICAgZmxvYXQgbHVtYTIg PSAwLjA7CisgICAgaW50IHJhZGl1cyA9IGJsci0+cmFkaXVzOworCisgICAgc3dpdGNoKGRp cikgeworICAgIGNhc2UgRElSRUNUSU9OX0hPUklaT05UQUw6IGRYID0gMTsgZFkgPSAgMDsg YnJlYWs7CisgICAgY2FzZSBESVJFQ1RJT05fVkVSVElDQUw6ICAgZFggPSAwOyBkWSA9ICAx OyBicmVhazsKKyAgICBjYXNlIERJUkVDVElPTl80NVVQOiAgICAgICBkWCA9IDE7IGRZID0g LTE7IGJyZWFrOworICAgIGNhc2UgRElSRUNUSU9OXzQ1RE9XTjogICAgIGRYID0gMTsgZFkg PSAgMTsgYnJlYWs7CisgICAgfQorCisgICAgLy8gZGV0ZXJtaW5lcyBpZiBzZWFyY2ggaW4g ZGlyZWN0aW9uIGRYL2RZIGlzIGxvb2tpbmcgZm9yIGEgbWF4aW11bSBvciBtaW5pbXVtCisg ICAgc2lnbiA9IHNyY1tqICogc3JjX2xpbmVzaXplICsgaV0gPiBzcmNbKGogLSBkWSkgKiBz cmNfbGluZXNpemUgKyBpIC0gZFhdID8gMSA6IC0xOworCisgICAgLy8gc2VhcmNoIGluIC0o ZFgvZFkpIGRpcmVjdGlvbgorICAgIGZvciAoayA9IDA7IGsgPCByYWRpdXM7IGsrKykgewor ICAgICAgICB4ID0gaSAtIGsqZFg7CisgICAgICAgIHkgPSBqIC0gaypkWTsKKyAgICAgICAg cDEgPSB5ICogc3JjX2xpbmVzaXplICsgeDsKKyAgICAgICAgeCAtPSBkWDsKKyAgICAgICAg eSAtPSBkWTsKKyAgICAgICAgcDIgPSB5ICogc3JjX2xpbmVzaXplICsgeDsKKyAgICAgICAg aWYgKHggPCAwIHx8IHggPj0gdyB8fCB5IDwgMCB8fCB5ID49IGgpCisgICAgICAgICAgICBy ZXR1cm4gMDsKKworICAgICAgICB0bXAgPSAoc3JjW3AxXSAtIHNyY1twMl0pICogc2lnbjsK KworICAgICAgICBpZiAodG1wIDw9IDApIC8vIGxvY2FsIG1heGltdW0gZm91bmQKKyAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgIGx1bWExICs9IHRtcDsKKyAgICB9CisgICAgaWYg KGsgPiAwKSBsdW1hMSAvPSBrOworICAgIGVkZ2UxID0gazsKKyAgICB3aWR0aCArPSBrOwor CisgICAgLy8gc2VhcmNoIGluICsoZFgvZFkpIGRpcmVjdGlvbgorICAgIGZvciAoayA9IDA7 IGsgPCByYWRpdXM7IGsrKykgeworICAgICAgICB4ID0gaSArIGsgKiBkWDsKKyAgICAgICAg eSA9IGogKyBrICogZFk7CisgICAgICAgIHAxID0geSAqIHNyY19saW5lc2l6ZSArIHg7Cisg ICAgICAgIHggKz0gZFg7CisgICAgICAgIHkgKz0gZFk7CisgICAgICAgIHAyID0geSAqIHNy Y19saW5lc2l6ZSArIHg7CisgICAgICAgIGlmICh4IDwgMCB8fCB4ID49IHcgfHwgeSA8IDAg fHwgeSA+PSBoKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgdG1wID0gKHNy Y1twMV0gLSBzcmNbcDJdKSAqIHNpZ247CisKKyAgICAgICAgaWYgKHRtcCA+PSAwKSAvLyBs b2NhbCBtYXhpbXVtIGZvdW5kCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBsdW1h MiAtPSB0bXA7CisgICAgfQorICAgIGlmIChrID4gMCkgbHVtYTIgLz0gazsKKyAgICBlZGdl MiA9IGs7CisgICAgd2lkdGggKz0gazsKKworICAgIC8vIGZvciA0NSBkZWdyZWUgZGlyZWN0 aW9ucyBhcHByb3hpbWF0ZSBlZGdlIHdpZHRoIGluIHBpeGVsIHVuaXRzOiAwLjcgfj0gc3Fy dCgyKS8yCisgICAgaWYgKGRpciA9PSBESVJFQ1RJT05fNDVVUCB8fCBkaXIgPT0gRElSRUNU SU9OXzQ1RE9XTikKKyAgICAgICAgd2lkdGggKj0gMC43OworCisgICAgcmV0dXJuIHdpZHRo OworfQorCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRlX2JsdXIoQkxSQ29udGV4dCAqcywgaW50 IHcsIGludCBoLCBpbnQgaHN1YiwgaW50IHZzdWIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDhfdCogZGlyLCBpbnQgZGlyX2xpbmVzaXplLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ4X3QqIGRzdCwgaW50IGRzdF9saW5lc2l6ZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsIGludCBzcmNfbGluZXNpemUpCit7 CisgICAgZmxvYXQgdG90YWxfd2lkdGggPSAwLjA7CisgICAgaW50IGJsb2NrX2NvdW50Owor ICAgIGRvdWJsZSBibG9ja190b3RhbF93aWR0aDsKKworICAgIGludCBpLCBqOworICAgIGlu dCBibGtjbnQgPSAwOworCisgICAgZmxvYXQgKmJsa3MgPSBzLT5ibGtzOworICAgIGZsb2F0 IGJsb2NrX3Bvb2xfdGhyZXNob2xkID0gcy0+YmxvY2tfcGN0IC8gMTAwLjA7CisKKyAgICBp bnQgYmxvY2tfd2lkdGggID0gQVZfQ0VJTF9SU0hJRlQocy0+YmxvY2tfd2lkdGgsICBoc3Vi KTsKKyAgICBpbnQgYmxvY2tfaGVpZ2h0ID0gQVZfQ0VJTF9SU0hJRlQocy0+YmxvY2tfaGVp Z2h0LCB2c3ViKTsKKyAgICBpbnQgYnJvd3MgPSBoIC8gYmxvY2tfaGVpZ2h0OworICAgIGlu dCBiY29scyA9IHcgLyBibG9ja193aWR0aDsKKworICAgIGZvciAoaW50IGJsa2ogPSAwOyBi bGtqIDwgYnJvd3M7IGJsa2orKykgeworICAgICAgICBmb3IgKGludCBibGtpID0gMDsgYmxr aSA8IGJjb2xzOyBibGtpKyspIHsKKyAgICAgICAgICAgIGJsb2NrX3RvdGFsX3dpZHRoID0g MC4wOworICAgICAgICAgICAgYmxvY2tfY291bnQgPSAwOworICAgICAgICAgICAgZm9yIChp bnQgaW5qID0gMDsgaW5qIDwgYmxvY2tfaGVpZ2h0OyBpbmorKykgeworICAgICAgICAgICAg ICAgIGZvciAoaW50IGluaSA9IDA7IGluaSA8IGJsb2NrX3dpZHRoOyBpbmkrKykgeworICAg ICAgICAgICAgICAgICAgICBpID0gYmxraSAqIGJsb2NrX3dpZHRoICsgaW5pOworICAgICAg ICAgICAgICAgICAgICBqID0gYmxraiAqIGJsb2NrX2hlaWdodCArIGluajsKKworICAgICAg ICAgICAgICAgICAgICBpZiAoZHN0W2ogKiBkc3RfbGluZXNpemUgKyBpXSA+IDApIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoID0gZWRnZV93aWR0aChzLCBpLCBq LCBkaXJbaipkaXJfbGluZXNpemUraV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdywgaCwgZHN0W2oqZHN0X2xpbmVzaXplK2ldLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywgc3Jj X2xpbmVzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IDAuMDAx KSB7IC8vIHRocm93IGF3YXkgemVyb3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi bG9ja19jb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3RvdGFs X3dpZHRoICs9IHdpZHRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg ICAgICAgLy8gaWYgbm90IGVub3VnaCBlZGdlIHBpeGVscyBpbiBhIGJsb2NrLCBjb25zaWRl ciBpdCBzbW9vdGgKKyAgICAgICAgICAgIGlmIChibG9ja190b3RhbF93aWR0aCA+PSAyKSB7 CisgICAgICAgICAgICAgICAgYmxrc1tibGtjbnRdID0gYmxvY2tfdG90YWxfd2lkdGggLyBi bG9ja19jb3VudDsKKyAgICAgICAgICAgICAgICBibGtjbnQrKzsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNpbXBsZSBibG9jayBwb29saW5nIGJ5IHNv cnRpbmcgYW5kIGtlZXBpbmcgdGhlIHNoYXJwZXIgYmxvY2tzCisgICAgQVZfUVNPUlQoYmxr cywgYmxrY250LCBmbG9hdCwgY29tcCk7CisgICAgYmxrY250ID0gY2VpbChibGtjbnQgKiBi bG9ja19wb29sX3RocmVzaG9sZCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBibGtjbnQ7 IGkrKykgeworICAgICAgICB0b3RhbF93aWR0aCArPSBibGtzW2ldOworICAgIH0KKworICAg IHJldHVybiAgdG90YWxfd2lkdGggLyBibGtjbnQ7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9t ZXRhKEFWRGljdGlvbmFyeSAqKm1ldGFkYXRhLCBjb25zdCBjaGFyICprZXksIGZsb2F0IGQp Cit7CisgICAgY2hhciB2YWx1ZVsxMjhdOworICAgIHNucHJpbnRmKHZhbHVlLCBzaXplb2Yo dmFsdWUpLCAiJWYiLCBkKTsKKyAgICBhdl9kaWN0X3NldChtZXRhZGF0YSwga2V5LCB2YWx1 ZSwgMCk7Cit9CisKK3N0YXRpYyBpbnQgYmx1cmRldGVjdF9maWx0ZXJfZnJhbWUoQVZGaWx0 ZXJMaW5rICppbmxpbmssIEFWRnJhbWUgKmluKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAq Y3R4ICA9IGlubGluay0+ZHN0OworICAgIEJMUkNvbnRleHQgKnMgICAgICAgICA9IGN0eC0+ cHJpdjsKKyAgICBBVkZpbHRlckxpbmsgKm91dGxpbmsgPSBjdHgtPm91dHB1dHNbMF07CisK KyAgICBjb25zdCBpbnQgaW53ID0gaW5saW5rLT53OworICAgIGNvbnN0IGludCBpbmggPSBp bmxpbmstPmg7CisKKyAgICB1aW50OF90ICp0bXBidWYgICAgID0gcy0+dG1wYnVmOworICAg IHVpbnQ4X3QgKmZpbHRlcmJ1ZiAgPSBzLT5maWx0ZXJidWY7CisgICAgdWludDE2X3QgKmdy YWRpZW50cyA9IHMtPmdyYWRpZW50czsKKyAgICBpbnQ4X3QgKmRpcmVjdGlvbnMgID0gcy0+ ZGlyZWN0aW9uczsKKworICAgIGZsb2F0IGJsdXIgPSAwLjBmOworICAgIGludCBucGxhbmVz ID0gMDsKKyAgICBBVkRpY3Rpb25hcnkgKiptZXRhZGF0YTsKKyAgICBtZXRhZGF0YSA9ICZp bi0+bWV0YWRhdGE7CisKKyAgICBmb3IgKGludCBwbGFuZSA9IDA7IHBsYW5lIDwgcy0+bmJf cGxhbmVzOyBwbGFuZSsrKSB7CisgICAgICAgIGludCBoc3ViID0gcGxhbmUgPT0gMSB8fCBw bGFuZSA9PSAyID8gcy0+aHN1YiA6IDA7CisgICAgICAgIGludCB2c3ViID0gcGxhbmUgPT0g MSB8fCBwbGFuZSA9PSAyID8gcy0+dnN1YiA6IDA7CisgICAgICAgIGludCB3ID0gQVZfQ0VJ TF9SU0hJRlQoaW53LCBoc3ViKTsKKyAgICAgICAgaW50IGggPSBBVl9DRUlMX1JTSElGVChp bmgsIHZzdWIpOworCisgICAgICAgIGlmICghKCgxIDw8IHBsYW5lKSAmIHMtPnBsYW5lcykp CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBucGxhbmVzKys7CisKKyAgICAg ICAgLy8gZ2F1c3NpYW4gZmlsdGVyIHRvIHJlZHVjZSBub2lzZQorICAgICAgICBmZl9nYXVz c2lhbl9ibHVyKHcsIGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyYnVmLCAg dywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbi0+ZGF0YVtwbGFuZV0sIGluLT5saW5l c2l6ZVtwbGFuZV0pOworCisgICAgICAgIC8vIGNvbXB1dGUgdGhlIDE2LWJpdHMgZ3JhZGll bnRzIGFuZCBkaXJlY3Rpb25zIGZvciB0aGUgbmV4dCBzdGVwCisgICAgICAgIGZmX3NvYmVs KHcsIGgsIGdyYWRpZW50cywgdywgZGlyZWN0aW9ucywgdywgZmlsdGVyYnVmLCB3KTsKKwor ICAgICAgICAvLyBub25fbWF4aW11bV9zdXBwcmVzc2lvbigpIHdpbGwgYWN0dWFsbHkga2Vl cCAmIGNsaXAgd2hhdCdzIG5lY2Vzc2FyeSBhbmQKKyAgICAgICAgLy8gaWdub3JlIHRoZSBy ZXN0LCBzbyB3ZSBuZWVkIGEgY2xlYW4gb3V0cHV0IGJ1ZmZlcgorICAgICAgICBtZW1zZXQo dG1wYnVmLCAwLCBpbncgKiBpbmgpOworICAgICAgICBmZl9ub25fbWF4aW11bV9zdXBwcmVz c2lvbih3LCBoLCB0bXBidWYsIHcsIGRpcmVjdGlvbnMsIHcsIGdyYWRpZW50cywgdyk7CisK KworICAgICAgICAvLyBrZWVwIGhpZ2ggdmFsdWVzLCBvciBsb3cgdmFsdWVzIHN1cnJvdW5k ZWQgYnkgaGlnaCB2YWx1ZXMKKyAgICAgICAgZmZfZG91YmxlX3RocmVzaG9sZChzLT5sb3df dTgsIHMtPmhpZ2hfdTgsIHcsIGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1w YnVmLCB3LCB0bXBidWYsIHcpOworCisgICAgICAgIGJsdXIgKz0gY2FsY3VsYXRlX2JsdXIo cywgdywgaCwgaHN1YiwgdnN1YiwgZGlyZWN0aW9ucywgdywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRtcGJ1ZiwgdywgZmlsdGVyYnVmLCB3KTsKKyAgICB9CisKKyAgICBp ZiAobnBsYW5lcykKKyAgICAgICAgYmx1ciAvPSBucGxhbmVzOworCisgICAgcy0+Ymx1cl90 b3RhbCArPSBibHVyOworCisgICAgLy8gd3JpdGUgc3RhdHMKKyAgICBhdl9sb2coY3R4LCBB Vl9MT0dfVkVSQk9TRSwgImJsdXI6ICUuN2ZcbiIsIGJsdXIpOworCisgICAgc2V0X21ldGEo bWV0YWRhdGEsICJsYXZmaS5ibHVyIiwgYmx1cik7CisKKyAgICBzLT5uYl9mcmFtZXMgPSBp bmxpbmstPmZyYW1lX2NvdW50X2luOworCisgICAgcmV0dXJuIGZmX2ZpbHRlcl9mcmFtZShv dXRsaW5rLCBpbik7Cit9CisKK3N0YXRpYyBhdl9jb2xkIHZvaWQgYmx1cmRldGVjdF91bmlu aXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7CisgICAgQkxSQ29udGV4dCAqcyA9IGN0eC0+ cHJpdjsKKworICAgIGlmIChzLT5uYl9mcmFtZXMgPiAwKSB7CisgICAgICAgIGF2X2xvZyhj dHgsIEFWX0xPR19JTkZPLCAiYmx1ciBtZWFuOiAlLjdmXG4iLAorICAgICAgICAgICAgICAg cy0+Ymx1cl90b3RhbCAvIHMtPm5iX2ZyYW1lcyk7CisgICAgfQorCisgICAgYXZfZnJlZXAo JnMtPnRtcGJ1Zik7CisgICAgYXZfZnJlZXAoJnMtPmZpbHRlcmJ1Zik7CisgICAgYXZfZnJl ZXAoJnMtPmdyYWRpZW50cyk7CisgICAgYXZfZnJlZXAoJnMtPmRpcmVjdGlvbnMpOworICAg IGF2X2ZyZWVwKCZzLT5ibGtzKTsKK30KKworc3RhdGljIGNvbnN0IGVudW0gQVZQaXhlbEZv cm1hdCBwaXhfZm10c1tdID0geworICAgIEFWX1BJWF9GTVRfR1JBWTgsCisgICAgQVZfUElY X0ZNVF9HQlJQLCAgICAgQVZfUElYX0ZNVF9HQlJBUCwKKyAgICBBVl9QSVhfRk1UX1lVVjQy MlAsICBBVl9QSVhfRk1UX1lVVjQyMFAsCisgICAgQVZfUElYX0ZNVF9ZVVY0NDRQLCAgQVZf UElYX0ZNVF9ZVVY0NDBQLAorICAgIEFWX1BJWF9GTVRfWVVWNDExUCwgIEFWX1BJWF9GTVRf WVVWNDEwUCwKKyAgICBBVl9QSVhfRk1UX1lVVko0NDBQLCBBVl9QSVhfRk1UX1lVVko0MTFQ LCBBVl9QSVhfRk1UX1lVVko0MjBQLAorICAgIEFWX1BJWF9GTVRfWVVWSjQyMlAsIEFWX1BJ WF9GTVRfWVVWSjQ0NFAsCisgICAgQVZfUElYX0ZNVF9ZVVZBNDQ0UCwgQVZfUElYX0ZNVF9Z VVZBNDIyUCwgQVZfUElYX0ZNVF9ZVVZBNDIwUCwKKyAgICBBVl9QSVhfRk1UX05PTkUKK307 CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBibHVyZGV0ZWN0X2lucHV0c1tdID0gewor ICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5 cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAgICAgLmNvbmZpZ19wcm9w cyA9IGJsdXJkZXRlY3RfY29uZmlnX2lucHV0LAorICAgICAgICAuZmlsdGVyX2ZyYW1lID0g Ymx1cmRldGVjdF9maWx0ZXJfZnJhbWUsCisgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBB VkZpbHRlclBhZCBibHVyZGV0ZWN0X291dHB1dHNbXSA9IHsKKyAgICB7CisgICAgICAgIC5u YW1lID0gImRlZmF1bHQiLAorICAgICAgICAudHlwZSA9IEFWTUVESUFfVFlQRV9WSURFTywK KyAgICB9LAorfTsKKworY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmx1cmRldGVjdCA9IHsKKyAg ICAubmFtZSAgICAgICAgICA9ICJibHVyZGV0ZWN0IiwKKyAgICAuZGVzY3JpcHRpb24gICA9 IE5VTExfSUZfQ09ORklHX1NNQUxMKCJCbHVyZGV0ZWN0IGZpbHRlci4iKSwKKyAgICAucHJp dl9zaXplICAgICA9IHNpemVvZihCTFJDb250ZXh0KSwKKyAgICAuaW5pdCAgICAgICAgICA9 IGJsdXJkZXRlY3RfaW5pdCwKKyAgICAudW5pbml0ICAgICAgICA9IGJsdXJkZXRlY3RfdW5p bml0LAorICAgIEZJTFRFUl9QSVhGTVRTX0FSUkFZKHBpeF9mbXRzKSwKKyAgICBGSUxURVJf SU5QVVRTKGJsdXJkZXRlY3RfaW5wdXRzKSwKKyAgICBGSUxURVJfT1VUUFVUUyhibHVyZGV0 ZWN0X291dHB1dHMpLAorICAgIC5wcml2X2NsYXNzICAgID0gJmJsdXJkZXRlY3RfY2xhc3Ms CisgICAgLmZsYWdzICAgICAgICAgPSBBVkZJTFRFUl9GTEFHX01FVEFEQVRBX09OTFksCit9 OworCmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsgYi90ZXN0cy9m YXRlL2ZpbHRlci12aWRlby5tYWsKaW5kZXggNmMwZDhkZjAzMi4uNjhmNGMwODRmOCAxMDA2 NDQKLS0tIGEvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrCisrKyBiL3Rlc3RzL2ZhdGUv ZmlsdGVyLXZpZGVvLm1hawpAQCAtODY3LDYgKzg2Nyw5IEBAIGZhdGUtZmlsdGVyLW1ldGEt NDU2MC1yb3RhdGUwOiBDTUQgPSBmcmFtZWNyYyAtYXV0b19jb252ZXJzaW9uX2ZpbHRlcnMg LWZsYWdzICtiCiAKIFJFRkNNUF9ERVBTID0gRkZNUEVHIExBVkZJX0lOREVWIFRFU1RTUkMy X0ZJTFRFUiBBVkdCTFVSX0ZJTFRFUiBNRVRBREFUQV9GSUxURVIKIAorRkFURV9GSUxURVIt JChjYWxsIEFMTFlFUywgJChSRUZDTVBfREVQUykgQkxVUkRFVEVDVF9GSUxURVIpICs9IGZh dGUtZmlsdGVyLXJlZmNtcC1ibHVyZGV0ZWN0LXl1dgorZmF0ZS1maWx0ZXItcmVmY21wLWJs dXJkZXRlY3QteXV2OiBDTUQgPSBjbXBfbWV0YWRhdGEgYmx1cmRldGVjdCB5dXY0MjBwIDAu MDE1CisKIEZBVEVfRklMVEVSLSQoY2FsbCBBTExZRVMsICQoUkVGQ01QX0RFUFMpIFBTTlJf RklMVEVSKSArPSBmYXRlLWZpbHRlci1yZWZjbXAtcHNuci1yZ2IKIGZhdGUtZmlsdGVyLXJl ZmNtcC1wc25yLXJnYjogQ01EID0gcmVmY21wX21ldGFkYXRhIHBzbnIgcmdiMjQgMC4wMDIK IApkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLXJlZmNtcC1ibHVyZGV0ZWN0 LXl1diBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtYmx1cmRldGVjdC15dXYKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYTY0YTlhMDdiYQotLS0gL2Rl di9udWxsCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1yZWZjbXAtYmx1cmRldGVjdC15 dXYKQEAgLTAsMCArMSwxMCBAQAorZnJhbWU6MCAgICBwdHM6MCAgICAgICBwdHNfdGltZTow CitsYXZmaS5ibHVyPTQuNDgwNjQwCitmcmFtZToxICAgIHB0czoxICAgICAgIHB0c190aW1l OjEKK2xhdmZpLmJsdXI9NC41NjkzOTgKK2ZyYW1lOjIgICAgcHRzOjIgICAgICAgcHRzX3Rp bWU6MgorbGF2ZmkuYmx1cj00LjYwOTM4NgorZnJhbWU6MyAgICBwdHM6MyAgICAgICBwdHNf dGltZTozCitsYXZmaS5ibHVyPTQuMzU3MzQwCitmcmFtZTo0ICAgIHB0czo0ICAgICAgIHB0 c190aW1lOjQKK2xhdmZpLmJsdXI9NC4zOTI4NzEKLS0gCjIuMjAuMSAoQXBwbGUgR2l0LTEx NykKCg== --------------WQvRsygAn0oug39YWxmHeBXy 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". --------------WQvRsygAn0oug39YWxmHeBXy--