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 B342042755 for ; Fri, 29 Apr 2022 14:05:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B229B68B2BB; Fri, 29 Apr 2022 17:05:39 +0300 (EEST) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 56B62689CFC for ; Fri, 29 Apr 2022 17:05:33 +0300 (EEST) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout02.mail.de (Postfix) with ESMTP id BCFE6A0C82 for ; Fri, 29 Apr 2022 16:05:32 +0200 (CEST) Received: from smtp02.mail.de (smtp02.bt.mail.de [10.0.121.212]) by postfix01.mail.de (Postfix) with ESMTP id 36028801B2 for ; Fri, 29 Apr 2022 16:05:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1651241132; bh=0MiMepJEWcIImhAyrNq+lVTkVSjsWJ2AS0wpwrTgYD0=; h=Message-ID:Date:To:From:Subject:From:To:CC:Subject:Reply-To; b=OZZOzq9iKu29RZEP0E4CN2TIgE/1kzVTezj1lnZUYxazmYAV/6XjpzRvRVmZrrFNz BYoY05QDmRGcA0tKagetpTGBYzN0uqL36DC0IN4+Dx2qljKKE+sK7EIOnQpaJQZ3ew W3IToQituBfw8LOlWJgKnxEEa4NjD7vzj1V41oVV3yFx/fLtH4w9h0SOHZKTfoAncS f8qxHHcfiiL0KVBZ+5uUv6h0WyTn6wdZ5dmJTOT0Dn/ecLgOaEB20oi8XrOIQjeqvu RutTIW548ZX1OlZpQoiie2QVvOgtpoydc+IrH0FjDXZF25Vs5/3ZSFtXxWUvZ6faCk LtTIWsH4/YHog== 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 smtp02.mail.de (Postfix) with ESMTPSA id C1CD1A05D7 for ; Fri, 29 Apr 2022 16:05:30 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------ncqbEvEVos3k6daR5tKIrWQD" Message-ID: Date: Fri, 29 Apr 2022 16:05:30 +0200 MIME-Version: 1.0 Content-Language: en-US To: FFmpeg development discussions and patches From: Thilo Borgmann 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: 18888 X-purgate-ID: 154282::1651241131-0000737C-5060E584/0/0 Subject: [FFmpeg-devel] [PATCH] avfilter: Add blockdetect 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. --------------ncqbEvEVos3k6daR5tKIrWQD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, $subject based on http://www.eurasip.org/Proceedings/Eusipco/Eusipco2005/defevent/papers/cr1042.pdf -Thilo --------------ncqbEvEVos3k6daR5tKIrWQD Content-Type: text/plain; charset=UTF-8; name="0001-avfilter-Add-blockdetect-filter.patch" Content-Disposition: attachment; filename="0001-avfilter-Add-blockdetect-filter.patch" Content-Transfer-Encoding: base64 RnJvbSBlNjkwOTViMTc2MTk0NTRlNjcxZTQwMWVjNWMwMWYxMzBjMzA4YTc2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogRnJpLCAyOSBBcHIgMjAyMiAxNTo1ODoxMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIGF2ZmlsdGVyOiBBZGQgYmxvY2tkZXRlY3QgZmlsdGVyCgotLS0KIGRvYy9m aWx0ZXJzLnRleGkgICAgICAgICAgICAgfCAgMjkgKysrKwogbGliYXZmaWx0ZXIvTWFrZWZp bGUgICAgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgICAgIHwgICAx ICsKIGxpYmF2ZmlsdGVyL3ZmX2Jsb2NrZGV0ZWN0LmMgfCAyOTQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzI1IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci92Zl9ibG9ja2RldGVjdC5jCgpk aWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXgg NTJjNDA4MzNlYi4uZTU1MGViODgyNCAxMDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQor KysgYi9kb2MvZmlsdGVycy50ZXhpCkBAIC03OTk3LDYgKzc5OTcsMzUgQEAgdGJsZW5kPWFs bF9tb2RlPWdyYWluZXh0cmFjdAogQHN1YnNlY3Rpb24gQ29tbWFuZHMKIFRoaXMgZmlsdGVy IHN1cHBvcnRzIHNhbWUgQHJlZntjb21tYW5kc30gYXMgb3B0aW9ucy4KIAorQGFuY2hvcnti bG9ja2RldGVjdH0KK0BzZWN0aW9uIGJsb2NrZGV0ZWN0CisKK0RldGVybWluZXMgYmxvY2tp bmVzcyBvZiBmcmFtZXMgd2l0aG91dCBhbHRlcmluZyB0aGUgaW5wdXQgZnJhbWVzLgorCitC YXNlZCBvbiBSZW1jbyBNdWlqcyBhbmQgSWhvciBLaXJlbmtvOiAiQSBuby1yZWZlcmVuY2Ug YmxvY2tpbmcgYXJ0aWZhY3QgbWVhc3VyZSBmb3IgYWRhcHRpdmUgdmlkZW8gcHJvY2Vzc2lu Zy4iIDIwMDUgMTN0aCBFdXJvcGVhbiBzaWduYWwgcHJvY2Vzc2luZyBjb25mZXJlbmNlLiAK KworVGhlIGZpbHRlciBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKworQHRhYmxl IEBvcHRpb24KK0BpdGVtIHBlcmlvZF9taW4KK0BpdGVtIHBlcmlvZF9tYXgKK1NldCBtaW5p bXVtIGFuZCBtYXhpbXVtIHZhbHVlcyBmb3IgZGV0ZXJtaW5pbmcgcGl4ZWwgZ3JpZHMgKHBl cmlvZHMpLgorRGVmYXVsdCB2YWx1ZXMgYXJlIFszLDI0XS4KKworQGl0ZW0gcGxhbmVzCitT ZXQgcGxhbmVzIHRvIGZpbHRlci4gRGVmYXVsdCBpcyBmaXJzdCBvbmx5LgorQGVuZCB0YWJs ZQorCitAc3Vic2VjdGlvbiBFeGFtcGxlcworCitAaXRlbWl6ZQorQGl0ZW0KK0RldGVybWlu ZSBibG9ja2luZXNzIGZvciB0aGUgZmlyc3QgcGxhbmUgYW5kIHNlYXJjaCBmb3IgcGVyaW9k cyB3aXRoaW4gWzgsMzJdOgorQGV4YW1wbGUKK2Jsb2NrZGV0ZWN0PXBlcmlvZF9taW49ODpw ZXJpb2RfbWF4PTMyOnBsYW5lcz0xCitAZW5kIGV4YW1wbGUKK0BlbmQgaXRlbWl6ZQorCiBA YW5jaG9ye2JsdXJkZXRlY3R9CiBAc2VjdGlvbiBibHVyZGV0ZWN0CiAKZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKaW5kZXggMWRi MDk3YjQ2NC4uMzVhNDMwODc4ZiAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUK KysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAgLTE5NSw2ICsxOTUsNyBAQCBPQkpTLSQo Q09ORklHX0JMQUNLREVURUNUX0ZJTFRFUikgICAgICAgICAgICArPSB2Zl9ibGFja2RldGVj dC5vCiBPQkpTLSQoQ09ORklHX0JMQUNLRlJBTUVfRklMVEVSKSAgICAgICAgICAgICArPSB2 Zl9ibGFja2ZyYW1lLm8KIE9CSlMtJChDT05GSUdfQkxFTkRfRklMVEVSKSAgICAgICAgICAg ICAgICAgICs9IHZmX2JsZW5kLm8gZnJhbWVzeW5jLm8KIE9CSlMtJChDT05GSUdfQkxFTkRf VlVMS0FOX0ZJTFRFUikgICAgICAgICAgICs9IHZmX2JsZW5kX3Z1bGthbi5vIGZyYW1lc3lu Yy5vIHZ1bGthbi5vIHZ1bGthbl9maWx0ZXIubworT0JKUy0kKENPTkZJR19CTE9DS0RFVEVD VF9GSUxURVIpICAgICAgICAgICAgKz0gdmZfYmxvY2tkZXRlY3QubwogT0JKUy0kKENPTkZJ R19CTFVSREVURUNUX0ZJTFRFUikgICAgICAgICAgICAgKz0gdmZfYmx1cmRldGVjdC5vIGVk Z2VfY29tbW9uLm8KIE9CSlMtJChDT05GSUdfQk0zRF9GSUxURVIpICAgICAgICAgICAgICAg ICAgICs9IHZmX2JtM2QubyBmcmFtZXN5bmMubwogT0JKUy0kKENPTkZJR19CT1hCTFVSX0ZJ TFRFUikgICAgICAgICAgICAgICAgKz0gdmZfYm94Ymx1ci5vIGJveGJsdXIubwpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVy cy5jCmluZGV4IDJhZDUyM2ZkMGYuLjMwOTM2MzkyY2UgMTAwNjQ0Ci0tLSBhL2xpYmF2Zmls dGVyL2FsbGZpbHRlcnMuYworKysgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKQEAgLTE4 Myw2ICsxODMsNyBAQCBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmxhY2tkZXRlY3Q7 CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmxhY2tmcmFtZTsKIGV4dGVybiBjb25z dCBBVkZpbHRlciBmZl92Zl9ibGVuZDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9i bGVuZF92dWxrYW47CitleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmxvY2tkZXRlY3Q7 CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmx1cmRldGVjdDsKIGV4dGVybiBjb25z dCBBVkZpbHRlciBmZl92Zl9ibTNkOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2Jv eGJsdXI7CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9ibG9ja2RldGVjdC5jIGIvbGli YXZmaWx0ZXIvdmZfYmxvY2tkZXRlY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi5mMTVkZDE5NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZmaWx0ZXIv dmZfYmxvY2tkZXRlY3QuYwpAQCAtMCwwICsxLDI5NCBAQAorLyoKKyAqIENvcHlyaWdodCAo YykgMjAyMSBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm4gX2F0XyBtYWlsLmRlPgor ICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0 aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisvKioKKyAqIEBmaWxlCisgKiBOby1yZWZlcmVu Y2UgYmxvY2tkZXRlY3QgZmlsdGVyCisgKgorICogSW1wbGVtZW50aW5nOgorICogUmVtY28g TXVpanMgYW5kIElob3IgS2lyZW5rbzogIkEgbm8tcmVmZXJlbmNlIGJsb2NraW5nIGFydGlm YWN0IG1lYXN1cmUgZm9yIGFkYXB0aXZlIHZpZGVvIHByb2Nlc3NpbmcuIiAyMDA1IDEzdGgg RXVyb3BlYW4gc2lnbmFsIHByb2Nlc3NpbmcgY29uZmVyZW5jZS4gSUVFRSwgMjAwNS4gCisg KiBodHRwOi8vd3d3LmV1cmFzaXAub3JnL1Byb2NlZWRpbmdzL0V1c2lwY28vRXVzaXBjbzIw MDUvZGVmZXZlbnQvcGFwZXJzL2NyMTA0Mi5wZGYKKyAqCisgKiBAYXV0aG9yIFRoaWxvIEJv cmdtYW5uIDx0aGlsby5ib3JnbWFubiBfYXRfIG1haWwuZGU+CisgKi8KKworI2luY2x1ZGUg ImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNp bmNsdWRlICJpbnRlcm5hbC5oIgorCit0eXBlZGVmIHN0cnVjdCBCTEtDb250ZXh0IHsKKyAg ICBjb25zdCBBVkNsYXNzICpjbGFzczsKKworICAgIGludCBoc3ViLCB2c3ViOworICAgIGlu dCBuYl9wbGFuZXM7CisKKyAgICBpbnQgcGVyaW9kX21pbjsgICAgLy8gbWluaW11bSBwZXJp b2QgdG8gc2VhcmNoIGZvcgorICAgIGludCBwZXJpb2RfbWF4OyAgICAvLyBtYXhpbXVtIHBl cmlvZCB0byBzZWFyY2ggZm9yCisgICAgaW50IHBsYW5lczsgICAgICAgIC8vIG51bWJlciBv ZiBwbGFuZXMgdG8gZmlsdGVyCisKKyAgICBkb3VibGUgYmxvY2tfdG90YWw7CisgICAgdWlu dDY0X3QgbmJfZnJhbWVzOworCisgICAgZmxvYXQgKmdyYWRpZW50czsKK30gQkxLQ29udGV4 dDsKKworI2RlZmluZSBPRkZTRVQoeCkgb2Zmc2V0b2YoQkxLQ29udGV4dCwgeCkKKyNkZWZp bmUgRkxBR1MgQVZfT1BUX0ZMQUdfRklMVEVSSU5HX1BBUkFNfEFWX09QVF9GTEFHX1ZJREVP X1BBUkFNCitzdGF0aWMgY29uc3QgQVZPcHRpb24gYmxvY2tkZXRlY3Rfb3B0aW9uc1tdID0g eworICAgIHsgInBlcmlvZF9taW4iLCAiTWluaW11bSBwZXJpb2QgdG8gc2VhcmNoIGZvciIs IE9GRlNFVChwZXJpb2RfbWluKSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2ND0zfSwgMiwgMzIs IEZMQUdTfSwKKyAgICB7ICJwZXJpb2RfbWF4IiwgIk1heGltdW0gcGVyaW9kIHRvIHNlYXJj aCBmb3IiLCBPRkZTRVQocGVyaW9kX21heCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQ9MjR9 LCAyLCA2NCwgRkxBR1N9LAorICAgIHsgInBsYW5lcyIsICAgICAgICAic2V0IHBsYW5lcyB0 byBmaWx0ZXIiLCBPRkZTRVQocGxhbmVzKSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2ND0xfSwg MCwgMTUsIEZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK0FWRklMVEVSX0RFRklORV9D TEFTUyhibG9ja2RldGVjdCk7CisKK3N0YXRpYyBhdl9jb2xkIGludCBibG9ja2RldGVjdF9p bml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQoreworICAgIHJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGJsb2NrZGV0ZWN0X2NvbmZpZ19pbnB1dChBVkZpbHRlckxpbmsgKmlubGluaykK K3sKKyAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IGlubGluay0+ZHN0OworICAgIEJMS0Nv bnRleHQgICAgICAqcyAgID0gY3R4LT5wcml2OworICAgIGNvbnN0IGludCBidWZzaXplICAg ID0gaW5saW5rLT53ICogaW5saW5rLT5oOworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRv ciAqcGl4X2Rlc2M7CisKKyAgICBwaXhfZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoaW5s aW5rLT5mb3JtYXQpOworICAgIHMtPmhzdWIgPSBwaXhfZGVzYy0+bG9nMl9jaHJvbWFfdzsK KyAgICBzLT52c3ViID0gcGl4X2Rlc2MtPmxvZzJfY2hyb21hX2g7CisgICAgcy0+bmJfcGxh bmVzID0gYXZfcGl4X2ZtdF9jb3VudF9wbGFuZXMoaW5saW5rLT5mb3JtYXQpOworCisgICAg cy0+Z3JhZGllbnRzID0gYXZfY2FsbG9jKGJ1ZnNpemUsIHNpemVvZigqcy0+Z3JhZGllbnRz KSk7CisKKyAgICBpZiAoIXMtPmdyYWRpZW50cykKKyAgICAgICAgcmV0dXJuIEFWRVJST1Io RU5PTUVNKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRl X2Jsb2NraW5lc3MoQkxLQ29udGV4dCAqcywgaW50IHcsIGludCBoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICpncmFkLCBpbnQgZ3JhZF9saW5lc2l6ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsIGludCBz cmNfbGluZXNpemUpCit7CisgICAgZmxvYXQgYmxvY2sgPSAwLjBmOworICAgIGZsb2F0IG5v bmJsb2NrID0gMC4wZjsKKyAgICBpbnQgYmxvY2tfY291bnQgPSAwOworICAgIGludCBub25i bG9ja19jb3VudCA9IDA7CisgICAgZmxvYXQgcmV0ID0gMDsKKworICAgIC8vIENhbGN1bGF0 ZSBCUyBpbiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBkaXJlY3Rpb25zIGFjY29yZGluZyB0 byAoMSkoMikoMykuIAorICAgIC8vIEFsc28gdHJ5IHRvIGZpbmQgaW50ZWdlciBwaXhlbCBw ZXJpb2RzIChncmlkcykgZXZlbiBmb3Igc2NhbGVkIGltYWdlcy4KKyAgICAvLyBJbiBjYXNl IG9mIGZyYWN0aW9uYWwgcGVyaW9kcywgRkZNQVggb2YgY3VycmVudCBhbmQgbmVpZ2hib3Ig cGl4ZWxzCisgICAgLy8gY2FuIGhlbHAgaW1wcm92ZSB0aGUgY29ycmVsYXRpb24gd2l0aCBN UVMuCisgICAgLy8gU2tpcCBsaW5lYXIgY29ycmVjdGlvbiB0ZXJtICg0KSg1KSwgYXMgaXQg YXBwZWFycyBvbmx5IHZhbGlkIGZvciB0aGVpciBvd24gdGVzdCBzYW1wbGVzLgorCisgICAg Ly8gaG9yaXpvbnRhbCBibG9ja2luZXNzIChmaXhlZCB3aWR0aCkKKyAgICBmb3IgKGludCBq ID0gMTsgaiA8IGg7IGorKykgeworICAgICAgICBmb3IgKGludCBpID0gMzsgaSA8IHcgLSA0 OyBpKyspIHsKKyAgICAgICAgICAgIGZsb2F0IHRlbXAgPSAwLjBmOworICAgICAgICAgICAg Z3JhZFtqICogZ3JhZF9saW5lc2l6ZSArIGldID0KKyAgICAgICAgICAgICAgICAgICAgYWJz KHNyY1tqICogc3JjX2xpbmVzaXplICsgaSArIDBdIC0gc3JjW2ogKiBzcmNfbGluZXNpemUg KyBpICsgMV0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3JjW2ogKiBzcmNfbGluZXNp emUgKyBpICsgMV0gLSBzcmNbaiAqIHNyY19saW5lc2l6ZSArIGkgKyAyXSk7CisgICAgICAg ICAgICB0ZW1wICs9IGFicyhzcmNbaiAqIHNyY19saW5lc2l6ZSArIGkgKyAyXSAtIHNyY1tq ICogc3JjX2xpbmVzaXplICsgaSArIDNdKTsKKyAgICAgICAgICAgIHRlbXAgKz0gYWJzKHNy Y1tqICogc3JjX2xpbmVzaXplICsgaSArIDNdIC0gc3JjW2ogKiBzcmNfbGluZXNpemUgKyBp ICsgNF0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3JjW2ogKiBzcmNfbGluZXNpemUg KyBpIC0gMF0gLSBzcmNbaiAqIHNyY19saW5lc2l6ZSArIGkgLSAxXSk7CisgICAgICAgICAg ICB0ZW1wICs9IGFicyhzcmNbaiAqIHNyY19saW5lc2l6ZSArIGkgLSAxXSAtIHNyY1tqICog c3JjX2xpbmVzaXplICsgaSAtIDJdKTsKKyAgICAgICAgICAgIHRlbXAgKz0gYWJzKHNyY1tq ICogc3JjX2xpbmVzaXplICsgaSAtIDJdIC0gc3JjW2ogKiBzcmNfbGluZXNpemUgKyBpIC0g M10pOworICAgICAgICAgICAgdGVtcCA9IEZGTUFYKDEsIHRlbXApOworICAgICAgICAgICAg Z3JhZFtqICogZ3JhZF9saW5lc2l6ZSArIGldIC89IHRlbXA7CisKKyAgICAgICAgICAgIC8v IHVzZSBmaXJzdCByb3cgdG8gc3RvcmUgYWNjdWxhdGVkIHJlc3VsdHMKKyAgICAgICAgICAg IGdyYWRbaV0gKz0gZ3JhZFtqICogZ3JhZF9saW5lc2l6ZSArIGldOworICAgICAgICB9Cisg ICAgfQorCisgICAgLy8gZmluZCBob3Jpem9udGFsIHBlcmlvZAorICAgIGZvciAoaW50IHBl cmlvZCA9IHMtPnBlcmlvZF9taW47IHBlcmlvZCA8IHMtPnBlcmlvZF9tYXggKyAxOyBwZXJp b2QrKykgeworICAgICAgICBmbG9hdCB0ZW1wOworICAgICAgICBibG9jayA9IDA7CisgICAg ICAgIG5vbmJsb2NrID0gMDsKKyAgICAgICAgYmxvY2tfY291bnQgPSAwOworICAgICAgICBu b25ibG9ja19jb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAzOyBpIDwgdyAtIDQ7 IGkrKykgeworICAgICAgICAgICAgaWYgKChpICUgcGVyaW9kKSA9PSAocGVyaW9kIC0gMSkp IHsKKyAgICAgICAgICAgICAgICBibG9jayArPSBGRk1BWChGRk1BWChncmFkW2kgKyAwXSwg Z3JhZFtpICsgMV0pLCBncmFkW2kgLSAxXSk7CisgICAgICAgICAgICAgICAgYmxvY2tfY291 bnQrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbm9uYmxvY2sg Kz0gZ3JhZFtpXTsKKyAgICAgICAgICAgICAgICBub25ibG9ja19jb3VudCsrOworICAgICAg ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRlbXAgPSAoYmxvY2sgLyBibG9ja19jb3Vu dCkgLyAobm9uYmxvY2sgLyBub25ibG9ja19jb3VudCk7CisgICAgICAgIHJldCA9IEZGTUFY KHJldCwgdGVtcCk7CisgICAgfQorCisgICAgLy8gdmVydGljYWwgYmxvY2tpbmVzcyAoZml4 ZWQgaGVpZ2h0KQorICAgIGJsb2NrX2NvdW50ID0gMDsKKyAgICBmb3IgKGludCBqID0gMzsg aiA8IGggLSA0OyBqKyspIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCB3OyBpKysp IHsKKyAgICAgICAgICAgIGZsb2F0IHRlbXAgPSAwLjBmOworICAgICAgICAgICAgZ3JhZFtq ICogZ3JhZF9saW5lc2l6ZSArIGldID0KKyAgICAgICAgICAgICAgICAgICAgYWJzKHNyY1so aiArIDApICogc3JjX2xpbmVzaXplICsgaV0gLSBzcmNbKGogKyAxKSAqIHNyY19saW5lc2l6 ZSArIGldKTsKKyAgICAgICAgICAgIHRlbXAgKz0gYWJzKHNyY1soaiArIDEpICogc3JjX2xp bmVzaXplICsgaV0gLSBzcmNbKGogKyAyKSAqIHNyY19saW5lc2l6ZSArIGldKTsKKyAgICAg ICAgICAgIHRlbXAgKz0gYWJzKHNyY1soaiArIDIpICogc3JjX2xpbmVzaXplICsgaV0gLSBz cmNbKGogKyAzKSAqIHNyY19saW5lc2l6ZSArIGldKTsKKyAgICAgICAgICAgIHRlbXAgKz0g YWJzKHNyY1soaiArIDMpICogc3JjX2xpbmVzaXplICsgaV0gLSBzcmNbKGogKyA0KSAqIHNy Y19saW5lc2l6ZSArIGldKTsKKyAgICAgICAgICAgIHRlbXAgKz0gYWJzKHNyY1soaiAtIDAp ICogc3JjX2xpbmVzaXplICsgaV0gLSBzcmNbKGogLSAxKSAqIHNyY19saW5lc2l6ZSArIGld KTsKKyAgICAgICAgICAgIHRlbXAgKz0gYWJzKHNyY1soaiAtIDEpICogc3JjX2xpbmVzaXpl ICsgaV0gLSBzcmNbKGogLSAyKSAqIHNyY19saW5lc2l6ZSArIGldKTsKKyAgICAgICAgICAg IHRlbXAgKz0gYWJzKHNyY1soaiAtIDIpICogc3JjX2xpbmVzaXplICsgaV0gLSBzcmNbKGog LSAzKSAqIHNyY19saW5lc2l6ZSArIGldKTsKKyAgICAgICAgICAgIHRlbXAgPSBGRk1BWCgx LCB0ZW1wKTsKKyAgICAgICAgICAgIGdyYWRbaiAqIGdyYWRfbGluZXNpemUgKyBpXSAvPSB0 ZW1wOworCisgICAgICAgICAgICAvLyB1c2UgZmlyc3QgY29sdW1uIHRvIHN0b3JlIGFjY3Vt dWxhdGVkIHJlc3VsdHMKKyAgICAgICAgICAgIGdyYWRbaiAqIGdyYWRfbGluZXNpemVdICs9 IGdyYWRbaiAqIGdyYWRfbGluZXNpemUgKyBpXTsKKyAgICAgICAgfQorICAgIH0KKworICAg IC8vIGZpbmQgdmVydGljYWwgcGVyaW9kCisgICAgZm9yIChpbnQgcGVyaW9kID0gcy0+cGVy aW9kX21pbjsgcGVyaW9kIDwgcy0+cGVyaW9kX21heCArIDE7IHBlcmlvZCsrKSB7CisgICAg ICAgIGZsb2F0IHRlbXA7CisgICAgICAgIGJsb2NrID0gMDsKKyAgICAgICAgbm9uYmxvY2sg PSAwOworICAgICAgICBibG9ja19jb3VudCA9IDA7CisgICAgICAgIG5vbmJsb2NrX2NvdW50 ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaiA9IDM7IGogPCBoIC0gNDsgaisrKSB7CisgICAg ICAgICAgICBpZiAoKGogJSBwZXJpb2QpID09IChwZXJpb2QgLSAxKSkgeworICAgICAgICAg ICAgICAgIGJsb2NrICs9IEZGTUFYKEZGTUFYKGdyYWRbKGogKyAwKSAqIGdyYWRfbGluZXNp emVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYWRbKGogKyAx KSAqIGdyYWRfbGluZXNpemVdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBncmFkWyhqIC0gMSkgKiBncmFkX2xpbmVzaXplXSk7CisgICAgICAgICAgICAgICAg YmxvY2tfY291bnQrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg bm9uYmxvY2sgKz0gZ3JhZFtqICogZ3JhZF9saW5lc2l6ZV07CisgICAgICAgICAgICAgICAg bm9uYmxvY2tfY291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0 ZW1wID0gKGJsb2NrIC8gYmxvY2tfY291bnQpIC8gKG5vbmJsb2NrIC8gbm9uYmxvY2tfY291 bnQpOworICAgICAgICByZXQgPSBGRk1BWChyZXQsIHRlbXApOworICAgIH0KKworICAgIC8v IHJldHVybiBoaWdoZXN0IHZhbHVlIG9mIGhvcnp8fHZlcnQgCisgICAgcmV0dXJuIHJldDsK K30KKworc3RhdGljIHZvaWQgc2V0X21ldGEoQVZEaWN0aW9uYXJ5ICoqbWV0YWRhdGEsIGNv bnN0IGNoYXIgKmtleSwgZmxvYXQgZCkKK3sKKyAgICBjaGFyIHZhbHVlWzEyOF07CisgICAg c25wcmludGYodmFsdWUsIHNpemVvZih2YWx1ZSksICIlZiIsIGQpOworICAgIGF2X2RpY3Rf c2V0KG1ldGFkYXRhLCBrZXksIHZhbHVlLCAwKTsKK30KKworc3RhdGljIGludCBibG9ja2Rl dGVjdF9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJhbWUgKmluKQor eworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ICA9IGlubGluay0+ZHN0OworICAgIEJMS0Nv bnRleHQgKnMgICAgICAgICA9IGN0eC0+cHJpdjsKKyAgICBBVkZpbHRlckxpbmsgKm91dGxp bmsgPSBjdHgtPm91dHB1dHNbMF07CisKKyAgICBjb25zdCBpbnQgaW53ID0gaW5saW5rLT53 OworICAgIGNvbnN0IGludCBpbmggPSBpbmxpbmstPmg7CisKKyAgICBmbG9hdCAqZ3JhZGll bnRzICAgPSBzLT5ncmFkaWVudHM7CisKKyAgICBmbG9hdCBibG9jayA9IDAuMGY7CisgICAg aW50IG5wbGFuZXMgPSAwOworICAgIEFWRGljdGlvbmFyeSAqKm1ldGFkYXRhOworICAgIG1l dGFkYXRhID0gJmluLT5tZXRhZGF0YTsKKworICAgIGZvciAoaW50IHBsYW5lID0gMDsgcGxh bmUgPCBzLT5uYl9wbGFuZXM7IHBsYW5lKyspIHsKKyAgICAgICAgaW50IGhzdWIgPSBwbGFu ZSA9PSAxIHx8IHBsYW5lID09IDIgPyBzLT5oc3ViIDogMDsKKyAgICAgICAgaW50IHZzdWIg PSBwbGFuZSA9PSAxIHx8IHBsYW5lID09IDIgPyBzLT52c3ViIDogMDsKKyAgICAgICAgaW50 IHcgPSBBVl9DRUlMX1JTSElGVChpbncsIGhzdWIpOworICAgICAgICBpbnQgaCA9IEFWX0NF SUxfUlNISUZUKGluaCwgdnN1Yik7CisKKyAgICAgICAgaWYgKCEoKDEgPDwgcGxhbmUpICYg cy0+cGxhbmVzKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG5wbGFuZXMr KzsKKworICAgICAgICBibG9jayArPSBjYWxjdWxhdGVfYmxvY2tpbmVzcyhzLCB3LCBoLCBn cmFkaWVudHMsIHcsIGluLT5kYXRhW3BsYW5lXSwgaW4tPmxpbmVzaXplW3BsYW5lXSk7Cisg ICAgfQorCisgICAgaWYgKG5wbGFuZXMpCisgICAgICAgIGJsb2NrIC89IG5wbGFuZXM7CisK KyAgICBzLT5ibG9ja190b3RhbCArPSBibG9jazsKKworICAgIC8vIHdyaXRlIHN0YXRzCisg ICAgYXZfbG9nKGN0eCwgQVZfTE9HX1ZFUkJPU0UsICJibG9jazogJS43ZlxuIiwgYmxvY2sp OworCisgICAgc2V0X21ldGEobWV0YWRhdGEsICJsYXZmaS5ibG9jayIsIGJsb2NrKTsKKwor ICAgIHMtPm5iX2ZyYW1lcyA9IGlubGluay0+ZnJhbWVfY291bnRfaW47CisKKyAgICByZXR1 cm4gZmZfZmlsdGVyX2ZyYW1lKG91dGxpbmssIGluKTsKK30KKworc3RhdGljIGF2X2NvbGQg dm9pZCBibG9ja2RldGVjdF91bmluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7CisgICAg QkxLQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIGlmIChzLT5uYl9mcmFtZXMgPiAw KSB7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiYmxvY2sgbWVhbjogJS43 ZlxuIiwKKyAgICAgICAgICAgICAgIHMtPmJsb2NrX3RvdGFsIC8gcy0+bmJfZnJhbWVzKTsK KyAgICB9CisKKyAgICBhdl9mcmVlcCgmcy0+Z3JhZGllbnRzKTsKK30KKworc3RhdGljIGNv bnN0IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10c1tdID0geworICAgIEFWX1BJWF9GTVRf R1JBWTgsCisgICAgQVZfUElYX0ZNVF9HQlJQLCAgICAgQVZfUElYX0ZNVF9HQlJBUCwKKyAg ICBBVl9QSVhfRk1UX1lVVjQyMlAsICBBVl9QSVhfRk1UX1lVVjQyMFAsCisgICAgQVZfUElY X0ZNVF9ZVVY0NDRQLCAgQVZfUElYX0ZNVF9ZVVY0NDBQLAorICAgIEFWX1BJWF9GTVRfWVVW NDExUCwgIEFWX1BJWF9GTVRfWVVWNDEwUCwKKyAgICBBVl9QSVhfRk1UX1lVVko0NDBQLCBB Vl9QSVhfRk1UX1lVVko0MTFQLCBBVl9QSVhfRk1UX1lVVko0MjBQLAorICAgIEFWX1BJWF9G TVRfWVVWSjQyMlAsIEFWX1BJWF9GTVRfWVVWSjQ0NFAsCisgICAgQVZfUElYX0ZNVF9ZVVZB NDQ0UCwgQVZfUElYX0ZNVF9ZVVZBNDIyUCwgQVZfUElYX0ZNVF9ZVVZBNDIwUCwKKyAgICBB Vl9QSVhfRk1UX05PTkUKK307CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBibG9ja2Rl dGVjdF9pbnB1dHNbXSA9IHsKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgICAgPSAiZGVm YXVsdCIsCisgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisg ICAgICAgIC5jb25maWdfcHJvcHMgPSBibG9ja2RldGVjdF9jb25maWdfaW5wdXQsCisgICAg ICAgIC5maWx0ZXJfZnJhbWUgPSBibG9ja2RldGVjdF9maWx0ZXJfZnJhbWUsCisgICAgfSwK K307CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBibG9ja2RldGVjdF9vdXRwdXRzW10g PSB7CisgICAgeworICAgICAgICAubmFtZSA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUg PSBBVk1FRElBX1RZUEVfVklERU8sCisgICAgfSwKK307CisKK2NvbnN0IEFWRmlsdGVyIGZm X3ZmX2Jsb2NrZGV0ZWN0ID0geworICAgIC5uYW1lICAgICAgICAgID0gImJsb2NrZGV0ZWN0 IiwKKyAgICAuZGVzY3JpcHRpb24gICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJibG9ja2Rl dGVjdCBmaWx0ZXIuIiksCisgICAgLnByaXZfc2l6ZSAgICAgPSBzaXplb2YoQkxLQ29udGV4 dCksCisgICAgLmluaXQgICAgICAgICAgPSBibG9ja2RldGVjdF9pbml0LAorICAgIC51bmlu aXQgICAgICAgID0gYmxvY2tkZXRlY3RfdW5pbml0LAorICAgIEZJTFRFUl9QSVhGTVRTX0FS UkFZKHBpeF9mbXRzKSwKKyAgICBGSUxURVJfSU5QVVRTKGJsb2NrZGV0ZWN0X2lucHV0cyks CisgICAgRklMVEVSX09VVFBVVFMoYmxvY2tkZXRlY3Rfb3V0cHV0cyksCisgICAgLnByaXZf Y2xhc3MgICAgPSAmYmxvY2tkZXRlY3RfY2xhc3MsCisgICAgLmZsYWdzICAgICAgICAgPSBB VkZJTFRFUl9GTEFHX01FVEFEQVRBX09OTFksCit9OwotLSAKMi4yMC4xIChBcHBsZSBHaXQt MTE3KQoK --------------ncqbEvEVos3k6daR5tKIrWQD 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". --------------ncqbEvEVos3k6daR5tKIrWQD--