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 594884397A for ; Wed, 2 Nov 2022 16:22:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A24EF68BDB2; Wed, 2 Nov 2022 18:22:49 +0200 (EET) Received: from mail-vk1-f170.google.com (mail-vk1-f170.google.com [209.85.221.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 47B5B68BD8E for ; Wed, 2 Nov 2022 18:22:43 +0200 (EET) Received: by mail-vk1-f170.google.com with SMTP id v81so9217532vkv.5 for ; Wed, 02 Nov 2022 09:22:43 -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=SU0b1snoG+dYy2WJPt6izmyAuGzpZWC+A+++fYA+HoE=; b=BBwnryGCbWmy2piEZv9G/miIxICDmAuvtaJVOrQ7n6Y8A3Y+Al0mC8tLgwdPxAhjk9 eeM3myrQC8wSyi+GtLkJEgRU/TBum714DtBNJsQXsIgZ/zg5jsvtljMfyUuap8m2meBb nf72FhDocOrqIe4+/4pqpr62owHwEVe7NJNosrAPK/VoYrJiL0ByGgY3adKZx6zO8MFu 7WDYGb1s3zb4Q1NJuDk7XLD9VZTtAvLtI6GUTHdje9RWRlLICxMQ0w1ZPIkpgl9pCngI 5nlwuO5iMOL2aNK5xWmAKXilFIzxsIkeaz4xBDnUpSRaCpLbJLQUT7tfdhXDQfzI+SKo Rz/w== 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=SU0b1snoG+dYy2WJPt6izmyAuGzpZWC+A+++fYA+HoE=; b=SFbZ1Z/ckH8bSixlD/10pCJxDOKyBPim+cfWlq/arGq6gdlg1OOXjh8IGXNTjwqQMr AFD3eJYR4+RRy9216tWMVjJIDDjrxGW3EhEZtVJr1izsG0shPbq2yYSvrLL6Ap0A0wVO 4dqFQf8zymslSRemAcSpi0ohdrlk03ATtl/hjW5lt00TzIfi8LXvZvsyDex8/OJZoqC4 CqivSoS0tbtDVhl0O/ObKKAuh2VyPXlO6ztIBdMUeI59luEyxRO1OBH5Be86mq3q3g9X VIHMv7wSo8lW4Pq6nd8CAKyGRl4iHTIhz8UpuY0CGctfUqjIdfcrC0GMziI7MRGhORWX sEdg== X-Gm-Message-State: ACrzQf2Wokxxsruw3cnCeHKNX3vMQEjVsKBozlhJCgRKthfUGrVg0+58 zGuyoOHTBdUG7l8JwC/BoD0Zbv92Ugj+3w8y570KkCuu X-Google-Smtp-Source: AMsMyM5VeD4UkuStWeVrt93sK1NVRFheGDTJhaw8U+R/RXqt2hmszIbpC4uocZk6WgpZdlVxGkUgVfZ+kJZlHhLU5U4= X-Received: by 2002:a1f:2c51:0:b0:3b6:cf06:18cf with SMTP id s78-20020a1f2c51000000b003b6cf0618cfmr12302445vks.17.1667406161535; Wed, 02 Nov 2022 09:22:41 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:612c:612:b0:314:ac6a:1eb7 with HTTP; Wed, 2 Nov 2022 09:22:39 -0700 (PDT) In-Reply-To: References: From: Paul B Mahol Date: Wed, 2 Nov 2022 17:22:39 +0100 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000f480b705ec7f3f3a" 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: --000000000000f480b705ec7f3f3a Content-Type: text/plain; charset="UTF-8" On 10/30/22, Paul B Mahol wrote: > Patch attached. > Improved patch attached. --000000000000f480b705ec7f3f3a 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 RnJvbSA2Zjk4NzNjYTgxNTU3ZmE3N2Q3YWY5NTdkZDc2OTRkNWNjNmU4MDE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjggT2N0IDIwMjIgMjI6MDI6MjkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmZpbHRl cjogYWRkIGJhY2tncm91bmRrZXkgdmlkZW8gZmlsdGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIg TWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgICAg ICAgIHwgIDE5ICsrKwogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgICAgICAgIHwgICAxICsKIGxp YmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci92Zl9iYWNr Z3JvdW5ka2V5LmMgfCAyNTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZp bGVzIGNoYW5nZWQsIDI3MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZm aWx0ZXIvdmZfYmFja2dyb3VuZGtleS5jCgpkaWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBi L2RvYy9maWx0ZXJzLnRleGkKaW5kZXggYmNkMTljZjkzMS4uNmU5NWMzYTkwOCAxMDA2NDQKLS0t 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 ZGtleS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjJjMmRhNjBiMzkK LS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRlci92Zl9iYWNrZ3JvdW5ka2V5LmMKQEAgLTAs MCArMSwyNTEgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2lu Y2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIK KyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCisjaW5jbHVkZSAiYXZmaWx0ZXIu aCIKKyNpbmNsdWRlICJmb3JtYXRzLmgiCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNsdWRl ICJ2aWRlby5oIgorCit0eXBlZGVmIHN0cnVjdCBCYWNrZ3JvdW5ka2V5Q29udGV4dCB7CisgICAg Y29uc3QgQVZDbGFzcyAqY2xhc3M7CisKKyAgICBmbG9hdCB0aHJlc2hvbGQ7CisgICAgZmxvYXQg c2ltaWxhcml0eTsKKyAgICBmbG9hdCBibGVuZDsKKyAgICBpbnQgbWF4OworCisgICAgaW50IG5i X3RocmVhZHM7CisgICAgaW50IGhzdWJfbG9nMjsKKyAgICBpbnQgdnN1Yl9sb2cyOworCisgICAg aW50NjRfdCBtYXhfc3VtOworICAgIGludDY0X3QgKnN1bXM7CisKKyAgICBBVkZyYW1lICpiYWNr Z3JvdW5kOworCisgICAgaW50ICgqZG9fc2xpY2UpKEFWRmlsdGVyQ29udGV4dCAqYXZjdHgsIHZv aWQgKmFyZywKKyAgICAgICAgICAgICAgICAgICAgaW50IGpvYm5yLCBpbnQgbmJfam9icyk7Cit9 IEJhY2tncm91bmRrZXlDb250ZXh0OworCitzdGF0aWMgaW50IGRvX2JhY2tncm91bmRrZXlfc2xp Y2UoQVZGaWx0ZXJDb250ZXh0ICphdmN0eCwgdm9pZCAqYXJnLCBpbnQgam9ibnIsIGludCBuYl9q b2JzKQoreworICAgIEJhY2tncm91bmRrZXlDb250ZXh0ICpzID0gYXZjdHgtPnByaXY7CisgICAg QVZGcmFtZSAqZnJhbWUgPSBhcmc7CisgICAgY29uc3QgaW50IHNsaWNlX3N0YXJ0ID0gKGZyYW1l LT5oZWlnaHQgKiBqb2JucikgLyBuYl9qb2JzOworICAgIGNvbnN0IGludCBzbGljZV9lbmQgPSAo ZnJhbWUtPmhlaWdodCAqIChqb2JuciArIDEpKSAvIG5iX2pvYnM7CisgICAgY29uc3QgaW50IG1p bl9kaWZmID0gKDI1NSArIDI1NSArIDI1NSkgKiBzLT5zaW1pbGFyaXR5OworICAgIGNvbnN0IGZs b2F0IGJsZW5kID0gcy0+YmxlbmQ7CisgICAgY29uc3QgaW50IGhzdWIgPSBzLT5oc3ViX2xvZzI7 CisgICAgY29uc3QgaW50IHZzdWIgPSBzLT52c3ViX2xvZzI7CisgICAgaW50NjRfdCBzdW0gPSAw OworCisgICAgZm9yIChpbnQgeSA9IHNsaWNlX3N0YXJ0OyB5IDwgc2xpY2VfZW5kOyB5KyspIHsK KyAgICAgICAgY29uc3QgdWludDhfdCAqc3JjeSA9IGZyYW1lLT5kYXRhWzBdICsgZnJhbWUtPmxp bmVzaXplWzBdICogeTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqc3JjdSA9IGZyYW1lLT5kYXRh WzFdICsgZnJhbWUtPmxpbmVzaXplWzFdICogKHkgPj4gdnN1Yik7CisgICAgICAgIGNvbnN0IHVp bnQ4X3QgKnNyY3YgPSBmcmFtZS0+ZGF0YVsyXSArIGZyYW1lLT5saW5lc2l6ZVsyXSAqICh5ID4+ IHZzdWIpOworICAgICAgICBjb25zdCB1aW50OF90ICpic3JjeSA9IHMtPmJhY2tncm91bmQtPmRh dGFbMF0gKyBzLT5iYWNrZ3JvdW5kLT5saW5lc2l6ZVswXSAqIHk7CisgICAgICAgIGNvbnN0IHVp bnQ4X3QgKmJzcmN1ID0gcy0+YmFja2dyb3VuZC0+ZGF0YVsxXSArIHMtPmJhY2tncm91bmQtPmxp bmVzaXplWzFdICogKHkgPj4gdnN1Yik7CisgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJzcmN2ID0g cy0+YmFja2dyb3VuZC0+ZGF0YVsyXSArIHMtPmJhY2tncm91bmQtPmxpbmVzaXplWzJdICogKHkg Pj4gdnN1Yik7CisgICAgICAgIHVpbnQ4X3QgKmRzdCA9IGZyYW1lLT5kYXRhWzNdICsgZnJhbWUt PmxpbmVzaXplWzNdICogeTsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBmcmFtZS0+d2lk dGg7IHgrKykgeworICAgICAgICAgICAgY29uc3QgaW50IHh4ID0geCA+PiBoc3ViOworICAgICAg ICAgICAgY29uc3QgaW50IGRpZmYgPSBGRkFCUyhzcmN5W3hdICAtIGJzcmN5W3hdKSAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGRkFCUyhzcmN1W3h4XSAtIGJzcmN1W3h4XSkgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRkFCUyhzcmN2W3h4XSAtIGJzcmN2W3h4XSk7 CisgICAgICAgICAgICBpbnQgQTsKKworICAgICAgICAgICAgc3VtICs9IGRpZmY7CisgICAgICAg ICAgICBpZiAoYmxlbmQgPiAwLmYpIHsKKyAgICAgICAgICAgICAgICBBID0gMjU1IC0gYXZfY2xp cGYoKG1pbl9kaWZmIC0gZGlmZikgLyBibGVuZCwgMC5mLCAyNTUuZik7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgIEEgPSAoZGlmZiA+IG1pbl9kaWZmKSA/IDI1NSA6IDA7 CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRzdFt4XSA9IEE7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBzLT5zdW1zW2pvYm5yXSA9IHN1bTsKKworICAgIHJldHVybiAwOworfQorCitz dGF0aWMgaW50IGRvX2JhY2tncm91bmRrZXkxNl9zbGljZShBVkZpbHRlckNvbnRleHQgKmF2Y3R4 LCB2b2lkICphcmcsIGludCBqb2JuciwgaW50IG5iX2pvYnMpCit7CisgICAgQmFja2dyb3VuZGtl eUNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdjsKKyAgICBBVkZyYW1lICpmcmFtZSA9IGFyZzsKKyAg ICBjb25zdCBpbnQgc2xpY2Vfc3RhcnQgPSAoZnJhbWUtPmhlaWdodCAqIGpvYm5yKSAvIG5iX2pv YnM7CisgICAgY29uc3QgaW50IHNsaWNlX2VuZCA9IChmcmFtZS0+aGVpZ2h0ICogKGpvYm5yICsg MSkpIC8gbmJfam9iczsKKyAgICBjb25zdCBpbnQgaHN1YiA9IHMtPmhzdWJfbG9nMjsKKyAgICBj b25zdCBpbnQgdnN1YiA9IHMtPnZzdWJfbG9nMjsKKyAgICBjb25zdCBpbnQgbWF4ID0gcy0+bWF4 OworICAgIGNvbnN0IGludCBtaW5fZGlmZiA9IHMtPnNpbWlsYXJpdHkgKiAocy0+bWF4ICsgcy0+ bWF4ICsgcy0+bWF4KTsKKyAgICBjb25zdCBmbG9hdCBibGVuZCA9IHMtPmJsZW5kOworICAgIGlu dDY0X3Qgc3VtID0gMDsKKworICAgIGZvciAoaW50IHkgPSBzbGljZV9zdGFydDsgeSA8IHNsaWNl X2VuZDsgeSsrKSB7CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpzcmN5ID0gKGNvbnN0IHVpbnQx Nl90ICopKGZyYW1lLT5kYXRhWzBdICsgZnJhbWUtPmxpbmVzaXplWzBdICogIHkpOworICAgICAg ICBjb25zdCB1aW50MTZfdCAqc3JjdSA9IChjb25zdCB1aW50MTZfdCAqKShmcmFtZS0+ZGF0YVsx XSArIGZyYW1lLT5saW5lc2l6ZVsxXSAqICh5ID4+IHZzdWIpKTsKKyAgICAgICAgY29uc3QgdWlu dDE2X3QgKnNyY3YgPSAoY29uc3QgdWludDE2X3QgKikoZnJhbWUtPmRhdGFbMl0gKyBmcmFtZS0+ bGluZXNpemVbMl0gKiAoeSA+PiB2c3ViKSk7CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpic3Jj eSA9IChjb25zdCB1aW50MTZfdCAqKShzLT5iYWNrZ3JvdW5kLT5kYXRhWzBdICsgcy0+YmFja2dy b3VuZC0+bGluZXNpemVbMF0gKiAgeSk7CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpic3JjdSA9 IChjb25zdCB1aW50MTZfdCAqKShzLT5iYWNrZ3JvdW5kLT5kYXRhWzFdICsgcy0+YmFja2dyb3Vu ZC0+bGluZXNpemVbMV0gKiAoeSA+PiB2c3ViKSk7CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpi c3JjdiA9IChjb25zdCB1aW50MTZfdCAqKShzLT5iYWNrZ3JvdW5kLT5kYXRhWzJdICsgcy0+YmFj a2dyb3VuZC0+bGluZXNpemVbMl0gKiAoeSA+PiB2c3ViKSk7CisgICAgICAgIHVpbnQxNl90ICpk c3QgPSAodWludDE2X3QgKikoZnJhbWUtPmRhdGFbM10gKyBmcmFtZS0+bGluZXNpemVbM10gKiB5 KTsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBmcmFtZS0+d2lkdGg7IHgrKykgeworICAg ICAgICAgICAgY29uc3QgaW50IHh4ID0geCA+PiBoc3ViOworICAgICAgICAgICAgY29uc3QgaW50 IGRpZmYgPSBGRkFCUyhzcmN5W3hdICAtIGJzcmN5W3hdICkgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGRkFCUyhzcmN1W3h4XSAtIGJzcmN1W3h4XSkgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGRkFCUyhzcmN2W3h4XSAtIGJzcmN2W3h4XSk7CisgICAgICAgICAgICBp bnQgQTsKKworICAgICAgICAgICAgc3VtICs9IGRpZmY7CisgICAgICAgICAgICBpZiAoYmxlbmQg PiAwLmYpIHsKKyAgICAgICAgICAgICAgICBBID0gbWF4IC0gYXZfY2xpcGYoKG1pbl9kaWZmIC0g ZGlmZikgLyBibGVuZCwgMC5mLCBtYXgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICBBID0gKGRpZmYgPiBtaW5fZGlmZikgPyBtYXggOiAwOworICAgICAgICAgICAgfQor CisgICAgICAgICAgICBkc3RbeF0gPSBBOworICAgICAgICB9CisgICAgfQorCisgICAgcy0+c3Vt c1tqb2Jucl0gPSBzdW07CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBmaWx0ZXJf ZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkKK3sKKyAgICBBVkZpbHRl ckNvbnRleHQgKmF2Y3R4ID0gbGluay0+ZHN0OworICAgIEJhY2tncm91bmRrZXlDb250ZXh0ICpz ID0gYXZjdHgtPnByaXY7CisgICAgaW50NjRfdCBzdW0gPSAwOworICAgIGludCByZXQ7CisKKyAg ICBpZiAoIXMtPmJhY2tncm91bmQpIHsKKyAgICAgICAgcy0+YmFja2dyb3VuZCA9IGF2X2ZyYW1l X2Nsb25lKGZyYW1lKTsKKyAgICAgICAgaWYgKCFzLT5iYWNrZ3JvdW5kKQorICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgYXZfZnJhbWVfbWFrZV93cml0YWJsZShz LT5iYWNrZ3JvdW5kKTsKKyAgICB9CisKKyAgICBpZiAocmV0ID0gZmZfZmlsdGVyX2V4ZWN1dGUo YXZjdHgsIHMtPmRvX3NsaWNlLCBmcmFtZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRkZNSU4oZnJhbWUtPmhlaWdodCwgcy0+bmJfdGhyZWFkcykpKQorICAgICAgICBy ZXR1cm4gcmV0OworCisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBzLT5uYl90aHJlYWRzOyBuKysp CisgICAgICAgIHN1bSArPSBzLT5zdW1zW25dOworICAgIGlmIChzLT5tYXhfc3VtICogcy0+dGhy ZXNob2xkIDwgc3VtKSB7CisgICAgICAgIGF2X2ZyYW1lX2ZyZWUoJnMtPmJhY2tncm91bmQpOwor ICAgICAgICBzLT5iYWNrZ3JvdW5kID0gYXZfZnJhbWVfY2xvbmUoZnJhbWUpOworICAgICAgICBp ZiAoIXMtPmJhY2tncm91bmQpCisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwor ICAgICAgICBhdl9mcmFtZV9tYWtlX3dyaXRhYmxlKHMtPmJhY2tncm91bmQpOworICAgIH0KKwor ICAgIHJldHVybiBmZl9maWx0ZXJfZnJhbWUoYXZjdHgtPm91dHB1dHNbMF0sIGZyYW1lKTsKK30K Kworc3RhdGljIGF2X2NvbGQgaW50IGNvbmZpZ19vdXRwdXQoQVZGaWx0ZXJMaW5rICpvdXRsaW5r KQoreworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVz Y19nZXQob3V0bGluay0+Zm9ybWF0KTsKKyAgICBBVkZpbHRlckNvbnRleHQgKmF2Y3R4ID0gb3V0 bGluay0+c3JjOworICAgIEFWRmlsdGVyTGluayAqaW5saW5rID0gYXZjdHgtPmlucHV0c1swXTsK KyAgICBCYWNrZ3JvdW5ka2V5Q29udGV4dCAqcyA9IGF2Y3R4LT5wcml2OworICAgIGludCBkZXB0 aDsKKworICAgIHMtPm5iX3RocmVhZHMgPSBmZl9maWx0ZXJfZ2V0X25iX3RocmVhZHMoYXZjdHgp OworICAgIGRlcHRoID0gZGVzYy0+Y29tcFswXS5kZXB0aDsKKyAgICBzLT5kb19zbGljZSA9IGRl cHRoIDw9IDggPyBkb19iYWNrZ3JvdW5ka2V5X3NsaWNlIDogZG9fYmFja2dyb3VuZGtleTE2X3Ns aWNlOworICAgIHMtPm1heCA9ICgxIDw8IGRlcHRoKSAtIDE7CisgICAgcy0+aHN1Yl9sb2cyID0g ZGVzYy0+bG9nMl9jaHJvbWFfdzsKKyAgICBzLT52c3ViX2xvZzIgPSBkZXNjLT5sb2cyX2Nocm9t YV9oOworICAgIHMtPm1heF9zdW0gID0gKGludDY0X3QpKGlubGluay0+dykgKiBpbmxpbmstPmgg KiBzLT5tYXg7CisgICAgcy0+bWF4X3N1bSArPSAyTEwgKiAoaW5saW5rLT53ID4+IHMtPmhzdWJf bG9nMikgKiAoaW5saW5rLT5oID4+IHMtPnZzdWJfbG9nMikgKiBzLT5tYXg7CisKKyAgICBzLT5z dW1zID0gYXZfY2FsbG9jKHMtPm5iX3RocmVhZHMsIHNpemVvZigqcy0+c3VtcykpOworICAgIGlm ICghcy0+c3VtcykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgYXZfY29sZCB2b2lkIHVuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0 eCkKK3sKKyAgICBCYWNrZ3JvdW5ka2V5Q29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIGF2 X2ZyYW1lX2ZyZWUoJnMtPmJhY2tncm91bmQpOworICAgIGF2X2ZyZWVwKCZzLT5zdW1zKTsKK30K Kworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGJhY2tncm91bmRrZXlfaW5wdXRzW10gPSB7Cisg ICAgeworICAgICAgICAubmFtZSAgICAgICAgID0gImRlZmF1bHQiLAorICAgICAgICAudHlwZSAg ICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuZmxhZ3MgICAgICAgID0gQVZG SUxURVJQQURfRkxBR19ORUVEU19XUklUQUJMRSwKKyAgICAgICAgLmZpbHRlcl9mcmFtZSA9IGZp bHRlcl9mcmFtZSwKKyAgICB9LAorfTsKKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGJhY2tn cm91bmRrZXlfb3V0cHV0c1tdID0geworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJk ZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAg ICAgICAgLmNvbmZpZ19wcm9wcyA9IGNvbmZpZ19vdXRwdXQsCisgICAgfSwKK307CisKKyNkZWZp bmUgT0ZGU0VUKHgpIG9mZnNldG9mKEJhY2tncm91bmRrZXlDb250ZXh0LCB4KQorI2RlZmluZSBG TEFHUyBBVl9PUFRfRkxBR19GSUxURVJJTkdfUEFSQU18QVZfT1BUX0ZMQUdfVklERU9fUEFSQU18 QVZfT1BUX0ZMQUdfUlVOVElNRV9QQVJBTQorCitzdGF0aWMgY29uc3QgQVZPcHRpb24gYmFja2dy b3VuZGtleV9vcHRpb25zW10gPSB7CisgICAgeyAidGhyZXNob2xkIiwgICJzZXQgdGhlIHNjZW5l IGNoYW5nZSB0aHJlc2hvbGQiLCBPRkZTRVQodGhyZXNob2xkKSwgIEFWX09QVF9UWVBFX0ZMT0FU LCB7IC5kYmwgPSAwLjA1fSwgMC4wLCAxLjAsIEZMQUdTIH0sCisgICAgeyAic2ltaWxhcml0eSIs ICJzZXQgdGhlIHNpbWlsYXJpdHkiLCAgICAgICAgICAgICBPRkZTRVQoc2ltaWxhcml0eSksIEFW X09QVF9UWVBFX0ZMT0FULCB7IC5kYmwgPSAwLjEgfSwgMC4wLCAxLjAsIEZMQUdTIH0sCisgICAg eyAiYmxlbmQiLCAgICAgICJzZXQgdGhlIGJsZW5kIHZhbHVlIiwgICAgICAgICAgICBPRkZTRVQo YmxlbmQpLCAgICAgIEFWX09QVF9UWVBFX0ZMT0FULCB7IC5kYmwgPSAwLjAgfSwgMC4wLCAxLjAs IEZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK3N0YXRpYyBjb25zdCBlbnVtIEFWUGl4ZWxG b3JtYXQgYmFja2dyb3VuZGtleV9mbXRzW10gPSB7CisgICAgQVZfUElYX0ZNVF9ZVVZBNDIwUCwK KyAgICBBVl9QSVhfRk1UX1lVVkE0MjJQLAorICAgIEFWX1BJWF9GTVRfWVVWQTQ0NFAsCisgICAg QVZfUElYX0ZNVF9ZVVZBNDIwUDksICBBVl9QSVhfRk1UX1lVVkE0MjJQOSwgIEFWX1BJWF9GTVRf WVVWQTQ0NFA5LAorICAgIEFWX1BJWF9GTVRfWVVWQTQyMFAxMCwgQVZfUElYX0ZNVF9ZVVZBNDIy UDEwLCBBVl9QSVhfRk1UX1lVVkE0NDRQMTAsCisgICAgQVZfUElYX0ZNVF9ZVVZBNDIyUDEyLCBB Vl9QSVhfRk1UX1lVVkE0NDRQMTIsCisgICAgQVZfUElYX0ZNVF9ZVVZBNDIwUDE2LCBBVl9QSVhf Rk1UX1lVVkE0MjJQMTYsIEFWX1BJWF9GTVRfWVVWQTQ0NFAxNiwKKyAgICBBVl9QSVhfRk1UX0dC UkFQLAorICAgIEFWX1BJWF9GTVRfR0JSQVAxMCwgQVZfUElYX0ZNVF9HQlJBUDEyLCBBVl9QSVhf Rk1UX0dCUkFQMTYsCisgICAgQVZfUElYX0ZNVF9OT05FCit9OworCitBVkZJTFRFUl9ERUZJTkVf Q0xBU1MoYmFja2dyb3VuZGtleSk7CisKK2NvbnN0IEFWRmlsdGVyIGZmX3ZmX2JhY2tncm91bmRr ZXkgPSB7CisgICAgLm5hbWUgICAgICAgICAgICA9ICJiYWNrZ3JvdW5ka2V5IiwKKyAgICAuZGVz Y3JpcHRpb24gICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIlR1cm5zIGEgc3RhdGljIGJhY2tn cm91bmQgaW50byB0cmFuc3BhcmVuY3kuIiksCisgICAgLnByaXZfc2l6ZSAgICAgICA9IHNpemVv ZihCYWNrZ3JvdW5ka2V5Q29udGV4dCksCisgICAgLnByaXZfY2xhc3MgICAgICA9ICZiYWNrZ3Jv dW5ka2V5X2NsYXNzLAorICAgIC51bmluaXQgICAgICAgICAgPSB1bmluaXQsCisgICAgRklMVEVS X0lOUFVUUyhiYWNrZ3JvdW5ka2V5X2lucHV0cyksCisgICAgRklMVEVSX09VVFBVVFMoYmFja2dy b3VuZGtleV9vdXRwdXRzKSwKKyAgICBGSUxURVJfUElYRk1UU19BUlJBWShiYWNrZ3JvdW5ka2V5 X2ZtdHMpLAorICAgIC5mbGFncyAgICAgICAgICAgPSBBVkZJTFRFUl9GTEFHX1NVUFBPUlRfVElN RUxJTkVfR0VORVJJQyB8IEFWRklMVEVSX0ZMQUdfU0xJQ0VfVEhSRUFEUywKKyAgICAucHJvY2Vz c19jb21tYW5kID0gZmZfZmlsdGVyX3Byb2Nlc3NfY29tbWFuZCwKK307Ci0tIAoyLjM3LjIKCg== --000000000000f480b705ec7f3f3a 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". --000000000000f480b705ec7f3f3a--