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 AE412432F0 for ; Sun, 30 Oct 2022 14:35:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2DFEB68BD17; Sun, 30 Oct 2022 16:35:05 +0200 (EET) Received: from mail-ua1-f41.google.com (mail-ua1-f41.google.com [209.85.222.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF92568B8C8 for ; Sun, 30 Oct 2022 16:34:58 +0200 (EET) Received: by mail-ua1-f41.google.com with SMTP id ca15so4125038uab.0 for ; Sun, 30 Oct 2022 07:34:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=dItnY/obuMogiy3VzsN5ulytvdLEtQJ4cyiBqoxK+r0=; b=Qivr/dMTo5j2AxD4RxtG1Oco7xjEaq7hi7Do7s9yW7L3/aKisQopZc5zeR6YVsKGcp DRMf0GOeCY0hqfDM8EMVZqASq2QvgZnhHBUjIw8EQ/3hjTfcrHjHU6Phj4ko0pvvutKY gQ4PUNGAw27ARqymrE/qzkyhEPDUcp/hQAvzEn8ajm0YWofgUUA7fxZPglFnliF1SA0f JbjuOrG/gAgcuuEN1fY11hz0aQU4gwYPR6q42NkXluwOfYxowIb8x4L8O6v7Ch5BNHx7 r1L/0UG5vu/ec6aCiDRexFHEWlTZlQKrPx/mIxDIhh7thMCyfR2x7wxjXgh/qJeCTNhd 9f4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=dItnY/obuMogiy3VzsN5ulytvdLEtQJ4cyiBqoxK+r0=; b=Xa3IgXj6GzCRhPgZ7V+DQoKDmphCttGYBOg1WcKActIpdhkFPeuRRP3QnRSRkZM18F pw8juALNuNCUvopYM+BclaaxcZ9vw2EvVVXWOQkjNtvd/3L1eDAqxauRn4RjAjVzJ+3K Ejty5GozX798yo7oLaAYHkU6tG1lkPsr9CnHoWyPhP+UX9VbZehO1Ge7TdL+VQTqQJM9 Ous02ynUcev3PfGdRaYRJPPO9oOpqAYG4PYqSMCKlRxhRdDsdlhGHrPYzT3W5P3oSfCd yf4y497OY7UoXZ5irxABYhHtJ5gBsSylhSG2RIE4D3mpVuj5X9IjFZYh8TBVRzzG5raB XV8g== X-Gm-Message-State: ACrzQf3EsL0VONR787tpiTiiJKbj9qFstCTc7Pm3Z/CZqm12ptZ8htKU UXj/dTLX7sSfZfOPhM1qpkCIfXAq404JrzHmDlk//wAi X-Google-Smtp-Source: AMsMyM6T2fifnM3m3YE4X1cZfGUWPFtsQSBgh87l2yp8KYVbeSRBKR8+6c1WJAEyeqSWaGDNClEkKOqtPhAiPSZdmbs= X-Received: by 2002:ab0:29d8:0:b0:40a:c9:9ff7 with SMTP id i24-20020ab029d8000000b0040a00c99ff7mr1888286uaq.41.1667140497036; Sun, 30 Oct 2022 07:34:57 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:612c:612:b0:314:ac6a:1eb7 with HTTP; Sun, 30 Oct 2022 07:34:55 -0700 (PDT) From: Paul B Mahol Date: Sun, 30 Oct 2022 15:34:55 +0100 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="0000000000001dfee705ec41657f" Subject: [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: --0000000000001dfee705ec41657f Content-Type: text/plain; charset="UTF-8" Patch attached. --0000000000001dfee705ec41657f 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 RnJvbSA3MmFlYmI1ZDc5ZDYwZDI2N2RlZjUwNjA5MmUxM2IwZDM1YzRkZjNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjggT2N0IDIwMjIgMjI6MDI6MjkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmZpbHRl cjogYWRkIGJhY2tncm91bmRrZXkgdmlkZW8gZmlsdGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIg TWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgICAg ICAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAgICB8ICAgMSArCiBsaWJh dmZpbHRlci92Zl9iYWNrZ3JvdW5ka2V5LmMgfCAyMTggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZmaWx0ZXIvdmZfYmFja2dyb3VuZGtleS5jCgpkaWZmIC0tZ2l0IGEvbGli YXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRlci9NYWtlZmlsZQppbmRleCBmZjJhMDZjMjYy Li5hY2UwZTYwYmExIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQorKysgYi9saWJh dmZpbHRlci9NYWtlZmlsZQpAQCAtMTkxLDYgKzE5MSw3IEBAIE9CSlMtJChDT05GSUdfQVZHQkxV Ul9GSUxURVIpICAgICAgICAgICAgICAgICs9IHZmX2F2Z2JsdXIubwogT0JKUy0kKENPTkZJR19B VkdCTFVSX09QRU5DTF9GSUxURVIpICAgICAgICAgKz0gdmZfYXZnYmx1cl9vcGVuY2wubyBvcGVu Y2wubyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv cGVuY2wvYXZnYmx1ci5vIGJveGJsdXIubwogT0JKUy0kKENPTkZJR19BVkdCTFVSX1ZVTEtBTl9G SUxURVIpICAgICAgICAgKz0gdmZfYXZnYmx1cl92dWxrYW4ubyB2dWxrYW4ubyB2dWxrYW5fZmls dGVyLm8KK09CSlMtJChDT05GSUdfQkFDS0dST1VOREtFWV9GSUxURVIpICAgICAgICAgICs9IHZm X2JhY2tncm91bmRrZXkubwogT0JKUy0kKENPTkZJR19CQk9YX0ZJTFRFUikgICAgICAgICAgICAg ICAgICAgKz0gYmJveC5vIHZmX2Jib3gubwogT0JKUy0kKENPTkZJR19CRU5DSF9GSUxURVIpICAg ICAgICAgICAgICAgICAgKz0gZl9iZW5jaC5vCiBPQkpTLSQoQ09ORklHX0JJTEFURVJBTF9GSUxU RVIpICAgICAgICAgICAgICArPSB2Zl9iaWxhdGVyYWwubwpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0 ZXIvYWxsZmlsdGVycy5jIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCmluZGV4IDExOWRlNDBi MjUuLmUwNTk4ZTk5ODYgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYworKysg Yi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKQEAgLTE3Nyw2ICsxNzcsNyBAQCBleHRlcm4gY29u c3QgQVZGaWx0ZXIgZmZfdmZfYXRhZGVub2lzZTsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92 Zl9hdmdibHVyOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2F2Z2JsdXJfb3BlbmNsOwog ZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2F2Z2JsdXJfdnVsa2FuOworZXh0ZXJuIGNvbnN0 IEFWRmlsdGVyIGZmX3ZmX2JhY2tncm91bmRrZXk7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZf dmZfYmJveDsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9iZW5jaDsKIGV4dGVybiBjb25z dCBBVkZpbHRlciBmZl92Zl9iaWxhdGVyYWw7CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9i YWNrZ3JvdW5ka2V5LmMgYi9saWJhdmZpbHRlci92Zl9iYWNrZ3JvdW5ka2V5LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzUwMmVlNzliMgotLS0gL2Rldi9udWxsCisr KyBiL2xpYmF2ZmlsdGVyL3ZmX2JhY2tncm91bmRrZXkuYwpAQCAtMCwwICsxLDIxOCBAQAorLyoK KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAibGliYXZ1dGls L29wdC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2 dXRpbC9pbnRyZWFkd3JpdGUuaCIKKyNpbmNsdWRlICJhdmZpbHRlci5oIgorI2luY2x1ZGUgImZv cm1hdHMuaCIKKyNpbmNsdWRlICJpbnRlcm5hbC5oIgorI2luY2x1ZGUgInZpZGVvLmgiCisKK3R5 cGVkZWYgc3RydWN0IEJhY2tncm91bmRrZXlDb250ZXh0IHsKKyAgICBjb25zdCBBVkNsYXNzICpj bGFzczsKKworICAgIGZsb2F0IHNpbWlsYXJpdHk7CisgICAgZmxvYXQgYmxlbmQ7CisgICAgaW50 IG1heDsKKworICAgIGludCBoc3ViX2xvZzI7CisgICAgaW50IHZzdWJfbG9nMjsKKworICAgIEFW RnJhbWUgKmJhY2tncm91bmQ7CisKKyAgICBpbnQgKCpkb19zbGljZSkoQVZGaWx0ZXJDb250ZXh0 ICphdmN0eCwgdm9pZCAqYXJnLAorICAgICAgICAgICAgICAgICAgICBpbnQgam9ibnIsIGludCBu Yl9qb2JzKTsKK30gQmFja2dyb3VuZGtleUNvbnRleHQ7CisKK3N0YXRpYyBpbnQgZG9fYmFja2dy b3VuZGtleV9zbGljZShBVkZpbHRlckNvbnRleHQgKmF2Y3R4LCB2b2lkICphcmcsIGludCBqb2Ju ciwgaW50IG5iX2pvYnMpCit7CisgICAgQmFja2dyb3VuZGtleUNvbnRleHQgKnMgPSBhdmN0eC0+ cHJpdjsKKyAgICBBVkZyYW1lICpmcmFtZSA9IGFyZzsKKyAgICBjb25zdCBpbnQgc2xpY2Vfc3Rh cnQgPSAoZnJhbWUtPmhlaWdodCAqIGpvYm5yKSAvIG5iX2pvYnM7CisgICAgY29uc3QgaW50IHNs aWNlX2VuZCA9IChmcmFtZS0+aGVpZ2h0ICogKGpvYm5yICsgMSkpIC8gbmJfam9iczsKKyAgICBj b25zdCBpbnQgbWluX2RpZmYgPSBzLT5tYXggKiBzLT5zaW1pbGFyaXR5OworICAgIGNvbnN0IGlu dCBoc3ViID0gcy0+aHN1Yl9sb2cyOworICAgIGNvbnN0IGludCB2c3ViID0gcy0+dnN1Yl9sb2cy OworICAgIGNvbnN0IGZsb2F0IGJsZW5kID0gcy0+YmxlbmQ7CisKKyAgICBmb3IgKGludCB5ID0g c2xpY2Vfc3RhcnQ7IHkgPCBzbGljZV9lbmQ7IHkrKykgeworICAgICAgICBjb25zdCB1aW50OF90 ICpzcmN5ID0gZnJhbWUtPmRhdGFbMF0gKyBmcmFtZS0+bGluZXNpemVbMF0gKiB5OworICAgICAg ICBjb25zdCB1aW50OF90ICpzcmN1ID0gZnJhbWUtPmRhdGFbMV0gKyBmcmFtZS0+bGluZXNpemVb MV0gKiAoeSA+PiB2c3ViKTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqc3JjdiA9IGZyYW1lLT5k YXRhWzJdICsgZnJhbWUtPmxpbmVzaXplWzJdICogKHkgPj4gdnN1Yik7CisgICAgICAgIGNvbnN0 IHVpbnQ4X3QgKmJzcmN5ID0gcy0+YmFja2dyb3VuZC0+ZGF0YVswXSArIHMtPmJhY2tncm91bmQt PmxpbmVzaXplWzBdICogeTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqYnNyY3UgPSBzLT5iYWNr Z3JvdW5kLT5kYXRhWzFdICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMV0gKiAoeSA+PiB2c3Vi KTsKKyAgICAgICAgY29uc3QgdWludDhfdCAqYnNyY3YgPSBzLT5iYWNrZ3JvdW5kLT5kYXRhWzJd ICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMl0gKiAoeSA+PiB2c3ViKTsKKyAgICAgICAgdWlu dDhfdCAqZHN0ID0gZnJhbWUtPmRhdGFbM10gKyBmcmFtZS0+bGluZXNpemVbM10gKiB5OworICAg ICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGZyYW1lLT53aWR0aDsgeCsrKSB7CisgICAgICAgICAg ICBjb25zdCBpbnQgeHggPSB4ID4+IGhzdWI7CisgICAgICAgICAgICBjb25zdCBpbnQgZGlmZiA9 IEZGQUJTKHNyY3lbeF0gIC0gYnNyY3lbeF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkZBQlMoc3JjdVt4eF0gLSBic3JjdVt4eF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRkZBQlMoc3Jjdlt4eF0gLSBic3Jjdlt4eF0pOworICAgICAgICAgICAgaW50IEE7CisK KyAgICAgICAgICAgIGlmIChkaWZmID4gbWluX2RpZmYpIHsKKyAgICAgICAgICAgICAgICBBID0g MjU1OworICAgICAgICAgICAgfSBlbHNlIGlmIChibGVuZCA+IDAuZikgeworICAgICAgICAgICAg ICAgIEEgPSBGRk1JTigyNTUsIChtaW5fZGlmZiAtIGRpZmYpICogYmxlbmQgKiAyNTUpOworICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBID0gMDsKKyAgICAgICAgICAgIH0K KworICAgICAgICAgICAgZHN0W3hdID0gQTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW50IGRvX2JhY2tncm91bmRrZXkxNl9zbGljZShBVkZpbHRlckNv bnRleHQgKmF2Y3R4LCB2b2lkICphcmcsIGludCBqb2JuciwgaW50IG5iX2pvYnMpCit7CisgICAg QmFja2dyb3VuZGtleUNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdjsKKyAgICBBVkZyYW1lICpmcmFt ZSA9IGFyZzsKKyAgICBjb25zdCBpbnQgc2xpY2Vfc3RhcnQgPSAoZnJhbWUtPmhlaWdodCAqIGpv Ym5yKSAvIG5iX2pvYnM7CisgICAgY29uc3QgaW50IHNsaWNlX2VuZCA9IChmcmFtZS0+aGVpZ2h0 ICogKGpvYm5yICsgMSkpIC8gbmJfam9iczsKKyAgICBjb25zdCBpbnQgbWluX2RpZmYgPSBzLT5t YXggKiBzLT5zaW1pbGFyaXR5OworICAgIGNvbnN0IGludCBoc3ViID0gcy0+aHN1Yl9sb2cyOwor ICAgIGNvbnN0IGludCB2c3ViID0gcy0+dnN1Yl9sb2cyOworICAgIGNvbnN0IGZsb2F0IGJsZW5k ID0gcy0+YmxlbmQ7CisgICAgY29uc3QgaW50IG1heCA9IHMtPm1heDsKKworICAgIGZvciAoaW50 IHkgPSBzbGljZV9zdGFydDsgeSA8IHNsaWNlX2VuZDsgeSsrKSB7CisgICAgICAgIGNvbnN0IHVp bnQxNl90ICpzcmN5ID0gKGNvbnN0IHVpbnQxNl90ICopKGZyYW1lLT5kYXRhWzBdICsgZnJhbWUt PmxpbmVzaXplWzBdICogIHkpOworICAgICAgICBjb25zdCB1aW50MTZfdCAqc3JjdSA9IChjb25z dCB1aW50MTZfdCAqKShmcmFtZS0+ZGF0YVsxXSArIGZyYW1lLT5saW5lc2l6ZVsxXSAqICh5ID4+ IHZzdWIpKTsKKyAgICAgICAgY29uc3QgdWludDE2X3QgKnNyY3YgPSAoY29uc3QgdWludDE2X3Qg KikoZnJhbWUtPmRhdGFbMl0gKyBmcmFtZS0+bGluZXNpemVbMl0gKiAoeSA+PiB2c3ViKSk7Cisg ICAgICAgIGNvbnN0IHVpbnQxNl90ICpic3JjeSA9IChjb25zdCB1aW50MTZfdCAqKShzLT5iYWNr Z3JvdW5kLT5kYXRhWzBdICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMF0gKiAgeSk7CisgICAg ICAgIGNvbnN0IHVpbnQxNl90ICpic3JjdSA9IChjb25zdCB1aW50MTZfdCAqKShzLT5iYWNrZ3Jv dW5kLT5kYXRhWzFdICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMV0gKiAoeSA+PiB2c3ViKSk7 CisgICAgICAgIGNvbnN0IHVpbnQxNl90ICpic3JjdiA9IChjb25zdCB1aW50MTZfdCAqKShzLT5i YWNrZ3JvdW5kLT5kYXRhWzJdICsgcy0+YmFja2dyb3VuZC0+bGluZXNpemVbMl0gKiAoeSA+PiB2 c3ViKSk7CisgICAgICAgIHVpbnQxNl90ICpkc3QgPSAodWludDE2X3QgKikoZnJhbWUtPmRhdGFb M10gKyBmcmFtZS0+bGluZXNpemVbM10gKiB5KTsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHgg PCBmcmFtZS0+d2lkdGg7IHgrKykgeworICAgICAgICAgICAgY29uc3QgaW50IHh4ID0geCA+PiBo c3ViOworICAgICAgICAgICAgY29uc3QgaW50IGRpZmYgPSBGRkFCUyhzcmN5W3hdICAtIGJzcmN5 W3hdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNyY3VbeHhdIC0gYnNy Y3VbeHhdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQUJTKHNyY3ZbeHhdIC0g YnNyY3ZbeHhdKTsKKyAgICAgICAgICAgIGludCBBOworCisgICAgICAgICAgICBpZiAoZGlmZiA+ IG1pbl9kaWZmKSB7CisgICAgICAgICAgICAgICAgQSA9IG1heDsKKyAgICAgICAgICAgIH0gZWxz ZSBpZiAoYmxlbmQgPiAwLmYpIHsKKyAgICAgICAgICAgICAgICBBID0gRkZNSU4obWF4LCAobWlu X2RpZmYgLSBkaWZmKSAqIGJsZW5kICogbWF4KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg ICAgICAgICAgICAgQSA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRzdFt4XSA9 IEE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBm aWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkKK3sKKyAgICBB VkZpbHRlckNvbnRleHQgKmF2Y3R4ID0gbGluay0+ZHN0OworICAgIEJhY2tncm91bmRrZXlDb250 ZXh0ICpzID0gYXZjdHgtPnByaXY7CisgICAgaW50IHJldDsKKworICAgIGlmICghcy0+YmFja2dy b3VuZCkgeworICAgICAgICBzLT5iYWNrZ3JvdW5kID0gYXZfZnJhbWVfY2xvbmUoZnJhbWUpOwor ICAgICAgICBpZiAoIXMtPmJhY2tncm91bmQpCisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF Tk9NRU0pOworICAgICAgICBhdl9mcmFtZV9tYWtlX3dyaXRhYmxlKHMtPmJhY2tncm91bmQpOwor ICAgIH0KKworICAgIGlmIChyZXQgPSBmZl9maWx0ZXJfZXhlY3V0ZShhdmN0eCwgcy0+ZG9fc2xp Y2UsIGZyYW1lLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRk1JTihm cmFtZS0+aGVpZ2h0LCBmZl9maWx0ZXJfZ2V0X25iX3RocmVhZHMoYXZjdHgpKSkpCisgICAgICAg IHJldHVybiByZXQ7CisKKyAgICByZXR1cm4gZmZfZmlsdGVyX2ZyYW1lKGF2Y3R4LT5vdXRwdXRz WzBdLCBmcmFtZSk7Cit9CisKK3N0YXRpYyBhdl9jb2xkIGludCBjb25maWdfb3V0cHV0KEFWRmls dGVyTGluayAqb3V0bGluaykKK3sKKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2Mg PSBhdl9waXhfZm10X2Rlc2NfZ2V0KG91dGxpbmstPmZvcm1hdCk7CisgICAgQVZGaWx0ZXJDb250 ZXh0ICphdmN0eCA9IG91dGxpbmstPnNyYzsKKyAgICBCYWNrZ3JvdW5ka2V5Q29udGV4dCAqcyA9 IGF2Y3R4LT5wcml2OworICAgIGludCBkZXB0aDsKKworICAgIGRlcHRoID0gZGVzYy0+Y29tcFsw XS5kZXB0aDsKKyAgICBzLT5kb19zbGljZSA9IGRlcHRoIDw9IDggPyBkb19iYWNrZ3JvdW5ka2V5 X3NsaWNlIDogZG9fYmFja2dyb3VuZGtleTE2X3NsaWNlOworICAgIHMtPm1heCA9ICgxIDw8IGRl cHRoKSAtIDE7CisgICAgcy0+aHN1Yl9sb2cyID0gZGVzYy0+bG9nMl9jaHJvbWFfdzsKKyAgICBz LT52c3ViX2xvZzIgPSBkZXNjLT5sb2cyX2Nocm9tYV9oOworCisgICAgcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBhdl9jb2xkIHZvaWQgdW5pbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQoreworICAg IEJhY2tncm91bmRrZXlDb250ZXh0ICpzID0gY3R4LT5wcml2OworCisgICAgYXZfZnJlZXAoJnMt PmJhY2tncm91bmQpOworfQorCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgYmFja2dyb3VuZGtl eV9pbnB1dHNbXSA9IHsKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJkZWZhdWx0 IiwKKyAgICAgICAgLnR5cGUgICAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAg ICAuZmxhZ3MgICAgICAgICAgPSBBVkZJTFRFUlBBRF9GTEFHX05FRURTX1dSSVRBQkxFLAorICAg ICAgICAuZmlsdGVyX2ZyYW1lICAgPSBmaWx0ZXJfZnJhbWUsCisgICAgfSwKK307CisKK3N0YXRp YyBjb25zdCBBVkZpbHRlclBhZCBiYWNrZ3JvdW5ka2V5X291dHB1dHNbXSA9IHsKKyAgICB7Cisg ICAgICAgIC5uYW1lICAgICAgICAgICA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgICAgICAg ICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuY29uZmlnX3Byb3BzICAgPSBjb25m aWdfb3V0cHV0LAorICAgIH0sCit9OworCisjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihCYWNr Z3JvdW5ka2V5Q29udGV4dCwgeCkKKyNkZWZpbmUgRkxBR1MgQVZfT1BUX0ZMQUdfRklMVEVSSU5H X1BBUkFNfEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNfEFWX09QVF9GTEFHX1JVTlRJTUVfUEFSQU0K Kworc3RhdGljIGNvbnN0IEFWT3B0aW9uIGJhY2tncm91bmRrZXlfb3B0aW9uc1tdID0geworICAg IHsgInNpbWlsYXJpdHkiLCAic2V0IHRoZSBzaW1pbGFyaXR5IiwgIE9GRlNFVChzaW1pbGFyaXR5 KSwgQVZfT1BUX1RZUEVfRkxPQVQsIHsgLmRibCA9IDAuMDIgfSwgMC4wLCAxLjAsIEZMQUdTIH0s CisgICAgeyAiYmxlbmQiLCAgICAgICJzZXQgdGhlIGJsZW5kIHZhbHVlIiwgT0ZGU0VUKGJsZW5k KSwgICAgIEFWX09QVF9UWVBFX0ZMT0FULCB7IC5kYmwgPSAwLjAgIH0sIDAuMCwgMS4wLCBGTEFH UyB9LAorICAgIHsgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3QgZW51bSBBVlBpeGVsRm9ybWF0 IGJhY2tncm91bmRrZXlfZm10c1tdID0geworICAgIEFWX1BJWF9GTVRfWVVWQTQyMFAsCisgICAg QVZfUElYX0ZNVF9ZVVZBNDIyUCwKKyAgICBBVl9QSVhfRk1UX1lVVkE0NDRQLAorICAgIEFWX1BJ WF9GTVRfWVVWQTQyMFA5LCAgQVZfUElYX0ZNVF9ZVVZBNDIyUDksICBBVl9QSVhfRk1UX1lVVkE0 NDRQOSwKKyAgICBBVl9QSVhfRk1UX1lVVkE0MjBQMTAsIEFWX1BJWF9GTVRfWVVWQTQyMlAxMCwg QVZfUElYX0ZNVF9ZVVZBNDQ0UDEwLAorICAgIEFWX1BJWF9GTVRfWVVWQTQyMlAxMiwgQVZfUElY X0ZNVF9ZVVZBNDQ0UDEyLAorICAgIEFWX1BJWF9GTVRfWVVWQTQyMFAxNiwgQVZfUElYX0ZNVF9Z VVZBNDIyUDE2LCBBVl9QSVhfRk1UX1lVVkE0NDRQMTYsCisgICAgQVZfUElYX0ZNVF9OT05FCit9 OworCitBVkZJTFRFUl9ERUZJTkVfQ0xBU1MoYmFja2dyb3VuZGtleSk7CisKK2NvbnN0IEFWRmls dGVyIGZmX3ZmX2JhY2tncm91bmRrZXkgPSB7CisgICAgLm5hbWUgICAgICAgICAgPSAiYmFja2dy b3VuZGtleSIsCisgICAgLmRlc2NyaXB0aW9uICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiVHVy bnMgYSBiYWNrZ3JvdW5kIGludG8gdHJhbnNwYXJlbmN5LiIpLAorICAgIC5wcml2X3NpemUgICAg ID0gc2l6ZW9mKEJhY2tncm91bmRrZXlDb250ZXh0KSwKKyAgICAucHJpdl9jbGFzcyAgICA9ICZi YWNrZ3JvdW5ka2V5X2NsYXNzLAorICAgIC51bmluaXQgICAgICAgID0gdW5pbml0LAorICAgIEZJ TFRFUl9JTlBVVFMoYmFja2dyb3VuZGtleV9pbnB1dHMpLAorICAgIEZJTFRFUl9PVVRQVVRTKGJh Y2tncm91bmRrZXlfb3V0cHV0cyksCisgICAgRklMVEVSX1BJWEZNVFNfQVJSQVkoYmFja2dyb3Vu ZGtleV9mbXRzKSwKKyAgICAuZmxhZ3MgICAgICAgICA9IEFWRklMVEVSX0ZMQUdfU1VQUE9SVF9U SU1FTElORV9HRU5FUklDIHwgQVZGSUxURVJfRkxBR19TTElDRV9USFJFQURTLAorfTsKLS0gCjIu MzcuMgoK --0000000000001dfee705ec41657f 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". --0000000000001dfee705ec41657f--