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 8ACA842E18 for ; Mon, 9 May 2022 12:24:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CB90068B3B2; Mon, 9 May 2022 15:24:40 +0300 (EEST) Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6765468B369 for ; Mon, 9 May 2022 15:24:34 +0300 (EEST) Received: from postfix03.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout01.mail.de (Postfix) with ESMTP id BB1A0A00D2 for ; Mon, 9 May 2022 14:24:33 +0200 (CEST) Received: from smtp04.mail.de (smtp04.bt.mail.de [10.0.121.214]) by postfix03.mail.de (Postfix) with ESMTP id 9F6D3801CF for ; Mon, 9 May 2022 14:24:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1652099073; bh=wlkJza40sdympEfQk2g6x/c41hCZ8yTrNuJ7mcSjXoQ=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=Shh945Ul6E9+zZdoF4iy1UERkG65ifaeni6lniB1ntJtweUys0hMddlDi3d/UVjdm 8FFYf8ABCJzvxC2YO1OJeMX6lOQ3pHdnlT9EOFNA2Wkk4yf0h47aIZttdRK+os2eDa EijXCbZXLd7tEVFjbKDNP1lHs6qsrp9sytWPuc3nFqOgt38jpWTRdPQf35aw3TKF0Y xnIhVM00CCrC1ntkBjrd3tW50lzJbrl/vB8MP/d6gf8jqe5Pm/ffufWK+JYHUkSFNB NBC8jFIl31o/jzhSFe+/K5BJkmHB6aEnUNcZiXVe+gclg/k8tW6yZl0bw9M13/PGLv C/KnqjlveTfgg== 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 smtp04.mail.de (Postfix) with ESMTPSA id 4144EC0052 for ; Mon, 9 May 2022 14:24:32 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------cdKeMchwiImI25hw6Dk5hCpa" Message-ID: <8b359c4f-89a6-a54e-202a-82f87fe4a6d2@mail.de> Date: Mon, 9 May 2022 14:24:31 +0200 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: 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: 18939 X-purgate-ID: 154282::1652099073-000016C9-563C4453/0/0 Subject: Re: [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. --------------cdKeMchwiImI25hw6Dk5hCpa 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 v2 with minimal changes from IRC. -Thilo --------------cdKeMchwiImI25hw6Dk5hCpa Content-Type: text/plain; charset=UTF-8; name="v2-0001-avfilter-Add-blockdetect-filter.patch" Content-Disposition: attachment; filename="v2-0001-avfilter-Add-blockdetect-filter.patch" Content-Transfer-Encoding: base64 RnJvbSAxYTE1ZWFjMzViMzA0NzdlNWM2ZDMxZjI3NzgxOTA3MTg1MTMzMWMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogTW9uLCA5IE1heSAyMDIyIDE0OjIxOjUyICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2Ml0gYXZmaWx0ZXI6IEFkZCBibG9ja2RldGVjdCBmaWx0ZXIKCi0tLQogZG9j L2ZpbHRlcnMudGV4aSAgICAgICAgICAgICB8ICAyOSArKysrCiBsaWJhdmZpbHRlci9NYWtl ZmlsZSAgICAgICAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAgfCAg IDEgKwogbGliYXZmaWx0ZXIvdmZfYmxvY2tkZXRlY3QuYyB8IDI5NCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzMjUgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3ZmX2Jsb2NrZGV0ZWN0LmMK CmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRl eCA1MmM0MDgzM2ViLi5lNTUwZWI4ODI0IDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhp CisrKyBiL2RvYy9maWx0ZXJzLnRleGkKQEAgLTc5OTcsNiArNzk5NywzNSBAQCB0YmxlbmQ9 YWxsX21vZGU9Z3JhaW5leHRyYWN0CiBAc3Vic2VjdGlvbiBDb21tYW5kcwogVGhpcyBmaWx0 ZXIgc3VwcG9ydHMgc2FtZSBAcmVme2NvbW1hbmRzfSBhcyBvcHRpb25zLgogCitAYW5jaG9y e2Jsb2NrZGV0ZWN0fQorQHNlY3Rpb24gYmxvY2tkZXRlY3QKKworRGV0ZXJtaW5lcyBibG9j a2luZXNzIG9mIGZyYW1lcyB3aXRob3V0IGFsdGVyaW5nIHRoZSBpbnB1dCBmcmFtZXMuCisK K0Jhc2VkIG9uIFJlbWNvIE11aWpzIGFuZCBJaG9yIEtpcmVua286ICJBIG5vLXJlZmVyZW5j ZSBibG9ja2luZyBhcnRpZmFjdCBtZWFzdXJlIGZvciBhZGFwdGl2ZSB2aWRlbyBwcm9jZXNz aW5nLiIgMjAwNSAxM3RoIEV1cm9wZWFuIHNpZ25hbCBwcm9jZXNzaW5nIGNvbmZlcmVuY2Uu IAorCitUaGUgZmlsdGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitAdGFi bGUgQG9wdGlvbgorQGl0ZW0gcGVyaW9kX21pbgorQGl0ZW0gcGVyaW9kX21heAorU2V0IG1p bmltdW0gYW5kIG1heGltdW0gdmFsdWVzIGZvciBkZXRlcm1pbmluZyBwaXhlbCBncmlkcyAo cGVyaW9kcykuCitEZWZhdWx0IHZhbHVlcyBhcmUgWzMsMjRdLgorCitAaXRlbSBwbGFuZXMK K1NldCBwbGFuZXMgdG8gZmlsdGVyLiBEZWZhdWx0IGlzIGZpcnN0IG9ubHkuCitAZW5kIHRh YmxlCisKK0BzdWJzZWN0aW9uIEV4YW1wbGVzCisKK0BpdGVtaXplCitAaXRlbQorRGV0ZXJt aW5lIGJsb2NraW5lc3MgZm9yIHRoZSBmaXJzdCBwbGFuZSBhbmQgc2VhcmNoIGZvciBwZXJp b2RzIHdpdGhpbiBbOCwzMl06CitAZXhhbXBsZQorYmxvY2tkZXRlY3Q9cGVyaW9kX21pbj04 OnBlcmlvZF9tYXg9MzI6cGxhbmVzPTEKK0BlbmQgZXhhbXBsZQorQGVuZCBpdGVtaXplCisK IEBhbmNob3J7Ymx1cmRldGVjdH0KIEBzZWN0aW9uIGJsdXJkZXRlY3QKIApkaWZmIC0tZ2l0 IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRlci9NYWtlZmlsZQppbmRleCAx ZGIwOTdiNDY0Li4zNWE0MzA4NzhmIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9NYWtlZmls ZQorKysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQpAQCAtMTk1LDYgKzE5NSw3IEBAIE9CSlMt JChDT05GSUdfQkxBQ0tERVRFQ1RfRklMVEVSKSAgICAgICAgICAgICs9IHZmX2JsYWNrZGV0 ZWN0Lm8KIE9CSlMtJChDT05GSUdfQkxBQ0tGUkFNRV9GSUxURVIpICAgICAgICAgICAgICs9 IHZmX2JsYWNrZnJhbWUubwogT0JKUy0kKENPTkZJR19CTEVORF9GSUxURVIpICAgICAgICAg ICAgICAgICAgKz0gdmZfYmxlbmQubyBmcmFtZXN5bmMubwogT0JKUy0kKENPTkZJR19CTEVO RF9WVUxLQU5fRklMVEVSKSAgICAgICAgICAgKz0gdmZfYmxlbmRfdnVsa2FuLm8gZnJhbWVz eW5jLm8gdnVsa2FuLm8gdnVsa2FuX2ZpbHRlci5vCitPQkpTLSQoQ09ORklHX0JMT0NLREVU RUNUX0ZJTFRFUikgICAgICAgICAgICArPSB2Zl9ibG9ja2RldGVjdC5vCiBPQkpTLSQoQ09O RklHX0JMVVJERVRFQ1RfRklMVEVSKSAgICAgICAgICAgICArPSB2Zl9ibHVyZGV0ZWN0Lm8g ZWRnZV9jb21tb24ubwogT0JKUy0kKENPTkZJR19CTTNEX0ZJTFRFUikgICAgICAgICAgICAg ICAgICAgKz0gdmZfYm0zZC5vIGZyYW1lc3luYy5vCiBPQkpTLSQoQ09ORklHX0JPWEJMVVJf RklMVEVSKSAgICAgICAgICAgICAgICArPSB2Zl9ib3hibHVyLm8gYm94Ymx1ci5vCmRpZmYg LS1naXQgYS9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgYi9saWJhdmZpbHRlci9hbGxmaWx0 ZXJzLmMKaW5kZXggMmFkNTIzZmQwZi4uMzA5MzYzOTJjZSAxMDA2NDQKLS0tIGEvbGliYXZm aWx0ZXIvYWxsZmlsdGVycy5jCisrKyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYwpAQCAt MTgzLDYgKzE4Myw3IEBAIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9ibGFja2RldGVj dDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9ibGFja2ZyYW1lOwogZXh0ZXJuIGNv bnN0IEFWRmlsdGVyIGZmX3ZmX2JsZW5kOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3Zm X2JsZW5kX3Z1bGthbjsKK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9ibG9ja2RldGVj dDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9ibHVyZGV0ZWN0OwogZXh0ZXJuIGNv bnN0IEFWRmlsdGVyIGZmX3ZmX2JtM2Q7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZf Ym94Ymx1cjsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2Jsb2NrZGV0ZWN0LmMgYi9s aWJhdmZpbHRlci92Zl9ibG9ja2RldGVjdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjlkN2RiMTg4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRl ci92Zl9ibG9ja2RldGVjdC5jCkBAIC0wLDAgKzEsMjk0IEBACisvKgorICogQ29weXJpZ2h0 IChjKSAyMDIxIFRoaWxvIEJvcmdtYW5uIDx0aGlsby5ib3JnbWFubiBfYXRfIG1haWwuZGU+ CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3 aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKy8qKgorICogQGZpbGUKKyAqIE5vLXJlZmVy ZW5jZSBibG9ja2RldGVjdCBmaWx0ZXIKKyAqCisgKiBJbXBsZW1lbnRpbmc6CisgKiBSZW1j byBNdWlqcyBhbmQgSWhvciBLaXJlbmtvOiAiQSBuby1yZWZlcmVuY2UgYmxvY2tpbmcgYXJ0 aWZhY3QgbWVhc3VyZSBmb3IgYWRhcHRpdmUgdmlkZW8gcHJvY2Vzc2luZy4iIDIwMDUgMTN0 aCBFdXJvcGVhbiBzaWduYWwgcHJvY2Vzc2luZyBjb25mZXJlbmNlLiBJRUVFLCAyMDA1LiAK KyAqIGh0dHA6Ly93d3cuZXVyYXNpcC5vcmcvUHJvY2VlZGluZ3MvRXVzaXBjby9FdXNpcGNv MjAwNS9kZWZldmVudC9wYXBlcnMvY3IxMDQyLnBkZgorICoKKyAqIEBhdXRob3IgVGhpbG8g Qm9yZ21hbm4gPHRoaWxvLmJvcmdtYW5uIF9hdF8gbWFpbC5kZT4KKyAqLworCisjaW5jbHVk ZSAibGliYXZ1dGlsL2ltZ3V0aWxzLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgor I2luY2x1ZGUgImludGVybmFsLmgiCisKK3R5cGVkZWYgc3RydWN0IEJMS0NvbnRleHQgewor ICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNzOworCisgICAgaW50IGhzdWIsIHZzdWI7CisgICAg aW50IG5iX3BsYW5lczsKKworICAgIGludCBwZXJpb2RfbWluOyAgICAvLyBtaW5pbXVtIHBl cmlvZCB0byBzZWFyY2ggZm9yCisgICAgaW50IHBlcmlvZF9tYXg7ICAgIC8vIG1heGltdW0g cGVyaW9kIHRvIHNlYXJjaCBmb3IKKyAgICBpbnQgcGxhbmVzOyAgICAgICAgLy8gbnVtYmVy IG9mIHBsYW5lcyB0byBmaWx0ZXIKKworICAgIGRvdWJsZSBibG9ja190b3RhbDsKKyAgICB1 aW50NjRfdCBuYl9mcmFtZXM7CisKKyAgICBmbG9hdCAqZ3JhZGllbnRzOworfSBCTEtDb250 ZXh0OworCisjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihCTEtDb250ZXh0LCB4KQorI2Rl ZmluZSBGTEFHUyBBVl9PUFRfRkxBR19GSUxURVJJTkdfUEFSQU18QVZfT1BUX0ZMQUdfVklE RU9fUEFSQU0KK3N0YXRpYyBjb25zdCBBVk9wdGlvbiBibG9ja2RldGVjdF9vcHRpb25zW10g PSB7CisgICAgeyAicGVyaW9kX21pbiIsICJNaW5pbXVtIHBlcmlvZCB0byBzZWFyY2ggZm9y IiwgT0ZGU0VUKHBlcmlvZF9taW4pLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0PTN9LCAyLCAz MiwgRkxBR1N9LAorICAgIHsgInBlcmlvZF9tYXgiLCAiTWF4aW11bSBwZXJpb2QgdG8gc2Vh cmNoIGZvciIsIE9GRlNFVChwZXJpb2RfbWF4KSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2ND0y NH0sIDIsIDY0LCBGTEFHU30sCisgICAgeyAicGxhbmVzIiwgICAgICAgICJzZXQgcGxhbmVz IHRvIGZpbHRlciIsIE9GRlNFVChwbGFuZXMpLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0PTF9 LCAwLCAxNSwgRkxBR1MgfSwKKyAgICB7IE5VTEwgfQorfTsKKworQVZGSUxURVJfREVGSU5F X0NMQVNTKGJsb2NrZGV0ZWN0KTsKKworc3RhdGljIGF2X2NvbGQgaW50IGJsb2NrZGV0ZWN0 X2luaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYmxvY2tkZXRlY3RfY29uZmlnX2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5r KQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gaW5saW5rLT5kc3Q7CisgICAgQkxL Q29udGV4dCAgICAgICpzICAgPSBjdHgtPnByaXY7CisgICAgY29uc3QgaW50IGJ1ZnNpemUg ICAgPSBpbmxpbmstPncgKiBpbmxpbmstPmg7CisgICAgY29uc3QgQVZQaXhGbXREZXNjcmlw dG9yICpwaXhfZGVzYzsKKworICAgIHBpeF9kZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChp bmxpbmstPmZvcm1hdCk7CisgICAgcy0+aHN1YiA9IHBpeF9kZXNjLT5sb2cyX2Nocm9tYV93 OworICAgIHMtPnZzdWIgPSBwaXhfZGVzYy0+bG9nMl9jaHJvbWFfaDsKKyAgICBzLT5uYl9w bGFuZXMgPSBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhpbmxpbmstPmZvcm1hdCk7CisKKyAg ICBzLT5ncmFkaWVudHMgPSBhdl9jYWxsb2MoYnVmc2l6ZSwgc2l6ZW9mKCpzLT5ncmFkaWVu dHMpKTsKKworICAgIGlmICghcy0+Z3JhZGllbnRzKQorICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9NRU0pOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBmbG9hdCBjYWxjdWxh dGVfYmxvY2tpbmVzcyhCTEtDb250ZXh0ICpzLCBpbnQgdywgaW50IGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgKmdyYWQsIGludCBncmFkX2xpbmVzaXpl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywgaW50 IHNyY19saW5lc2l6ZSkKK3sKKyAgICBmbG9hdCBibG9jayA9IDAuMGY7CisgICAgZmxvYXQg bm9uYmxvY2sgPSAwLjBmOworICAgIGludCBibG9ja19jb3VudCA9IDA7CisgICAgaW50IG5v bmJsb2NrX2NvdW50ID0gMDsKKyAgICBmbG9hdCByZXQgPSAwOworCisgICAgLy8gQ2FsY3Vs YXRlIEJTIGluIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGRpcmVjdGlvbnMgYWNjb3JkaW5n IHRvICgxKSgyKSgzKS4gCisgICAgLy8gQWxzbyB0cnkgdG8gZmluZCBpbnRlZ2VyIHBpeGVs IHBlcmlvZHMgKGdyaWRzKSBldmVuIGZvciBzY2FsZWQgaW1hZ2VzLgorICAgIC8vIEluIGNh c2Ugb2YgZnJhY3Rpb25hbCBwZXJpb2RzLCBGRk1BWCBvZiBjdXJyZW50IGFuZCBuZWlnaGJv ciBwaXhlbHMKKyAgICAvLyBjYW4gaGVscCBpbXByb3ZlIHRoZSBjb3JyZWxhdGlvbiB3aXRo IE1RUy4KKyAgICAvLyBTa2lwIGxpbmVhciBjb3JyZWN0aW9uIHRlcm0gKDQpKDUpLCBhcyBp dCBhcHBlYXJzIG9ubHkgdmFsaWQgZm9yIHRoZWlyIG93biB0ZXN0IHNhbXBsZXMuCisKKyAg ICAvLyBob3Jpem9udGFsIGJsb2NraW5lc3MgKGZpeGVkIHdpZHRoKQorICAgIGZvciAoaW50 IGogPSAxOyBqIDwgaDsgaisrKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAzOyBpIDwgdyAt IDQ7IGkrKykgeworICAgICAgICAgICAgZmxvYXQgdGVtcCA9IDAuMGY7CisgICAgICAgICAg ICBncmFkW2ogKiBncmFkX2xpbmVzaXplICsgaV0gPQorICAgICAgICAgICAgICAgICAgICBh YnMoc3JjW2ogKiBzcmNfbGluZXNpemUgKyBpICsgMF0gLSBzcmNbaiAqIHNyY19saW5lc2l6 ZSArIGkgKyAxXSk7CisgICAgICAgICAgICB0ZW1wICs9IGFicyhzcmNbaiAqIHNyY19saW5l c2l6ZSArIGkgKyAxXSAtIHNyY1tqICogc3JjX2xpbmVzaXplICsgaSArIDJdKTsKKyAgICAg ICAgICAgIHRlbXAgKz0gYWJzKHNyY1tqICogc3JjX2xpbmVzaXplICsgaSArIDJdIC0gc3Jj W2ogKiBzcmNfbGluZXNpemUgKyBpICsgM10pOworICAgICAgICAgICAgdGVtcCArPSBhYnMo c3JjW2ogKiBzcmNfbGluZXNpemUgKyBpICsgM10gLSBzcmNbaiAqIHNyY19saW5lc2l6ZSAr IGkgKyA0XSk7CisgICAgICAgICAgICB0ZW1wICs9IGFicyhzcmNbaiAqIHNyY19saW5lc2l6 ZSArIGkgLSAwXSAtIHNyY1tqICogc3JjX2xpbmVzaXplICsgaSAtIDFdKTsKKyAgICAgICAg ICAgIHRlbXAgKz0gYWJzKHNyY1tqICogc3JjX2xpbmVzaXplICsgaSAtIDFdIC0gc3JjW2og KiBzcmNfbGluZXNpemUgKyBpIC0gMl0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3Jj W2ogKiBzcmNfbGluZXNpemUgKyBpIC0gMl0gLSBzcmNbaiAqIHNyY19saW5lc2l6ZSArIGkg LSAzXSk7CisgICAgICAgICAgICB0ZW1wID0gRkZNQVgoMSwgdGVtcCk7CisgICAgICAgICAg ICBncmFkW2ogKiBncmFkX2xpbmVzaXplICsgaV0gLz0gdGVtcDsKKworICAgICAgICAgICAg Ly8gdXNlIGZpcnN0IHJvdyB0byBzdG9yZSBhY2N1bGF0ZWQgcmVzdWx0cworICAgICAgICAg ICAgZ3JhZFtpXSArPSBncmFkW2ogKiBncmFkX2xpbmVzaXplICsgaV07CisgICAgICAgIH0K KyAgICB9CisKKyAgICAvLyBmaW5kIGhvcml6b250YWwgcGVyaW9kCisgICAgZm9yIChpbnQg cGVyaW9kID0gcy0+cGVyaW9kX21pbjsgcGVyaW9kIDwgcy0+cGVyaW9kX21heCArIDE7IHBl cmlvZCsrKSB7CisgICAgICAgIGZsb2F0IHRlbXA7CisgICAgICAgIGJsb2NrID0gMDsKKyAg ICAgICAgbm9uYmxvY2sgPSAwOworICAgICAgICBibG9ja19jb3VudCA9IDA7CisgICAgICAg IG5vbmJsb2NrX2NvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDM7IGkgPCB3IC0g NDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKGkgJSBwZXJpb2QpID09IChwZXJpb2QgLSAx KSkgeworICAgICAgICAgICAgICAgIGJsb2NrICs9IEZGTUFYKEZGTUFYKGdyYWRbaSArIDBd LCBncmFkW2kgKyAxXSksIGdyYWRbaSAtIDFdKTsKKyAgICAgICAgICAgICAgICBibG9ja19j b3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBub25ibG9j ayArPSBncmFkW2ldOworICAgICAgICAgICAgICAgIG5vbmJsb2NrX2NvdW50Kys7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcCA9IChibG9jayAvIGJsb2NrX2Nv dW50KSAvIChub25ibG9jayAvIG5vbmJsb2NrX2NvdW50KTsKKyAgICAgICAgcmV0ID0gRkZN QVgocmV0LCB0ZW1wKTsKKyAgICB9CisKKyAgICAvLyB2ZXJ0aWNhbCBibG9ja2luZXNzIChm aXhlZCBoZWlnaHQpCisgICAgYmxvY2tfY291bnQgPSAwOworICAgIGZvciAoaW50IGogPSAz OyBqIDwgaCAtIDQ7IGorKykgeworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHc7IGkr KykgeworICAgICAgICAgICAgZmxvYXQgdGVtcCA9IDAuMGY7CisgICAgICAgICAgICBncmFk W2ogKiBncmFkX2xpbmVzaXplICsgaV0gPQorICAgICAgICAgICAgICAgICAgICBhYnMoc3Jj WyhqICsgMCkgKiBzcmNfbGluZXNpemUgKyBpXSAtIHNyY1soaiArIDEpICogc3JjX2xpbmVz aXplICsgaV0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3JjWyhqICsgMSkgKiBzcmNf bGluZXNpemUgKyBpXSAtIHNyY1soaiArIDIpICogc3JjX2xpbmVzaXplICsgaV0pOworICAg ICAgICAgICAgdGVtcCArPSBhYnMoc3JjWyhqICsgMikgKiBzcmNfbGluZXNpemUgKyBpXSAt IHNyY1soaiArIDMpICogc3JjX2xpbmVzaXplICsgaV0pOworICAgICAgICAgICAgdGVtcCAr PSBhYnMoc3JjWyhqICsgMykgKiBzcmNfbGluZXNpemUgKyBpXSAtIHNyY1soaiArIDQpICog c3JjX2xpbmVzaXplICsgaV0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3JjWyhqIC0g MCkgKiBzcmNfbGluZXNpemUgKyBpXSAtIHNyY1soaiAtIDEpICogc3JjX2xpbmVzaXplICsg aV0pOworICAgICAgICAgICAgdGVtcCArPSBhYnMoc3JjWyhqIC0gMSkgKiBzcmNfbGluZXNp emUgKyBpXSAtIHNyY1soaiAtIDIpICogc3JjX2xpbmVzaXplICsgaV0pOworICAgICAgICAg ICAgdGVtcCArPSBhYnMoc3JjWyhqIC0gMikgKiBzcmNfbGluZXNpemUgKyBpXSAtIHNyY1so aiAtIDMpICogc3JjX2xpbmVzaXplICsgaV0pOworICAgICAgICAgICAgdGVtcCA9IEZGTUFY KDEsIHRlbXApOworICAgICAgICAgICAgZ3JhZFtqICogZ3JhZF9saW5lc2l6ZSArIGldIC89 IHRlbXA7CisKKyAgICAgICAgICAgIC8vIHVzZSBmaXJzdCBjb2x1bW4gdG8gc3RvcmUgYWNj dW11bGF0ZWQgcmVzdWx0cworICAgICAgICAgICAgZ3JhZFtqICogZ3JhZF9saW5lc2l6ZV0g Kz0gZ3JhZFtqICogZ3JhZF9saW5lc2l6ZSArIGldOworICAgICAgICB9CisgICAgfQorCisg ICAgLy8gZmluZCB2ZXJ0aWNhbCBwZXJpb2QKKyAgICBmb3IgKGludCBwZXJpb2QgPSBzLT5w ZXJpb2RfbWluOyBwZXJpb2QgPCBzLT5wZXJpb2RfbWF4ICsgMTsgcGVyaW9kKyspIHsKKyAg ICAgICAgZmxvYXQgdGVtcDsKKyAgICAgICAgYmxvY2sgPSAwOworICAgICAgICBub25ibG9j ayA9IDA7CisgICAgICAgIGJsb2NrX2NvdW50ID0gMDsKKyAgICAgICAgbm9uYmxvY2tfY291 bnQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMzsgaiA8IGggLSA0OyBqKyspIHsKKyAg ICAgICAgICAgIGlmICgoaiAlIHBlcmlvZCkgPT0gKHBlcmlvZCAtIDEpKSB7CisgICAgICAg ICAgICAgICAgYmxvY2sgKz0gRkZNQVgoRkZNQVgoZ3JhZFsoaiArIDApICogZ3JhZF9saW5l c2l6ZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZFsoaiAr IDEpICogZ3JhZF9saW5lc2l6ZV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdyYWRbKGogLSAxKSAqIGdyYWRfbGluZXNpemVdKTsKKyAgICAgICAgICAgICAg ICBibG9ja19jb3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg ICBub25ibG9jayArPSBncmFkW2ogKiBncmFkX2xpbmVzaXplXTsKKyAgICAgICAgICAgICAg ICBub25ibG9ja19jb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg IHRlbXAgPSAoYmxvY2sgLyBibG9ja19jb3VudCkgLyAobm9uYmxvY2sgLyBub25ibG9ja19j b3VudCk7CisgICAgICAgIHJldCA9IEZGTUFYKHJldCwgdGVtcCk7CisgICAgfQorCisgICAg Ly8gcmV0dXJuIGhpZ2hlc3QgdmFsdWUgb2YgaG9yenx8dmVydCAKKyAgICByZXR1cm4gcmV0 OworfQorCitzdGF0aWMgdm9pZCBzZXRfbWV0YShBVkRpY3Rpb25hcnkgKiptZXRhZGF0YSwg Y29uc3QgY2hhciAqa2V5LCBmbG9hdCBkKQoreworICAgIGNoYXIgdmFsdWVbMTI4XTsKKyAg ICBzbnByaW50Zih2YWx1ZSwgc2l6ZW9mKHZhbHVlKSwgIiVmIiwgZCk7CisgICAgYXZfZGlj dF9zZXQobWV0YWRhdGEsIGtleSwgdmFsdWUsIDApOworfQorCitzdGF0aWMgaW50IGJsb2Nr ZGV0ZWN0X2ZpbHRlcl9mcmFtZShBVkZpbHRlckxpbmsgKmlubGluaywgQVZGcmFtZSAqaW4p Cit7CisgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggID0gaW5saW5rLT5kc3Q7CisgICAgQkxL Q29udGV4dCAqcyAgICAgICAgID0gY3R4LT5wcml2OworICAgIEFWRmlsdGVyTGluayAqb3V0 bGluayA9IGN0eC0+b3V0cHV0c1swXTsKKworICAgIGNvbnN0IGludCBpbncgPSBpbmxpbmst Pnc7CisgICAgY29uc3QgaW50IGluaCA9IGlubGluay0+aDsKKworICAgIGZsb2F0ICpncmFk aWVudHMgICA9IHMtPmdyYWRpZW50czsKKworICAgIGZsb2F0IGJsb2NrID0gMC4wZjsKKyAg ICBpbnQgbnBsYW5lcyA9IDA7CisgICAgQVZEaWN0aW9uYXJ5ICoqbWV0YWRhdGE7CisgICAg bWV0YWRhdGEgPSAmaW4tPm1ldGFkYXRhOworCisgICAgZm9yIChpbnQgcGxhbmUgPSAwOyBw bGFuZSA8IHMtPm5iX3BsYW5lczsgcGxhbmUrKykgeworICAgICAgICBpbnQgaHN1YiA9IHBs YW5lID09IDEgfHwgcGxhbmUgPT0gMiA/IHMtPmhzdWIgOiAwOworICAgICAgICBpbnQgdnN1 YiA9IHBsYW5lID09IDEgfHwgcGxhbmUgPT0gMiA/IHMtPnZzdWIgOiAwOworICAgICAgICBp bnQgdyA9IEFWX0NFSUxfUlNISUZUKGludywgaHN1Yik7CisgICAgICAgIGludCBoID0gQVZf Q0VJTF9SU0hJRlQoaW5oLCB2c3ViKTsKKworICAgICAgICBpZiAoISgoMSA8PCBwbGFuZSkg JiBzLT5wbGFuZXMpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgbnBsYW5l cysrOworCisgICAgICAgIGJsb2NrICs9IGNhbGN1bGF0ZV9ibG9ja2luZXNzKHMsIHcsIGgs IGdyYWRpZW50cywgdywgaW4tPmRhdGFbcGxhbmVdLCBpbi0+bGluZXNpemVbcGxhbmVdKTsK KyAgICB9CisKKyAgICBpZiAobnBsYW5lcykKKyAgICAgICAgYmxvY2sgLz0gbnBsYW5lczsK KworICAgIHMtPmJsb2NrX3RvdGFsICs9IGJsb2NrOworCisgICAgLy8gd3JpdGUgc3RhdHMK KyAgICBhdl9sb2coY3R4LCBBVl9MT0dfVkVSQk9TRSwgImJsb2NrOiAlLjdmXG4iLCBibG9j ayk7CisKKyAgICBzZXRfbWV0YShtZXRhZGF0YSwgImxhdmZpLmJsb2NrIiwgYmxvY2spOwor CisgICAgcy0+bmJfZnJhbWVzID0gaW5saW5rLT5mcmFtZV9jb3VudF9pbjsKKworICAgIHJl dHVybiBmZl9maWx0ZXJfZnJhbWUob3V0bGluaywgaW4pOworfQorCitzdGF0aWMgYXZfY29s ZCB2b2lkIGJsb2NrZGV0ZWN0X3VuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKK3sKKyAg ICBCTEtDb250ZXh0ICpzID0gY3R4LT5wcml2OworCisgICAgaWYgKHMtPm5iX2ZyYW1lcyA+ IDApIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJibG9jayBtZWFuOiAl LjdmXG4iLAorICAgICAgICAgICAgICAgcy0+YmxvY2tfdG90YWwgLyBzLT5uYl9mcmFtZXMp OworICAgIH0KKworICAgIGF2X2ZyZWVwKCZzLT5ncmFkaWVudHMpOworfQorCitzdGF0aWMg Y29uc3QgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXRzW10gPSB7CisgICAgQVZfUElYX0ZN VF9HUkFZOCwKKyAgICBBVl9QSVhfRk1UX0dCUlAsICAgICBBVl9QSVhfRk1UX0dCUkFQLAor ICAgIEFWX1BJWF9GTVRfWVVWNDIyUCwgIEFWX1BJWF9GTVRfWVVWNDIwUCwKKyAgICBBVl9Q SVhfRk1UX1lVVjQ0NFAsICBBVl9QSVhfRk1UX1lVVjQ0MFAsCisgICAgQVZfUElYX0ZNVF9Z VVY0MTFQLCAgQVZfUElYX0ZNVF9ZVVY0MTBQLAorICAgIEFWX1BJWF9GTVRfWVVWSjQ0MFAs IEFWX1BJWF9GTVRfWVVWSjQxMVAsIEFWX1BJWF9GTVRfWVVWSjQyMFAsCisgICAgQVZfUElY X0ZNVF9ZVVZKNDIyUCwgQVZfUElYX0ZNVF9ZVVZKNDQ0UCwKKyAgICBBVl9QSVhfRk1UX1lV VkE0NDRQLCBBVl9QSVhfRk1UX1lVVkE0MjJQLCBBVl9QSVhfRk1UX1lVVkE0MjBQLAorICAg IEFWX1BJWF9GTVRfTk9ORQorfTsKKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGJsb2Nr ZGV0ZWN0X2lucHV0c1tdID0geworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJk ZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywK KyAgICAgICAgLmNvbmZpZ19wcm9wcyA9IGJsb2NrZGV0ZWN0X2NvbmZpZ19pbnB1dCwKKyAg ICAgICAgLmZpbHRlcl9mcmFtZSA9IGJsb2NrZGV0ZWN0X2ZpbHRlcl9mcmFtZSwKKyAgICB9 LAorfTsKKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGJsb2NrZGV0ZWN0X291dHB1dHNb XSA9IHsKKyAgICB7CisgICAgICAgIC5uYW1lID0gImRlZmF1bHQiLAorICAgICAgICAudHlw ZSA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICB9LAorfTsKKworY29uc3QgQVZGaWx0ZXIg ZmZfdmZfYmxvY2tkZXRlY3QgPSB7CisgICAgLm5hbWUgICAgICAgICAgPSAiYmxvY2tkZXRl Y3QiLAorICAgIC5kZXNjcmlwdGlvbiAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkJsb2Nr ZGV0ZWN0IGZpbHRlci4iKSwKKyAgICAucHJpdl9zaXplICAgICA9IHNpemVvZihCTEtDb250 ZXh0KSwKKyAgICAuaW5pdCAgICAgICAgICA9IGJsb2NrZGV0ZWN0X2luaXQsCisgICAgLnVu aW5pdCAgICAgICAgPSBibG9ja2RldGVjdF91bmluaXQsCisgICAgRklMVEVSX1BJWEZNVFNf QVJSQVkocGl4X2ZtdHMpLAorICAgIEZJTFRFUl9JTlBVVFMoYmxvY2tkZXRlY3RfaW5wdXRz KSwKKyAgICBGSUxURVJfT1VUUFVUUyhibG9ja2RldGVjdF9vdXRwdXRzKSwKKyAgICAucHJp dl9jbGFzcyAgICA9ICZibG9ja2RldGVjdF9jbGFzcywKKyAgICAuZmxhZ3MgICAgICAgICA9 IEFWRklMVEVSX0ZMQUdfTUVUQURBVEFfT05MWSwKK307Ci0tIAoyLjIwLjEgKEFwcGxlIEdp dC0xMTcpCgo= --------------cdKeMchwiImI25hw6Dk5hCpa 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". --------------cdKeMchwiImI25hw6Dk5hCpa--