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 2638D44260 for ; Fri, 4 Nov 2022 19:34:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EA1B268B7B5; Fri, 4 Nov 2022 21:34:30 +0200 (EET) Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8AABD68B71B for ; Fri, 4 Nov 2022 21:34:24 +0200 (EET) Received: by mail-ua1-f54.google.com with SMTP id i16so2777430uak.1 for ; Fri, 04 Nov 2022 12:34:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=dX5/LW66QdrVSCiQXu5GJJAkMTV3cSSTPN8H+Oexoco=; b=l7ZOih7/utAmaCb/FErc12kudORVxPnvi8bwHlQHrstZsa1QyWK4cKOtzJdw/Ytrdk MXR1cEiwcFY+7nSTXGwB3aGWQ+gdl35kC+UHpx4GlWnxpJ4j7gzNt0N4+DsEiz9LkeZs iKE1JlYNbhhZ2vYrcYyrfc4MYKb7f/anwcZD0DtJQmpy4e7SdI4g+b+udJnezxEfspGy EMF8DOHRQbnq5YQG9z8lVe0cJEq5yvq8ZyMlp5X1UbYP3mua+Fq51GY3CDsR2mMm40eW VJ+nxe8PFrxhvsXN9ljJ4QaTy56ZLMVOGMGV1r8vbfjDy1s7CtyfHjA/p7Gn6hgX9lHw ugIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dX5/LW66QdrVSCiQXu5GJJAkMTV3cSSTPN8H+Oexoco=; b=RNzA4j6zlOL8PhxkDi+C6qP1Qypf85yNTX8Ftkk4SmXujItimkx7khvHEVOV4Zndo4 GOMAaSvCMWQ5svU+hZWI/BvAmLhRT2VASl/ol53P8rKhhbRoGeomYm461NCNwxgMdkx+ UoGtrF58Vymzbep1AH8u8PoqCGcEm9A9lqHcHxzTWPcqKfEvSpGp33yuIuhIBKyVoueY 5DcPFcSdAXsVxUpOz4BRIpdshymBx3yBqobFCR6FwsarkshFe+WHkc2cjTHurkdnmfvk 6OXzYRxiri6/aBoqANG3WooOEn24FhQ8gc2VC/5j/nyBy5xABW5kgRwM6tlV9YZMJ/9B zwDg== X-Gm-Message-State: ACrzQf2iyjp0UfLJaBHkw8230vdeFlFjXty8OaX6mQvjTKjQ6YfzHGGX UB2RMMn3IFVXmgE1tnx1nU3Q8FVIeDyX3psEr7qpGRe4 X-Google-Smtp-Source: AMsMyM5qjkJGUEXUI0IP1+jYJnxsdzLRsfqQETXNXp05LUu0fK0Q82BVBmnTegXz7dReRUfuOo2BpNS9AobXzu6/4fo= X-Received: by 2002:ab0:29d8:0:b0:40a:c9:9ff7 with SMTP id i24-20020ab029d8000000b0040a00c99ff7mr10413792uaq.41.1667590462998; Fri, 04 Nov 2022 12:34:22 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:612c:612:b0:314:ac6a:1eb7 with HTTP; Fri, 4 Nov 2022 12:34:21 -0700 (PDT) In-Reply-To: References: From: Paul B Mahol Date: Fri, 4 Nov 2022 20:34:21 +0100 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="0000000000002dab3405ecaa29a3" Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add backgroundkey 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: --0000000000002dab3405ecaa29a3 Content-Type: text/plain; charset="UTF-8" On 11/2/22, Paul B Mahol wrote: > On 10/30/22, Paul B Mahol wrote: >> Patch attached. >> > > Improved patch attached. > Another improvement. --0000000000002dab3405ecaa29a3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avfilter-add-backgroundkey-video-filter.patch" Content-Disposition: attachment; filename="0001-avfilter-add-backgroundkey-video-filter.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 RnJvbSA1ZmVkMDc0Y2MyNGEyMDFjMDc4OWEwNzU3ZGNhODcxMGVmNWY1YzA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjggT2N0IDIwMjIgMjI6MDI6MjkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmZpbHRl cjogYWRkIGJhY2tncm91bmRrZXkgdmlkZW8gZmlsdGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIg TWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgICAg ICAgIHwgIDE5ICsrKwogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgICAgICAgIHwgICAxICsKIGxp YmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci92Zl9iYWNr Z3JvdW5ka2V5LmMgfCAyNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZp bGVzIGNoYW5nZWQsIDI3NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZm aWx0ZXIvdmZfYmFja2dyb3VuZGtleS5jCgpkaWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBi L2RvYy9maWx0ZXJzLnRleGkKaW5kZXggMDA2MTczYmE0Ny4uNzVkNzcxZWY0YSAxMDA2NDQKLS0t IGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9kb2MvZmlsdGVycy50ZXhpCkBAIC03OTg3LDYgKzc5 ODcsMjUgQEAgVGhlIGNvbW1hbmQgYWNjZXB0cyB0aGUgc2FtZSBzeW50YXggb2YgdGhlIGNvcnJl c3BvbmRpbmcgb3B0aW9uLgogSWYgdGhlIHNwZWNpZmllZCBleHByZXNzaW9uIGlzIG5vdCB2YWxp ZCwgaXQgaXMga2VwdCBhdCBpdHMgY3VycmVudAogdmFsdWUuCiAKK0BzZWN0aW9uIGJhY2tncm91 bmRrZXkKKworVHVybnMgYSBzdGF0aWMgYmFja2dyb3VuZCBpbnRvIHRyYW5zcGFyZW5jeS4KKwor VGhlIGZpbHRlciBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uOgorCitAdGFibGUgQG9wdGlv bgorQGl0ZW0gdGhyZXNob2xkCitUaHJlc2hvbGQgZm9yIHNjZW5lIGNoYW5nZSBkZXRlY3Rpb24u CitAaXRlbSBzaW1pbGFyaXR5CitTaW1pbGFyaXR5IHBlcmNlbnRhZ2Ugd2l0aCB0aGUgYmFja2dy b3VuZC4KK0BpdGVtIGJsZW5kCitTZXQgdGhlIGJsZW5kIGFtb3VudCBmb3IgcGl4ZWxzIHRoYXQg YXJlIG5vdCBzaW1pbGFyLgorQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBDb21tYW5kcworVGhp cyBmaWx0ZXIgc3VwcG9ydHMgc2FtZSBAcmVme2NvbW1hbmRzfSBhcyBvcHRpb25zIGV4Y2VwdCBv cHRpb24gQGNvZGV7c30uCitUaGUgY29tbWFuZCBhY2NlcHRzIHRoZSBzYW1lIHN5bnRheCBvZiB0 aGUgY29ycmVzcG9uZGluZyBvcHRpb24uCisKIEBzZWN0aW9uIGJib3gKIAogQ29tcHV0ZSB0aGUg Ym91bmRpbmcgYm94IGZvciB0aGUgbm9uLWJsYWNrIHBpeGVscyBpbiB0aGUgaW5wdXQgZnJhbWUK ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUK aW5kZXggMTk1ZTYxNmNjYy4uMGU5NzFkNWMzZSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvTWFr ZWZpbGUKKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAgLTE5Miw2ICsxOTIsNyBAQCBPQkpT LSQoQ09ORklHX0FWR0JMVVJfRklMVEVSKSAgICAgICAgICAgICAgICArPSB2Zl9hdmdibHVyLm8K IE9CSlMtJChDT05GSUdfQVZHQkxVUl9PUEVOQ0xfRklMVEVSKSAgICAgICAgICs9IHZmX2F2Z2Js dXJfb3BlbmNsLm8gb3BlbmNsLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3BlbmNsL2F2Z2JsdXIubyBib3hibHVyLm8KIE9CSlMtJChDT05GSUdf QVZHQkxVUl9WVUxLQU5fRklMVEVSKSAgICAgICAgICs9IHZmX2F2Z2JsdXJfdnVsa2FuLm8gdnVs a2FuLm8gdnVsa2FuX2ZpbHRlci5vCitPQkpTLSQoQ09ORklHX0JBQ0tHUk9VTkRLRVlfRklMVEVS KSAgICAgICAgICArPSB2Zl9iYWNrZ3JvdW5ka2V5Lm8KIE9CSlMtJChDT05GSUdfQkJPWF9GSUxU RVIpICAgICAgICAgICAgICAgICAgICs9IGJib3gubyB2Zl9iYm94Lm8KIE9CSlMtJChDT05GSUdf QkVOQ0hfRklMVEVSKSAgICAgICAgICAgICAgICAgICs9IGZfYmVuY2gubwogT0JKUy0kKENPTkZJ R19CSUxBVEVSQUxfRklMVEVSKSAgICAgICAgICAgICAgKz0gdmZfYmlsYXRlcmFsLm8KZGlmZiAt LWdpdCBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMu YwppbmRleCA5NzIyNWEzNjc5Li4xZTAzOTFmN2E0IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9h bGxmaWx0ZXJzLmMKKysrIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCkBAIC0xNzgsNiArMTc4 LDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2F0YWRlbm9pc2U7CiBleHRlcm4gY29u c3QgQVZGaWx0ZXIgZmZfdmZfYXZnYmx1cjsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9h dmdibHVyX29wZW5jbDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9hdmdibHVyX3Z1bGth bjsKK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9iYWNrZ3JvdW5ka2V5OwogZXh0ZXJuIGNv bnN0IEFWRmlsdGVyIGZmX3ZmX2Jib3g7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmVu Y2g7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmlsYXRlcmFsOwpkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvdmZfYmFja2dyb3VuZGtleS5jIGIvbGliYXZmaWx0ZXIvdmZfYmFja2dyb3Vu ZGtleS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBkZjZkMGY0ZDYK LS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRlci92Zl9iYWNrZ3JvdW5ka2V5LmMKQEAgLTAs MCArMSwyNTMgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2lu Y2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIK KyNpbmNsdWRlICJhdmZpbHRlci5oIgorI2luY2x1ZGUgImZvcm1hdHMuaCIKKyNpbmNsdWRlICJp bnRlcm5hbC5oIgorI2luY2x1ZGUgInZpZGVvLmgiCisKK3R5cGVkZWYgc3RydWN0IEJhY2tncm91 bmRrZXlDb250ZXh0IHsKKyAgICBjb25zdCBBVkNsYXNzICpjbGFzczsKKworICAgIGZsb2F0IHRo cmVzaG9sZDsKKyAgICBmbG9hdCBzaW1pbGFyaXR5OworICAgIGZsb2F0IGJsZW5kOworICAgIGlu dCBtYXg7CisKKyAgICBpbnQgbmJfdGhyZWFkczsKKyAgICBpbnQgaHN1Yl9sb2cyOworICAgIGlu dCB2c3ViX2xvZzI7CisKKyAgICBpbnQ2NF90IG1heF9zdW07CisgICAgaW50NjRfdCAqc3VtczsK KworICAgIEFWRnJhbWUgKmJhY2tncm91bmQ7CisKKyAgICBpbnQgKCpkb19zbGljZSkoQVZGaWx0 ZXJDb250ZXh0ICphdmN0eCwgdm9pZCAqYXJnLAorICAgICAgICAgICAgICAgICAgICBpbnQgam9i bnIsIGludCBuYl9qb2JzKTsKK30gQmFja2dyb3VuZGtleUNvbnRleHQ7CisKK3N0YXRpYyBpbnQg ZG9fYmFja2dyb3VuZGtleV9zbGljZShBVkZpbHRlckNvbnRleHQgKmF2Y3R4LCB2b2lkICphcmcs IGludCBqb2JuciwgaW50IG5iX2pvYnMpCit7CisgICAgQmFja2dyb3VuZGtleUNvbnRleHQgKnMg PSBhdmN0eC0+cHJpdjsKKyAgICBBVkZyYW1lICpmcmFtZSA9IGFyZzsKKyAgICBjb25zdCBpbnQg c2xpY2Vfc3RhcnQgPSAoZnJhbWUtPmhlaWdodCAqIGpvYm5yKSAvIG5iX2pvYnM7CisgICAgY29u c3QgaW50IHNsaWNlX2VuZCA9IChmcmFtZS0+aGVpZ2h0ICogKGpvYm5yICsgMSkpIC8gbmJfam9i czsKKyAgICBjb25zdCBpbnQgbWluX2RpZmYgPSAoMjU1ICsgMjU1ICsgMjU1KSAqIHMtPnNpbWls YXJpdHk7CisgICAgY29uc3QgZmxvYXQgYmxlbmQgPSBzLT5ibGVuZDsKKyAgICBjb25zdCBpbnQg aHN1YiA9IHMtPmhzdWJfbG9nMjsKKyAgICBjb25zdCBpbnQgdnN1YiA9IHMtPnZzdWJfbG9nMjsK KyAgICBpbnQ2NF90IHN1bSA9IDA7CisKKyAgICBmb3IgKGludCB5ID0gc2xpY2Vfc3RhcnQ7IHkg PCBzbGljZV9lbmQ7IHkrKykgeworICAgICAgICBjb25zdCB1aW50OF90ICpzcmN5ID0gZnJhbWUt PmRhdGFbMF0gKyBmcmFtZS0+bGluZXNpemVbMF0gKiB5OworICAgICAgICBjb25zdCB1aW50OF90 ICpzcmN1ID0gZnJhbWUtPmRhdGFbMV0gKyBmcmFtZS0+bGluZXNpemVbMV0gKiAoeSA+PiB2c3Vi KTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqc3JjdiA9IGZyYW1lLT5kYXRhWzJdICsgZnJhbWUt PmxpbmVzaXplWzJdICogKHkgPj4gdnN1Yik7CisgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJzcmN5 ID0gcy0+YmFja2dyb3VuZC0+ZGF0YVswXSArIHMtPmJhY2tncm91bmQtPmxpbmVzaXplWzBdICog eTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqYnNyY3UgPSBzLT5iYWNrZ3JvdW5kLT5kYXRhWzFd ICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMV0gKiAoeSA+PiB2c3ViKTsKKyAgICAgICAgY29u c3QgdWludDhfdCAqYnNyY3YgPSBzLT5iYWNrZ3JvdW5kLT5kYXRhWzJdICsgcy0+YmFja2dyb3Vu ZC0+bGluZXNpemVbMl0gKiAoeSA+PiB2c3ViKTsKKyAgICAgICAgdWludDhfdCAqZHN0ID0gZnJh bWUtPmRhdGFbM10gKyBmcmFtZS0+bGluZXNpemVbM10gKiB5OworICAgICAgICBmb3IgKGludCB4 ID0gMDsgeCA8IGZyYW1lLT53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBjb25zdCBpbnQgeHgg PSB4ID4+IGhzdWI7CisgICAgICAgICAgICBjb25zdCBpbnQgZGlmZiA9IEZGQUJTKHNyY3lbeF0g IC0gYnNyY3lbeF0pICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNyY3Vb eHhdIC0gYnNyY3VbeHhdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNy Y3ZbeHhdIC0gYnNyY3ZbeHhdKTsKKyAgICAgICAgICAgIGludCBBOworCisgICAgICAgICAgICBz dW0gKz0gZGlmZjsKKyAgICAgICAgICAgIGlmIChibGVuZCA+IDAuZikgeworICAgICAgICAgICAg ICAgIEEgPSAyNTUgLSBhdl9jbGlwZigobWluX2RpZmYgLSBkaWZmKSAvIGJsZW5kLCAwLmYsIDI1 NS5mKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQSA9IChkaWZmID4g bWluX2RpZmYpID8gMjU1IDogMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZHN0W3hd ID0gQTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHMtPnN1bXNbam9ibnJdID0gc3VtOworCisg ICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG9fYmFja2dyb3VuZGtleTE2X3NsaWNlKEFW RmlsdGVyQ29udGV4dCAqYXZjdHgsIHZvaWQgKmFyZywgaW50IGpvYm5yLCBpbnQgbmJfam9icykK K3sKKyAgICBCYWNrZ3JvdW5ka2V5Q29udGV4dCAqcyA9IGF2Y3R4LT5wcml2OworICAgIEFWRnJh bWUgKmZyYW1lID0gYXJnOworICAgIGNvbnN0IGludCBzbGljZV9zdGFydCA9IChmcmFtZS0+aGVp Z2h0ICogam9ibnIpIC8gbmJfam9iczsKKyAgICBjb25zdCBpbnQgc2xpY2VfZW5kID0gKGZyYW1l LT5oZWlnaHQgKiAoam9ibnIgKyAxKSkgLyBuYl9qb2JzOworICAgIGNvbnN0IGludCBoc3ViID0g cy0+aHN1Yl9sb2cyOworICAgIGNvbnN0IGludCB2c3ViID0gcy0+dnN1Yl9sb2cyOworICAgIGNv bnN0IGludCBtYXggPSBzLT5tYXg7CisgICAgY29uc3QgaW50IG1pbl9kaWZmID0gcy0+c2ltaWxh cml0eSAqIChzLT5tYXggKyBzLT5tYXggKyBzLT5tYXgpOworICAgIGNvbnN0IGZsb2F0IGJsZW5k ID0gcy0+YmxlbmQ7CisgICAgaW50NjRfdCBzdW0gPSAwOworCisgICAgZm9yIChpbnQgeSA9IHNs aWNlX3N0YXJ0OyB5IDwgc2xpY2VfZW5kOyB5KyspIHsKKyAgICAgICAgY29uc3QgdWludDE2X3Qg KnNyY3kgPSAoY29uc3QgdWludDE2X3QgKikoZnJhbWUtPmRhdGFbMF0gKyBmcmFtZS0+bGluZXNp emVbMF0gKiAgeSk7CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpzcmN1ID0gKGNvbnN0IHVpbnQx Nl90ICopKGZyYW1lLT5kYXRhWzFdICsgZnJhbWUtPmxpbmVzaXplWzFdICogKHkgPj4gdnN1Yikp OworICAgICAgICBjb25zdCB1aW50MTZfdCAqc3JjdiA9IChjb25zdCB1aW50MTZfdCAqKShmcmFt ZS0+ZGF0YVsyXSArIGZyYW1lLT5saW5lc2l6ZVsyXSAqICh5ID4+IHZzdWIpKTsKKyAgICAgICAg Y29uc3QgdWludDE2X3QgKmJzcmN5ID0gKGNvbnN0IHVpbnQxNl90ICopKHMtPmJhY2tncm91bmQt PmRhdGFbMF0gKyBzLT5iYWNrZ3JvdW5kLT5saW5lc2l6ZVswXSAqICB5KTsKKyAgICAgICAgY29u c3QgdWludDE2X3QgKmJzcmN1ID0gKGNvbnN0IHVpbnQxNl90ICopKHMtPmJhY2tncm91bmQtPmRh dGFbMV0gKyBzLT5iYWNrZ3JvdW5kLT5saW5lc2l6ZVsxXSAqICh5ID4+IHZzdWIpKTsKKyAgICAg ICAgY29uc3QgdWludDE2X3QgKmJzcmN2ID0gKGNvbnN0IHVpbnQxNl90ICopKHMtPmJhY2tncm91 bmQtPmRhdGFbMl0gKyBzLT5iYWNrZ3JvdW5kLT5saW5lc2l6ZVsyXSAqICh5ID4+IHZzdWIpKTsK KyAgICAgICAgdWludDE2X3QgKmRzdCA9ICh1aW50MTZfdCAqKShmcmFtZS0+ZGF0YVszXSArIGZy YW1lLT5saW5lc2l6ZVszXSAqIHkpOworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGZyYW1l LT53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBjb25zdCBpbnQgeHggPSB4ID4+IGhzdWI7Cisg ICAgICAgICAgICBjb25zdCBpbnQgZGlmZiA9IEZGQUJTKHNyY3lbeF0gIC0gYnNyY3lbeF0gKSAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNyY3VbeHhdIC0gYnNyY3VbeHhd KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNyY3ZbeHhdIC0gYnNyY3Zb eHhdKTsKKyAgICAgICAgICAgIGludCBBOworCisgICAgICAgICAgICBzdW0gKz0gZGlmZjsKKyAg ICAgICAgICAgIGlmIChibGVuZCA+IDAuZikgeworICAgICAgICAgICAgICAgIEEgPSBtYXggLSBh dl9jbGlwZigobWluX2RpZmYgLSBkaWZmKSAvIGJsZW5kLCAwLmYsIG1heCk7CisgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEEgPSAoZGlmZiA+IG1pbl9kaWZmKSA/IG1heCA6 IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRzdFt4XSA9IEE7CisgICAgICAgIH0K KyAgICB9CisKKyAgICBzLT5zdW1zW2pvYm5yXSA9IHN1bTsKKworICAgIHJldHVybiAwOworfQor CitzdGF0aWMgaW50IGZpbHRlcl9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZy YW1lKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqYXZjdHggPSBsaW5rLT5kc3Q7CisgICAgQmFj a2dyb3VuZGtleUNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdjsKKyAgICBpbnQ2NF90IHN1bSA9IDA7 CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoIXMtPmJhY2tncm91bmQpIHsKKyAgICAgICAg cy0+YmFja2dyb3VuZCA9IGZmX2dldF92aWRlb19idWZmZXIobGluaywgZnJhbWUtPndpZHRoLCBm cmFtZS0+aGVpZ2h0KTsKKyAgICAgICAgaWYgKCFzLT5iYWNrZ3JvdW5kKQorICAgICAgICAgICAg Z290byBmYWlsOworICAgICAgICByZXQgPSBhdl9mcmFtZV9jb3B5KHMtPmJhY2tncm91bmQsIGZy YW1lKTsKKyAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAg fQorCisgICAgaWYgKHJldCA9IGZmX2ZpbHRlcl9leGVjdXRlKGF2Y3R4LCBzLT5kb19zbGljZSwg ZnJhbWUsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGTUlOKGZyYW1l LT5oZWlnaHQsIHMtPm5iX3RocmVhZHMpKSkKKyAgICAgICAgZ290byBmYWlsOworCisgICAgZm9y IChpbnQgbiA9IDA7IG4gPCBzLT5uYl90aHJlYWRzOyBuKyspCisgICAgICAgIHN1bSArPSBzLT5z dW1zW25dOworICAgIGlmIChzLT5tYXhfc3VtICogcy0+dGhyZXNob2xkIDwgc3VtKSB7CisgICAg ICAgIHJldCA9IGF2X2ZyYW1lX2NvcHkocy0+YmFja2dyb3VuZCwgZnJhbWUpOworICAgICAgICBp ZiAocmV0IDwgMCkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICByZXR1cm4g ZmZfZmlsdGVyX2ZyYW1lKGF2Y3R4LT5vdXRwdXRzWzBdLCBmcmFtZSk7CitmYWlsOgorICAgIGF2 X2ZyYW1lX2ZyZWUoJmZyYW1lKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgYXZfY29s ZCBpbnQgY29uZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCit7CisgICAgY29uc3Qg QVZQaXhGbXREZXNjcmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChvdXRsaW5rLT5m b3JtYXQpOworICAgIEFWRmlsdGVyQ29udGV4dCAqYXZjdHggPSBvdXRsaW5rLT5zcmM7CisgICAg QVZGaWx0ZXJMaW5rICppbmxpbmsgPSBhdmN0eC0+aW5wdXRzWzBdOworICAgIEJhY2tncm91bmRr ZXlDb250ZXh0ICpzID0gYXZjdHgtPnByaXY7CisgICAgaW50IGRlcHRoOworCisgICAgcy0+bmJf dGhyZWFkcyA9IGZmX2ZpbHRlcl9nZXRfbmJfdGhyZWFkcyhhdmN0eCk7CisgICAgZGVwdGggPSBk ZXNjLT5jb21wWzBdLmRlcHRoOworICAgIHMtPmRvX3NsaWNlID0gZGVwdGggPD0gOCA/IGRvX2Jh Y2tncm91bmRrZXlfc2xpY2UgOiBkb19iYWNrZ3JvdW5ka2V5MTZfc2xpY2U7CisgICAgcy0+bWF4 ID0gKDEgPDwgZGVwdGgpIC0gMTsKKyAgICBzLT5oc3ViX2xvZzIgPSBkZXNjLT5sb2cyX2Nocm9t YV93OworICAgIHMtPnZzdWJfbG9nMiA9IGRlc2MtPmxvZzJfY2hyb21hX2g7CisgICAgcy0+bWF4 X3N1bSAgPSAoaW50NjRfdCkoaW5saW5rLT53KSAqIGlubGluay0+aCAqIHMtPm1heDsKKyAgICBz LT5tYXhfc3VtICs9IDJMTCAqIChpbmxpbmstPncgPj4gcy0+aHN1Yl9sb2cyKSAqIChpbmxpbmst PmggPj4gcy0+dnN1Yl9sb2cyKSAqIHMtPm1heDsKKworICAgIHMtPnN1bXMgPSBhdl9jYWxsb2Mo cy0+bmJfdGhyZWFkcywgc2l6ZW9mKCpzLT5zdW1zKSk7CisgICAgaWYgKCFzLT5zdW1zKQorICAg ICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBhdl9jb2xkIHZvaWQgdW5pbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQoreworICAgIEJhY2tn cm91bmRrZXlDb250ZXh0ICpzID0gY3R4LT5wcml2OworCisgICAgYXZfZnJhbWVfZnJlZSgmcy0+ YmFja2dyb3VuZCk7CisgICAgYXZfZnJlZXAoJnMtPnN1bXMpOworfQorCitzdGF0aWMgY29uc3Qg QVZGaWx0ZXJQYWQgYmFja2dyb3VuZGtleV9pbnB1dHNbXSA9IHsKKyAgICB7CisgICAgICAgIC5u YW1lICAgICAgICAgPSAiZGVmYXVsdCIsCisgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1FRElB X1RZUEVfVklERU8sCisgICAgICAgIC5mbGFncyAgICAgICAgPSBBVkZJTFRFUlBBRF9GTEFHX05F RURTX1dSSVRBQkxFLAorICAgICAgICAuZmlsdGVyX2ZyYW1lID0gZmlsdGVyX2ZyYW1lLAorICAg IH0sCit9OworCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgYmFja2dyb3VuZGtleV9vdXRwdXRz W10gPSB7CisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0gImRlZmF1bHQiLAorICAgICAg ICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuY29uZmlnX3By b3BzID0gY29uZmlnX291dHB1dCwKKyAgICB9LAorfTsKKworI2RlZmluZSBPRkZTRVQoeCkgb2Zm c2V0b2YoQmFja2dyb3VuZGtleUNvbnRleHQsIHgpCisjZGVmaW5lIEZMQUdTIEFWX09QVF9GTEFH X0ZJTFRFUklOR19QQVJBTXxBVl9PUFRfRkxBR19WSURFT19QQVJBTXxBVl9PUFRfRkxBR19SVU5U SU1FX1BBUkFNCisKK3N0YXRpYyBjb25zdCBBVk9wdGlvbiBiYWNrZ3JvdW5ka2V5X29wdGlvbnNb XSA9IHsKKyAgICB7ICJ0aHJlc2hvbGQiLCAgInNldCB0aGUgc2NlbmUgY2hhbmdlIHRocmVzaG9s ZCIsIE9GRlNFVCh0aHJlc2hvbGQpLCAgQVZfT1BUX1RZUEVfRkxPQVQsIHsgLmRibCA9IDAuMDh9 LCAwLjAsIDEuMCwgRkxBR1MgfSwKKyAgICB7ICJzaW1pbGFyaXR5IiwgInNldCB0aGUgc2ltaWxh cml0eSIsICAgICAgICAgICAgIE9GRlNFVChzaW1pbGFyaXR5KSwgQVZfT1BUX1RZUEVfRkxPQVQs IHsgLmRibCA9IDAuMSB9LCAwLjAsIDEuMCwgRkxBR1MgfSwKKyAgICB7ICJibGVuZCIsICAgICAg InNldCB0aGUgYmxlbmQgdmFsdWUiLCAgICAgICAgICAgIE9GRlNFVChibGVuZCksICAgICAgQVZf T1BUX1RZUEVfRkxPQVQsIHsgLmRibCA9IDAuMCB9LCAwLjAsIDEuMCwgRkxBR1MgfSwKKyAgICB7 IE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IGVudW0gQVZQaXhlbEZvcm1hdCBiYWNrZ3JvdW5k a2V5X2ZtdHNbXSA9IHsKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjBQLAorICAgIEFWX1BJWF9GTVRf WVVWQTQyMlAsCisgICAgQVZfUElYX0ZNVF9ZVVZBNDQ0UCwKKyAgICBBVl9QSVhfRk1UX1lVVkE0 MjBQOSwgIEFWX1BJWF9GTVRfWVVWQTQyMlA5LCAgQVZfUElYX0ZNVF9ZVVZBNDQ0UDksCisgICAg QVZfUElYX0ZNVF9ZVVZBNDIwUDEwLCBBVl9QSVhfRk1UX1lVVkE0MjJQMTAsIEFWX1BJWF9GTVRf WVVWQTQ0NFAxMCwKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjJQMTIsIEFWX1BJWF9GTVRfWVVWQTQ0 NFAxMiwKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjBQMTYsIEFWX1BJWF9GTVRfWVVWQTQyMlAxNiwg QVZfUElYX0ZNVF9ZVVZBNDQ0UDE2LAorICAgIEFWX1BJWF9GTVRfR0JSQVAsCisgICAgQVZfUElY X0ZNVF9HQlJBUDEwLCBBVl9QSVhfRk1UX0dCUkFQMTIsIEFWX1BJWF9GTVRfR0JSQVAxNiwKKyAg ICBBVl9QSVhfRk1UX05PTkUKK307CisKK0FWRklMVEVSX0RFRklORV9DTEFTUyhiYWNrZ3JvdW5k a2V5KTsKKworY29uc3QgQVZGaWx0ZXIgZmZfdmZfYmFja2dyb3VuZGtleSA9IHsKKyAgICAubmFt ZSAgICAgICAgICAgID0gImJhY2tncm91bmRrZXkiLAorICAgIC5kZXNjcmlwdGlvbiAgICAgPSBO VUxMX0lGX0NPTkZJR19TTUFMTCgiVHVybnMgYSBzdGF0aWMgYmFja2dyb3VuZCBpbnRvIHRyYW5z cGFyZW5jeS4iKSwKKyAgICAucHJpdl9zaXplICAgICAgID0gc2l6ZW9mKEJhY2tncm91bmRrZXlD b250ZXh0KSwKKyAgICAucHJpdl9jbGFzcyAgICAgID0gJmJhY2tncm91bmRrZXlfY2xhc3MsCisg ICAgLnVuaW5pdCAgICAgICAgICA9IHVuaW5pdCwKKyAgICBGSUxURVJfSU5QVVRTKGJhY2tncm91 bmRrZXlfaW5wdXRzKSwKKyAgICBGSUxURVJfT1VUUFVUUyhiYWNrZ3JvdW5ka2V5X291dHB1dHMp LAorICAgIEZJTFRFUl9QSVhGTVRTX0FSUkFZKGJhY2tncm91bmRrZXlfZm10cyksCisgICAgLmZs YWdzICAgICAgICAgICA9IEFWRklMVEVSX0ZMQUdfU1VQUE9SVF9USU1FTElORV9HRU5FUklDIHwg QVZGSUxURVJfRkxBR19TTElDRV9USFJFQURTLAorICAgIC5wcm9jZXNzX2NvbW1hbmQgPSBmZl9m aWx0ZXJfcHJvY2Vzc19jb21tYW5kLAorfTsKLS0gCjIuMzcuMgoK --0000000000002dab3405ecaa29a3 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". --0000000000002dab3405ecaa29a3--