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 688B942C76 for ; Sat, 2 Jul 2022 06:35:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AC33468B842; Sat, 2 Jul 2022 09:35:10 +0300 (EEST) Received: from mail-yb1-f169.google.com (mail-yb1-f169.google.com [209.85.219.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C2D1468B7CB for ; Sat, 2 Jul 2022 09:35:04 +0300 (EEST) Received: by mail-yb1-f169.google.com with SMTP id x184so7529279ybg.12 for ; Fri, 01 Jul 2022 23:35:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=W/vpFMxuJ8qP+rDv6bhoP2mkLrwwCQZBhXdQqQ6Q0a0=; b=cZyXtHLyxdshPOyxDb4Vf537CIFWeeo0p5fw2Zc2ylCGAVxOv1D99+JIGzy3SEMx2X RYxbSgWYY1IsJyXdnQM7rbP+ZQdg+2dlyuOYLGjE14YO2nchOZ7P61YguhpiN4cGn73V kjuDFfnCN8ENdF4I3BxUZHZKspC6E2JM3DOmFquUHd2KAkoSX7cZkk6IIhEg6RFWyLaX 9XpnZM3Kn7ZEiWUBbi6ZW9jpL6W2SeEn1kLiqFois4SIav7DzpDilfNMlZ45+q9FB1o3 nqWEtjDiF25VePeP5X5dMK7z/I43aFayTk7xzzeI9NP+H831K6Daj48696khdLK/yTBS UNHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=W/vpFMxuJ8qP+rDv6bhoP2mkLrwwCQZBhXdQqQ6Q0a0=; b=5/WTR+PS+XpJ1KhPQIXGLGUH6as3gGByCT7qy6QaCO/gCugh0bPg1ljWJ4TYjyEfuW JR6r4nD4frRa8ahxJ1kizIML+aQd0kxol6IvNchZEMLWheHAa4elvs4trhb2JCiVuKuK N7JXbccMLuTTu7yX0DUrtPrgKhPtaWpejpZJ6r+/UG+Rh4QqRc/eXlEHBho7hKgnQYgf T3qB6arE5rUZykomMlNNPiRpGh0yrdzEoB+bmlFgYY9uTp9kqv7tMDczd74Etmi94ctp G5Oq072ZSx88Ps2RM6L8KCxwG1H9ngbJMhQaYQfFi62yqdK4tLEF0pgmPODN8uXDaMM6 ThPA== X-Gm-Message-State: AJIora+Q/npI04XYheyuaVNWDFTJEeY5Rr8HE4RsmwLbspkIHRYnFIR3 5/Rna6Mq15fL9WPnXtiqNzGz4CgR7ZAUqL30aChjdHblTzU= X-Google-Smtp-Source: AGRyM1scw6rUG96UvzCixRr6ugxLxNc+NRiLm+QxNqMjdTUmtz4jQYCzMxOxEfoIj7gJywUDiFt7iGfMgp74mm4cRH0= X-Received: by 2002:a5b:b52:0:b0:669:b5a0:ac98 with SMTP id b18-20020a5b0b52000000b00669b5a0ac98mr19502997ybr.142.1656743703129; Fri, 01 Jul 2022 23:35:03 -0700 (PDT) MIME-Version: 1.0 References: <20220701210433.GX396728@pb2> In-Reply-To: From: Paul B Mahol Date: Sat, 2 Jul 2022 08:37:47 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000e8dc8e05e2ccb3a1" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add remap_opencl 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: --000000000000e8dc8e05e2ccb3a1 Content-Type: text/plain; charset="UTF-8" New version: Added docs, and more cleanups and fixes. --000000000000e8dc8e05e2ccb3a1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avfilter-add-remap-opencl-filter.patch" Content-Disposition: attachment; filename="0001-avfilter-add-remap-opencl-filter.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l53ii5up0 RnJvbSAyMjcxNmM5Zjg1M2QzMzc2OWMxZTYzZjdlMDEwYTU1NDBhMmU0NTViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjkgSnVuIDIwMjIgMTk6MTI6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmZpbHRl cjogYWRkIHJlbWFwIG9wZW5jbCBmaWx0ZXIKClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBNYWhvbCA8 b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiBkb2MvZmlsdGVycy50ZXhpICAgICAgICAgICAgICB8ICAyNCArKysKIGxpYmF2ZmlsdGVy L01ha2VmaWxlICAgICAgICAgIHwgICAyICsKIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAg IHwgICAxICsKIGxpYmF2ZmlsdGVyL29wZW5jbC9yZW1hcC5jbCAgIHwgIDczICsrKysrKysKIGxp YmF2ZmlsdGVyL29wZW5jbF9zb3VyY2UuaCAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL3ZmX3JlbWFw X29wZW5jbC5jIHwgMzU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2 dXRpbC9od2NvbnRleHRfb3BlbmNsLmMgIHwgICA1ICstCiA4IGZpbGVzIGNoYW5nZWQsIDQ2MCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0 ZXIvb3BlbmNsL3JlbWFwLmNsCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvdmZfcmVt YXBfb3BlbmNsLmMKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggZmVh NTEyZThlZi4uN2Q1YzQ5MDBiZiAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3Vy ZQpAQCAtMzcwNiw2ICszNzA2LDcgQEAgcHJld2l0dF9vcGVuY2xfZmlsdGVyX2RlcHM9Im9wZW5j bCIKIHByb2NhbXBfdmFhcGlfZmlsdGVyX2RlcHM9InZhYXBpIgogcHJvZ3JhbV9vcGVuY2xfZmls dGVyX2RlcHM9Im9wZW5jbCIKIHB1bGx1cF9maWx0ZXJfZGVwcz0iZ3BsIgorcmVtYXBfb3BlbmNs X2ZpbHRlcl9kZXBzPSJvcGVuY2wiCiByZW1vdmVsb2dvX2ZpbHRlcl9kZXBzPSJhdmNvZGVjIGF2 Zm9ybWF0IHN3c2NhbGUiCiByZXBlYXRmaWVsZHNfZmlsdGVyX2RlcHM9ImdwbCIKIHJvYmVydHNf b3BlbmNsX2ZpbHRlcl9kZXBzPSJvcGVuY2wiCmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50ZXhp IGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCBlNTI1ZTg3YjNjLi43ZDM4MzcxNWRhIDEwMDY0NAot LS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBiL2RvYy9maWx0ZXJzLnRleGkKQEAgLTI1NjgzLDYg KzI1NjgzLDMwIEBAIF9fa2VybmVsIHZvaWQgYmxlbmRfaW1hZ2VzKF9fd3JpdGVfb25seSBpbWFn ZTJkX3QgZHN0LAogCiBAZW5kIGl0ZW1pemUKIAorQHNlY3Rpb24gcmVtYXBfb3BlbmNsCisKK1Jl bWFwIHBpeGVscyB1c2luZyAybmQ6IFhtYXAgYW5kIDNyZDogWW1hcCBpbnB1dCB2aWRlbyBzdHJl YW0uCisKK0Rlc3RpbmF0aW9uIHBpeGVsIGF0IHBvc2l0aW9uIChYLCBZKSB3aWxsIGJlIHBpY2tl ZCBmcm9tIHNvdXJjZSAoeCwgeSkgcG9zaXRpb24KK3doZXJlIHggPSBYbWFwKFgsIFkpIGFuZCB5 ID0gWW1hcChYLCBZKS4gSWYgbWFwcGluZyB2YWx1ZXMgYXJlIG91dCBvZiByYW5nZSwgemVybwor dmFsdWUgZm9yIHBpeGVsIHdpbGwgYmUgdXNlZCBmb3IgZGVzdGluYXRpb24gcGl4ZWwuCisKK1ht YXAgYW5kIFltYXAgaW5wdXQgdmlkZW8gc3RyZWFtcyBtdXN0IGJlIG9mIHNhbWUgZGltZW5zaW9u cy4gT3V0cHV0IHZpZGVvIHN0cmVhbQord2lsbCBoYXZlIFhtYXAvWW1hcCB2aWRlbyBzdHJlYW0g ZGltZW5zaW9ucy4KK1htYXAgYW5kIFltYXAgaW5wdXQgdmlkZW8gc3RyZWFtcyBhcmUgMzJiaXQg ZmxvYXQgcGl4ZWwgZm9ybWF0LCBzaW5nbGUgY2hhbm5lbC4KKworQHRhYmxlIEBvcHRpb24KK0Bp dGVtIGludGVycAorU3BlY2lmeSBpbnRlcnBvbGF0aW9uIHVzZWQgZm9yIHJlbWFwcGluZyBvZiBw aXhlbHMuCitBbGxvd2VkIHZhbHVlcyBhcmUgQGNvZGV7bmVhcn0gYW5kIEBjb2Rle2xpbmVhcn0u CitEZWZhdWx0IHZhbHVlIGlzIEBjb2Rle2xpbmVhcn0uCisKK0BpdGVtIGZpbGwKK1NwZWNpZnkg dGhlIGNvbG9yIG9mIHRoZSB1bm1hcHBlZCBwaXhlbHMuIEZvciB0aGUgc3ludGF4IG9mIHRoaXMg b3B0aW9uLAorY2hlY2sgdGhlIEByZWZ7Y29sb3Igc3ludGF4LCwiQ29sb3IiIHNlY3Rpb24gaW4g dGhlIGZmbXBlZy11dGlscworbWFudWFsLGZmbXBlZy11dGlsc30uIERlZmF1bHQgY29sb3IgaXMg QGNvZGV7YmxhY2t9LgorQGVuZCB0YWJsZQorCiBAc2VjdGlvbiByb2JlcnRzX29wZW5jbAogQXBw bHkgdGhlIFJvYmVydHMgY3Jvc3Mgb3BlcmF0b3IgKEB1cmx7aHR0cHM6Ly9lbi53aWtpcGVkaWEu b3JnL3dpa2kvUm9iZXJ0c19jcm9zc30pIHRvIGlucHV0IHZpZGVvIHN0cmVhbS4KIApkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRlci9NYWtlZmlsZQppbmRleCAy MmIwYTBjYTE1Li4xMzlmN2NiNzUxIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQor KysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQpAQCAtNDIwLDYgKzQyMCw4IEBAIE9CSlMtJChDT05G SUdfUkVBREVJQTYwOF9GSUxURVIpICAgICAgICAgICAgICs9IHZmX3JlYWRlaWE2MDgubwogT0JK Uy0kKENPTkZJR19SRUFEVklUQ19GSUxURVIpICAgICAgICAgICAgICAgKz0gdmZfcmVhZHZpdGMu bwogT0JKUy0kKENPTkZJR19SRUFMVElNRV9GSUxURVIpICAgICAgICAgICAgICAgKz0gZl9yZWFs dGltZS5vCiBPQkpTLSQoQ09ORklHX1JFTUFQX0ZJTFRFUikgICAgICAgICAgICAgICAgICArPSB2 Zl9yZW1hcC5vIGZyYW1lc3luYy5vCitPQkpTLSQoQ09ORklHX1JFTUFQX09QRU5DTF9GSUxURVIp ICAgICAgICAgICArPSB2Zl9yZW1hcF9vcGVuY2wubyBmcmFtZXN5bmMubyBvcGVuY2wubyBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuY2wvcmVt YXAubwogT0JKUy0kKENPTkZJR19SRU1PVkVHUkFJTl9GSUxURVIpICAgICAgICAgICAgKz0gdmZf cmVtb3ZlZ3JhaW4ubwogT0JKUy0kKENPTkZJR19SRU1PVkVMT0dPX0ZJTFRFUikgICAgICAgICAg ICAgKz0gYmJveC5vIGxzd3N1dGlscy5vIGxhdmZ1dGlscy5vIHZmX3JlbW92ZWxvZ28ubwogT0JK Uy0kKENPTkZJR19SRVBFQVRGSUVMRFNfRklMVEVSKSAgICAgICAgICAgKz0gdmZfcmVwZWF0Zmll bGRzLm8KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyBiL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYwppbmRleCBlYzcwZmVlZjExLi4zMDE4ODUwYjRiIDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKKysrIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCkBA IC0zOTksNiArMzk5LDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX3JlYWRlaWE2MDg7 CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVhZHZpdGM7CiBleHRlcm4gY29uc3QgQVZG aWx0ZXIgZmZfdmZfcmVhbHRpbWU7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVtYXA7 CitleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVtYXBfb3BlbmNsOwogZXh0ZXJuIGNvbnN0 IEFWRmlsdGVyIGZmX3ZmX3JlbW92ZWdyYWluOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3Zm X3JlbW92ZWxvZ287CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVwZWF0ZmllbGRzOwpk aWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvb3BlbmNsL3JlbWFwLmNsIGIvbGliYXZmaWx0ZXIvb3Bl bmNsL3JlbWFwLmNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmZiYTgy ZDEzNGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRlci9vcGVuY2wvcmVtYXAuY2wKQEAg LTAsMCArMSw3MyBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisg KiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCitj b25zdCBzYW1wbGVyX3QgbGluZWFyX3NhbXBsZXIgPSAoQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZB TFNFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEtfRklMVEVSX0xJTkVB Uik7CisKK2NvbnN0IHNhbXBsZXJfdCBuZWFyZXN0X3NhbXBsZXIgPSAoQ0xLX05PUk1BTElaRURf Q09PUkRTX0ZBTFNFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xLX0ZJ TFRFUl9ORUFSRVNUKTsKKworX19rZXJuZWwgdm9pZCByZW1hcF9uZWFyKF9fd3JpdGVfb25seSBp bWFnZTJkX3QgZHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVhZF9vbmx5ICBpbWFn ZTJkX3Qgc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVhZF9vbmx5ICBpbWFnZTJk X3QgeG1hcGksCisgICAgICAgICAgICAgICAgICAgICAgICAgX19yZWFkX29ubHkgIGltYWdlMmRf dCB5bWFwaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDQgZmlsbF9jb2xvcikKK3sK KyAgICBpbnQyIHAgPSAoaW50MikoZ2V0X2dsb2JhbF9pZCgwKSwgZ2V0X2dsb2JhbF9pZCgxKSk7 CisgICAgaW50MiBkaW1pID0gZ2V0X2ltYWdlX2RpbShzcmMpOworICAgIGZsb2F0MiBkaW1mID0g KGZsb2F0MikoZGltaS54LCBkaW1pLnkpOworICAgIGZsb2F0NCB2YWw7CisgICAgaW50MiBtaTsK KyAgICBmbG9hdCBtOworCisgICAgZmxvYXQ0IHhtYXAgPSByZWFkX2ltYWdlZih4bWFwaSwgbmVh cmVzdF9zYW1wbGVyLCBwKTsKKyAgICBmbG9hdDQgeW1hcCA9IHJlYWRfaW1hZ2VmKHltYXBpLCBu ZWFyZXN0X3NhbXBsZXIsIHApOworICAgIGZsb2F0MiBwb3MgID0gKGZsb2F0MikoeG1hcC54LCB5 bWFwLngpOworICAgIHBvcy54eSA9IHBvcy54eSAqIDY1NTM1LmY7CisKKyAgICBtaSA9ICgocG9z ID49IChmbG9hdDIpKDAuZiwgMC5mKSkgKiAocG9zIDwgZGltZikgKiAocCA8PSBkaW1pKSk7Cisg ICAgbSA9IG1pLnggJiYgbWkueTsKKyAgICB2YWwgPSBtaXgoZmlsbF9jb2xvciwgcmVhZF9pbWFn ZWYoc3JjLCBuZWFyZXN0X3NhbXBsZXIsIHBvcyksIG0pOworCisgICAgd3JpdGVfaW1hZ2VmKGRz dCwgcCwgdmFsKTsKK30KKworX19rZXJuZWwgdm9pZCByZW1hcF9saW5lYXIoX193cml0ZV9vbmx5 IGltYWdlMmRfdCBkc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JlYWRfb25seSAg aW1hZ2UyZF90IHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVhZF9vbmx5ICBp bWFnZTJkX3QgeG1hcGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JlYWRfb25seSAg aW1hZ2UyZF90IHltYXBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ0IGZpbGxf Y29sb3IpCit7CisgICAgaW50MiBwID0gKGludDIpKGdldF9nbG9iYWxfaWQoMCksIGdldF9nbG9i YWxfaWQoMSkpOworICAgIGludDIgZGltaSA9IGdldF9pbWFnZV9kaW0oc3JjKTsKKyAgICBmbG9h dDIgZGltZiA9IChmbG9hdDIpKGRpbWkueCwgZGltaS55KTsKKyAgICBmbG9hdDQgdmFsOworICAg IGludDIgbWk7CisgICAgZmxvYXQgbTsKKworICAgIGZsb2F0NCB4bWFwID0gcmVhZF9pbWFnZWYo eG1hcGksIG5lYXJlc3Rfc2FtcGxlciwgcCk7CisgICAgZmxvYXQ0IHltYXAgPSByZWFkX2ltYWdl Zih5bWFwaSwgbmVhcmVzdF9zYW1wbGVyLCBwKTsKKyAgICBmbG9hdDIgcG9zICA9IChmbG9hdDIp KHhtYXAueCwgeW1hcC54KTsKKyAgICBwb3MueHkgPSBwb3MueHkgKiA2NTUzNS5mOworCisgICAg bWkgPSAoKHBvcyA+PSAoZmxvYXQyKSgwLmYsIDAuZikpICogKHBvcyA8IGRpbWYpICogKHAgPD0g ZGltaSkpOworICAgIG0gPSBtaS54ICYmIG1pLnk7CisgICAgdmFsID0gbWl4KGZpbGxfY29sb3Is IHJlYWRfaW1hZ2VmKHNyYywgbGluZWFyX3NhbXBsZXIsIHBvcyksIG0pOworCisgICAgd3JpdGVf aW1hZ2VmKGRzdCwgcCwgdmFsKTsKK30KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL29wZW5jbF9z b3VyY2UuaCBiL2xpYmF2ZmlsdGVyL29wZW5jbF9zb3VyY2UuaAppbmRleCA3ZTgxMzMwOTBlLi45 ZWFjMmRjNTE2IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9vcGVuY2xfc291cmNlLmgKKysrIGIv bGliYXZmaWx0ZXIvb3BlbmNsX3NvdXJjZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiBjb25z dCBjaGFyICpmZl9vcGVuY2xfc291cmNlX25laWdoYm9yOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmZm X29wZW5jbF9zb3VyY2VfbmxtZWFuczsKIGV4dGVybiBjb25zdCBjaGFyICpmZl9vcGVuY2xfc291 cmNlX292ZXJsYXk7CiBleHRlcm4gY29uc3QgY2hhciAqZmZfb3BlbmNsX3NvdXJjZV9wYWQ7Citl eHRlcm4gY29uc3QgY2hhciAqZmZfb3BlbmNsX3NvdXJjZV9yZW1hcDsKIGV4dGVybiBjb25zdCBj aGFyICpmZl9vcGVuY2xfc291cmNlX3RvbmVtYXA7CiBleHRlcm4gY29uc3QgY2hhciAqZmZfb3Bl bmNsX3NvdXJjZV90cmFuc3Bvc2U7CiBleHRlcm4gY29uc3QgY2hhciAqZmZfb3BlbmNsX3NvdXJj ZV91bnNoYXJwOwpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfcmVtYXBfb3BlbmNsLmMgYi9s aWJhdmZpbHRlci92Zl9yZW1hcF9vcGVuY2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi5mM2Y4NGJkZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZmaWx0ZXIvdmZf cmVtYXBfb3BlbmNsLmMKQEAgLTAsMCArMSwzNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw MjIgUGF1bCBCIE1haG9sCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoK KyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisK KyNpbmNsdWRlICJsaWJhdnV0aWwvY29sb3JzcGFjZS5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9p bWd1dGlscy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCisjaW5jbHVkZSAibGli YXZ1dGlsL29wdC5oIgorI2luY2x1ZGUgImF2ZmlsdGVyLmgiCisjaW5jbHVkZSAiZHJhd3V0aWxz LmgiCisjaW5jbHVkZSAiZm9ybWF0cy5oIgorI2luY2x1ZGUgImZyYW1lc3luYy5oIgorI2luY2x1 ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAib3BlbmNsLmgiCisjaW5jbHVkZSAib3BlbmNsX3Nv dXJjZS5oIgorI2luY2x1ZGUgInZpZGVvLmgiCisKK3R5cGVkZWYgc3RydWN0IFJlbWFwT3BlbkNM Q29udGV4dCB7CisgICAgT3BlbkNMRmlsdGVyQ29udGV4dCBvY2Y7CisKKyAgICBpbnQgbmJfcGxh bmVzOworICAgIGludCBpbnRlcnA7CisgICAgdWludDhfdCBmaWxsX3JnYmFbNF07CisgICAgY2xf ZmxvYXQ0IGNsX2ZpbGxfY29sb3I7CisKKyAgICBpbnQgICAgICAgICAgICAgIGluaXRpYWxpc2Vk OworICAgIGNsX2tlcm5lbCAgICAgICAga2VybmVsOworICAgIGNsX2NvbW1hbmRfcXVldWUgY29t bWFuZF9xdWV1ZTsKKworICAgIEZGRnJhbWVTeW5jIGZzOworfSBSZW1hcE9wZW5DTENvbnRleHQ7 CisKKyNkZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9mKFJlbWFwT3BlbkNMQ29udGV4dCwgeCkKKyNk ZWZpbmUgRkxBR1MgQVZfT1BUX0ZMQUdfRklMVEVSSU5HX1BBUkFNfEFWX09QVF9GTEFHX1ZJREVP X1BBUkFNCisKK3N0YXRpYyBjb25zdCBBVk9wdGlvbiByZW1hcF9vcGVuY2xfb3B0aW9uc1tdID0g eworICAgIHsgImludGVycCIsICJzZXQgaW50ZXJwb2xhdGlvbiBtZXRob2QiLCBPRkZTRVQoaW50 ZXJwKSwgQVZfT1BUX1RZUEVfSU5ULCAgIHsuaTY0PTF9LCAwLCAxLCBGTEFHUywgImludGVycCIg fSwKKyAgICB7ICAibmVhciIsICAgTlVMTCwgMCwgQVZfT1BUX1RZUEVfQ09OU1QsIHsuaTY0PTB9 LCAwLCAwLCBGTEFHUywgImludGVycCIgfSwKKyAgICB7ICAibGluZWFyIiwgTlVMTCwgMCwgQVZf T1BUX1RZUEVfQ09OU1QsIHsuaTY0PTF9LCAwLCAwLCBGTEFHUywgImludGVycCIgfSwKKyAgICB7 ICJmaWxsIiwgInNldCB0aGUgY29sb3Igb2YgdGhlIHVubWFwcGVkIHBpeGVscyIsIE9GRlNFVChm aWxsX3JnYmEpLCBBVl9PUFRfVFlQRV9DT0xPUiwgey5zdHI9ImJsYWNrIn0sIC5mbGFncyA9IEZM QUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK0FWRklMVEVSX0RFRklORV9DTEFTUyhyZW1hcF9v cGVuY2wpOworCitzdGF0aWMgYXZfY29sZCBpbnQgcmVtYXBfb3BlbmNsX2luaXQoQVZGaWx0ZXJD b250ZXh0ICphdmN0eCkKK3sKKyAgICByZXR1cm4gZmZfb3BlbmNsX2ZpbHRlcl9pbml0KGF2Y3R4 KTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmtlcm5lbHNbXSA9IHsgInJlbWFwX25lYXIiLCAi cmVtYXBfbGluZWFyIiB9OworCitzdGF0aWMgaW50IHJlbWFwX29wZW5jbF9sb2FkKEFWRmlsdGVy Q29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQaXhl bEZvcm1hdCBtYWluX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBB VlBpeGVsRm9ybWF0IHhtYXBfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bnVtIEFWUGl4ZWxGb3JtYXQgeW1hcF9mb3JtYXQpCit7CisgICAgUmVtYXBPcGVuQ0xDb250ZXh0 ICpjdHggPSBhdmN0eC0+cHJpdjsKKyAgICBjbF9pbnQgY2xlOworICAgIGNvbnN0IGNoYXIgKnNv dXJjZSA9IGZmX29wZW5jbF9zb3VyY2VfcmVtYXA7CisgICAgY29uc3QgY2hhciAqa2VybmVsID0g a2VybmVsc1tjdHgtPmludGVycF07CisgICAgY29uc3QgQVZQaXhGbXREZXNjcmlwdG9yICptYWlu X2Rlc2M7CisgICAgaW50IGVyciwgbWFpbl9wbGFuZXM7CisgICAgY29uc3QgQVZQaXhGbXREZXNj cmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChtYWluX2Zvcm1hdCk7CisgICAgaW50 IGlzX3JnYiA9ICEhKGRlc2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX1JHQik7CisgICAgY29u c3QgZmxvYXQgc2NhbGUgPSAxLmYgLyAyNTUuZjsKKyAgICB1aW50OF90IHJnYmFfbWFwWzRdOwor CisgICAgZmZfZmlsbF9yZ2JhX21hcChyZ2JhX21hcCwgbWFpbl9mb3JtYXQpOworCisgICAgaWYg KGlzX3JnYikgeworICAgICAgICBjdHgtPmNsX2ZpbGxfY29sb3Iuc1tyZ2JhX21hcFswXV0gPSBj dHgtPmZpbGxfcmdiYVswXSAqIHNjYWxlOworICAgICAgICBjdHgtPmNsX2ZpbGxfY29sb3Iuc1ty Z2JhX21hcFsxXV0gPSBjdHgtPmZpbGxfcmdiYVsxXSAqIHNjYWxlOworICAgICAgICBjdHgtPmNs X2ZpbGxfY29sb3Iuc1tyZ2JhX21hcFsyXV0gPSBjdHgtPmZpbGxfcmdiYVsyXSAqIHNjYWxlOwor ICAgICAgICBjdHgtPmNsX2ZpbGxfY29sb3Iuc1tyZ2JhX21hcFszXV0gPSBjdHgtPmZpbGxfcmdi YVszXSAqIHNjYWxlOworICAgIH0gZWxzZSB7CisgICAgICAgIGN0eC0+Y2xfZmlsbF9jb2xvci5z WzBdID0gUkdCX1RPX1lfQlQ3MDkoY3R4LT5maWxsX3JnYmFbMF0sIGN0eC0+ZmlsbF9yZ2JhWzFd LCBjdHgtPmZpbGxfcmdiYVsyXSkgKiBzY2FsZTsKKyAgICAgICAgY3R4LT5jbF9maWxsX2NvbG9y LnNbMV0gPSBSR0JfVE9fVV9CVDcwOShjdHgtPmZpbGxfcmdiYVswXSwgY3R4LT5maWxsX3JnYmFb MV0sIGN0eC0+ZmlsbF9yZ2JhWzJdLCAwKSAqIHNjYWxlOworICAgICAgICBjdHgtPmNsX2ZpbGxf Y29sb3Iuc1syXSA9IFJHQl9UT19WX0JUNzA5KGN0eC0+ZmlsbF9yZ2JhWzBdLCBjdHgtPmZpbGxf cmdiYVsxXSwgY3R4LT5maWxsX3JnYmFbMl0sIDApICogc2NhbGU7CisgICAgICAgIGN0eC0+Y2xf ZmlsbF9jb2xvci5zWzNdID0gY3R4LT5maWxsX3JnYmFbM10gKiBzY2FsZTsKKyAgICB9CisKKyAg ICBtYWluX2Rlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KG1haW5fZm9ybWF0KTsKKworICAgIG1h aW5fcGxhbmVzID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1haW5fZGVzYy0+bmJfY29t cG9uZW50czsgaSsrKQorICAgICAgICBtYWluX3BsYW5lcyA9IEZGTUFYKG1haW5fcGxhbmVzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fZGVzYy0+Y29tcFtpXS5wbGFuZSArIDEp OworCisgICAgY3R4LT5uYl9wbGFuZXMgPSBtYWluX3BsYW5lczsKKworICAgIGVyciA9IGZmX29w ZW5jbF9maWx0ZXJfbG9hZF9wcm9ncmFtKGF2Y3R4LCAmc291cmNlLCAxKTsKKyAgICBpZiAoZXJy IDwgMCkKKyAgICAgICAgZ290byBmYWlsOworCisgICAgY3R4LT5jb21tYW5kX3F1ZXVlID0gY2xD cmVhdGVDb21tYW5kUXVldWUoY3R4LT5vY2YuaHdjdHgtPmNvbnRleHQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vY2YuaHdjdHgtPmRldmljZV9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAmY2xl KTsKKyAgICBDTF9GQUlMX09OX0VSUk9SKEFWRVJST1IoRUlPKSwgIkZhaWxlZCB0byBjcmVhdGUg T3BlbkNMICIKKyAgICAgICAgICAgICAgICAgICAgICJjb21tYW5kIHF1ZXVlICVkLlxuIiwgY2xl KTsKKworICAgIGN0eC0+a2VybmVsID0gY2xDcmVhdGVLZXJuZWwoY3R4LT5vY2YucHJvZ3JhbSwg a2VybmVsLCAmY2xlKTsKKyAgICBDTF9GQUlMX09OX0VSUk9SKEFWRVJST1IoRUlPKSwgIkZhaWxl ZCB0byBjcmVhdGUga2VybmVsICVkLlxuIiwgY2xlKTsKKworICAgIGN0eC0+aW5pdGlhbGlzZWQg PSAxOworICAgIHJldHVybiAwOworCitmYWlsOgorICAgIGlmIChjdHgtPmNvbW1hbmRfcXVldWUp CisgICAgICAgIGNsUmVsZWFzZUNvbW1hbmRRdWV1ZShjdHgtPmNvbW1hbmRfcXVldWUpOworICAg IGlmIChjdHgtPmtlcm5lbCkKKyAgICAgICAgY2xSZWxlYXNlS2VybmVsKGN0eC0+a2VybmVsKTsK KyAgICByZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHJlbWFwX29wZW5jbF9wcm9jZXNzX2Zy YW1lKEZGRnJhbWVTeW5jICpmcykKK3sKKyAgICBBVkZpbHRlckNvbnRleHQgKmF2Y3R4ID0gZnMt PnBhcmVudDsKKyAgICBBVkZpbHRlckxpbmsgKm91dGxpbmsgPSBhdmN0eC0+b3V0cHV0c1swXTsK KyAgICBSZW1hcE9wZW5DTENvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2OworICAgIEFWRnJhbWUg KmlucHV0X21haW4sICppbnB1dF94bWFwLCAqaW5wdXRfeW1hcDsKKyAgICBBVkZyYW1lICpvdXRw dXQ7CisgICAgY2xfbWVtIG1lbTsKKyAgICBjbF9pbnQgY2xlOworICAgIHNpemVfdCBnbG9iYWxf d29ya1syXTsKKyAgICBpbnQga2VybmVsX2FyZyA9IDA7CisgICAgaW50IGVyciwgcGxhbmU7CisK KyAgICBlcnIgPSBmZl9mcmFtZXN5bmNfZ2V0X2ZyYW1lKGZzLCAwLCAmaW5wdXRfbWFpbiwgMCk7 CisgICAgaWYgKGVyciA8IDApCisgICAgICAgIHJldHVybiBlcnI7CisgICAgZXJyID0gZmZfZnJh bWVzeW5jX2dldF9mcmFtZShmcywgMSwgJmlucHV0X3htYXAsIDApOworICAgIGlmIChlcnIgPCAw KQorICAgICAgICByZXR1cm4gZXJyOworICAgIGVyciA9IGZmX2ZyYW1lc3luY19nZXRfZnJhbWUo ZnMsIDIsICZpbnB1dF95bWFwLCAwKTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJu IGVycjsKKworICAgIGlmICghY3R4LT5pbml0aWFsaXNlZCkgeworICAgICAgICBBVkhXRnJhbWVz Q29udGV4dCAqbWFpbl9mYyA9CisgICAgICAgICAgIChBVkhXRnJhbWVzQ29udGV4dCopaW5wdXRf bWFpbi0+aHdfZnJhbWVzX2N0eC0+ZGF0YTsKKyAgICAgICAgQVZIV0ZyYW1lc0NvbnRleHQgKnht YXBfZmMgPQorICAgICAgICAgICAgKEFWSFdGcmFtZXNDb250ZXh0KilpbnB1dF94bWFwLT5od19m cmFtZXNfY3R4LT5kYXRhOworICAgICAgICBBVkhXRnJhbWVzQ29udGV4dCAqeW1hcF9mYyA9Cisg ICAgICAgICAgICAoQVZIV0ZyYW1lc0NvbnRleHQqKWlucHV0X3ltYXAtPmh3X2ZyYW1lc19jdHgt PmRhdGE7CisKKyAgICAgICAgZXJyID0gcmVtYXBfb3BlbmNsX2xvYWQoYXZjdHgsIG1haW5fZmMt PnN3X2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1hcF9mYy0+c3df Zm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bWFwX2ZjLT5zd19mb3Jt YXQpOworICAgICAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBlcnI7CisgICAg fQorCisgICAgb3V0cHV0ID0gZmZfZ2V0X3ZpZGVvX2J1ZmZlcihvdXRsaW5rLCBvdXRsaW5rLT53 LCBvdXRsaW5rLT5oKTsKKyAgICBpZiAoIW91dHB1dCkgeworICAgICAgICBlcnIgPSBBVkVSUk9S KEVOT01FTSk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBmb3IgKHBsYW5lID0g MDsgcGxhbmUgPCBjdHgtPm5iX3BsYW5lczsgcGxhbmUrKykgeworICAgICAgICBjbF9mbG9hdDQg Y2xfZmlsbF9jb2xvcjsKKyAgICAgICAga2VybmVsX2FyZyA9IDA7CisKKyAgICAgICAgaWYgKGN0 eC0+bmJfcGxhbmVzID09IDEpCisgICAgICAgICAgICBjbF9maWxsX2NvbG9yID0gY3R4LT5jbF9m aWxsX2NvbG9yOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjbF9maWxsX2NvbG9yLnNbMF0g PSBjdHgtPmNsX2ZpbGxfY29sb3Iuc1twbGFuZV07CisKKyAgICAgICAgbWVtID0gKGNsX21lbSlv dXRwdXQtPmRhdGFbcGxhbmVdOworICAgICAgICBDTF9TRVRfS0VSTkVMX0FSRyhjdHgtPmtlcm5l bCwga2VybmVsX2FyZywgY2xfbWVtLCAmbWVtKTsKKyAgICAgICAga2VybmVsX2FyZysrOworCisg ICAgICAgIG1lbSA9IChjbF9tZW0paW5wdXRfbWFpbi0+ZGF0YVtwbGFuZV07CisgICAgICAgIENM X1NFVF9LRVJORUxfQVJHKGN0eC0+a2VybmVsLCBrZXJuZWxfYXJnLCBjbF9tZW0sICZtZW0pOwor ICAgICAgICBrZXJuZWxfYXJnKys7CisKKyAgICAgICAgbWVtID0gKGNsX21lbSlpbnB1dF94bWFw LT5kYXRhWzBdOworICAgICAgICBDTF9TRVRfS0VSTkVMX0FSRyhjdHgtPmtlcm5lbCwga2VybmVs X2FyZywgY2xfbWVtLCAmbWVtKTsKKyAgICAgICAga2VybmVsX2FyZysrOworCisgICAgICAgIG1l bSA9IChjbF9tZW0paW5wdXRfeW1hcC0+ZGF0YVswXTsKKyAgICAgICAgQ0xfU0VUX0tFUk5FTF9B UkcoY3R4LT5rZXJuZWwsIGtlcm5lbF9hcmcsIGNsX21lbSwgJm1lbSk7CisgICAgICAgIGtlcm5l bF9hcmcrKzsKKworICAgICAgICBDTF9TRVRfS0VSTkVMX0FSRyhjdHgtPmtlcm5lbCwga2VybmVs X2FyZywgY2xfZmxvYXQ0LCAmY2xfZmlsbF9jb2xvcik7CisgICAgICAgIGtlcm5lbF9hcmcrKzsK KworICAgICAgICBlcnIgPSBmZl9vcGVuY2xfZmlsdGVyX3dvcmtfc2l6ZV9mcm9tX2ltYWdlKGF2 Y3R4LCBnbG9iYWxfd29yaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvdXRwdXQsIHBsYW5lLCAwKTsKKyAgICAgICAgaWYgKGVyciA8IDApCisg ICAgICAgICAgICBnb3RvIGZhaWw7CisKKyAgICAgICAgY2xlID0gY2xFbnF1ZXVlTkRSYW5nZUtl cm5lbChjdHgtPmNvbW1hbmRfcXVldWUsIGN0eC0+a2VybmVsLCAyLCBOVUxMLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93b3JrLCBOVUxMLCAwLCBOVUxMLCBO VUxMKTsKKyAgICAgICAgQ0xfRkFJTF9PTl9FUlJPUihBVkVSUk9SKEVJTyksICJGYWlsZWQgdG8g ZW5xdWV1ZSByZW1hcCBrZXJuZWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgcGxh bmUgJWQ6ICVkLlxuIiwgcGxhbmUsIGNsZSk7CisgICAgfQorCisgICAgY2xlID0gY2xGaW5pc2go Y3R4LT5jb21tYW5kX3F1ZXVlKTsKKyAgICBDTF9GQUlMX09OX0VSUk9SKEFWRVJST1IoRUlPKSwg IkZhaWxlZCB0byBmaW5pc2ggY29tbWFuZCBxdWV1ZTogJWQuXG4iLCBjbGUpOworCisgICAgZXJy ID0gYXZfZnJhbWVfY29weV9wcm9wcyhvdXRwdXQsIGlucHV0X21haW4pOworCisgICAgYXZfbG9n KGF2Y3R4LCBBVl9MT0dfREVCVUcsICJGaWx0ZXIgb3V0cHV0OiAlcywgJXV4JXUgKCUiUFJJZDY0 IikuXG4iLAorICAgICAgICAgICBhdl9nZXRfcGl4X2ZtdF9uYW1lKG91dHB1dC0+Zm9ybWF0KSwK KyAgICAgICAgICAgb3V0cHV0LT53aWR0aCwgb3V0cHV0LT5oZWlnaHQsIG91dHB1dC0+cHRzKTsK KworICAgIHJldHVybiBmZl9maWx0ZXJfZnJhbWUob3V0bGluaywgb3V0cHV0KTsKKworZmFpbDoK KyAgICBhdl9mcmFtZV9mcmVlKCZvdXRwdXQpOworICAgIHJldHVybiBlcnI7Cit9CisKK3N0YXRp YyBpbnQgY29uZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCit7CisgICAgQVZGaWx0 ZXJDb250ZXh0ICpjdHggPSBvdXRsaW5rLT5zcmM7CisgICAgUmVtYXBPcGVuQ0xDb250ZXh0ICpz ID0gY3R4LT5wcml2OworICAgIEFWRmlsdGVyTGluayAqc3JjbGluayA9IGN0eC0+aW5wdXRzWzBd OworICAgIEFWRmlsdGVyTGluayAqeGxpbmsgPSBjdHgtPmlucHV0c1sxXTsKKyAgICBBVkZpbHRl ckxpbmsgKnlsaW5rID0gY3R4LT5pbnB1dHNbMl07CisgICAgRkZGcmFtZVN5bmNJbiAqaW47Cisg ICAgaW50IHJldDsKKworICAgIGlmICh4bGluay0+dyAhPSB5bGluay0+dyB8fCB4bGluay0+aCAh PSB5bGluay0+aCkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJTZWNvbmQg aW5wdXQgbGluayAlcyBwYXJhbWV0ZXJzICIKKyAgICAgICAgICAgICAgICIoc2l6ZSAlZHglZCkg ZG8gbm90IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nICIKKyAgICAgICAgICAgICAgICJ0aGlyZCBp bnB1dCBsaW5rICVzIHBhcmFtZXRlcnMgKCVkeCVkKVxuIiwKKyAgICAgICAgICAgICAgIGN0eC0+ aW5wdXRfcGFkc1sxXS5uYW1lLCB4bGluay0+dywgeGxpbmstPmgsCisgICAgICAgICAgICAgICBj dHgtPmlucHV0X3BhZHNbMl0ubmFtZSwgeWxpbmstPncsIHlsaW5rLT5oKTsKKyAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBvdXRsaW5rLT53ID0geGxpbmstPnc7 CisgICAgb3V0bGluay0+aCA9IHhsaW5rLT5oOworICAgIG91dGxpbmstPnNhbXBsZV9hc3BlY3Rf cmF0aW8gPSBzcmNsaW5rLT5zYW1wbGVfYXNwZWN0X3JhdGlvOworICAgIG91dGxpbmstPmZyYW1l X3JhdGUgPSBzcmNsaW5rLT5mcmFtZV9yYXRlOworCisgICAgcmV0ID0gZmZfZnJhbWVzeW5jX2lu aXQoJnMtPmZzLCBjdHgsIDMpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4gcmV0 OworCisgICAgaW4gPSBzLT5mcy5pbjsKKyAgICBpblswXS50aW1lX2Jhc2UgPSBzcmNsaW5rLT50 aW1lX2Jhc2U7CisgICAgaW5bMV0udGltZV9iYXNlID0geGxpbmstPnRpbWVfYmFzZTsKKyAgICBp blsyXS50aW1lX2Jhc2UgPSB5bGluay0+dGltZV9iYXNlOworICAgIGluWzBdLnN5bmMgICA9IDI7 CisgICAgaW5bMF0uYmVmb3JlID0gRVhUX1NUT1A7CisgICAgaW5bMF0uYWZ0ZXIgID0gRVhUX1NU T1A7CisgICAgaW5bMV0uc3luYyAgID0gMTsKKyAgICBpblsxXS5iZWZvcmUgPSBFWFRfTlVMTDsK KyAgICBpblsxXS5hZnRlciAgPSBFWFRfSU5GSU5JVFk7CisgICAgaW5bMl0uc3luYyAgID0gMTsK KyAgICBpblsyXS5iZWZvcmUgPSBFWFRfTlVMTDsKKyAgICBpblsyXS5hZnRlciAgPSBFWFRfSU5G SU5JVFk7CisgICAgcy0+ZnMub3BhcXVlICAgPSBzOworICAgIHMtPmZzLm9uX2V2ZW50ID0gcmVt YXBfb3BlbmNsX3Byb2Nlc3NfZnJhbWU7CisKKyAgICByZXQgPSBmZl9mcmFtZXN5bmNfY29uZmln dXJlKCZzLT5mcyk7CisgICAgb3V0bGluay0+dGltZV9iYXNlID0gcy0+ZnMudGltZV9iYXNlOwor ICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgcy0+b2NmLm91dHB1 dF93aWR0aCAgPSBvdXRsaW5rLT53OworICAgIHMtPm9jZi5vdXRwdXRfaGVpZ2h0ID0gb3V0bGlu ay0+aDsKKworICAgIHJldHVybiBmZl9vcGVuY2xfZmlsdGVyX2NvbmZpZ19vdXRwdXQob3V0bGlu ayk7Cit9CisKK3N0YXRpYyBpbnQgYWN0aXZhdGUoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCit7Cisg ICAgUmVtYXBPcGVuQ0xDb250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIHJldHVybiBmZl9mcmFt ZXN5bmNfYWN0aXZhdGUoJnMtPmZzKTsKK30KKworc3RhdGljIGF2X2NvbGQgdm9pZCByZW1hcF9v cGVuY2xfdW5pbml0KEFWRmlsdGVyQ29udGV4dCAqYXZjdHgpCit7CisgICAgUmVtYXBPcGVuQ0xD b250ZXh0ICpjdHggPSBhdmN0eC0+cHJpdjsKKyAgICBjbF9pbnQgY2xlOworCisgICAgaWYgKGN0 eC0+a2VybmVsKSB7CisgICAgICAgIGNsZSA9IGNsUmVsZWFzZUtlcm5lbChjdHgtPmtlcm5lbCk7 CisgICAgICAgIGlmIChjbGUgIT0gQ0xfU1VDQ0VTUykKKyAgICAgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHJlbGVhc2UgIgorICAgICAgICAgICAgICAgICAg ICJrZXJuZWw6ICVkLlxuIiwgY2xlKTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5jb21tYW5kX3F1 ZXVlKSB7CisgICAgICAgIGNsZSA9IGNsUmVsZWFzZUNvbW1hbmRRdWV1ZShjdHgtPmNvbW1hbmRf cXVldWUpOworICAgICAgICBpZiAoY2xlICE9IENMX1NVQ0NFU1MpCisgICAgICAgICAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byByZWxlYXNlICIKKyAgICAgICAgICAg ICAgICAgICAiY29tbWFuZCBxdWV1ZTogJWQuXG4iLCBjbGUpOworICAgIH0KKworICAgIGZmX29w ZW5jbF9maWx0ZXJfdW5pbml0KGF2Y3R4KTsKKworICAgIGZmX2ZyYW1lc3luY191bmluaXQoJmN0 eC0+ZnMpOworfQorCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgcmVtYXBfb3BlbmNsX2lucHV0 c1tdID0geworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJzb3VyY2UiLAorICAgICAg ICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuY29uZmlnX3By b3BzID0gJmZmX29wZW5jbF9maWx0ZXJfY29uZmlnX2lucHV0LAorICAgIH0sCisgICAgeworICAg ICAgICAubmFtZSAgICAgICAgID0gInhtYXAiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZN RURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuY29uZmlnX3Byb3BzID0gJmZmX29wZW5jbF9maWx0 ZXJfY29uZmlnX2lucHV0LAorICAgIH0sCisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0g InltYXAiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAg ICAgICAuY29uZmlnX3Byb3BzID0gJmZmX29wZW5jbF9maWx0ZXJfY29uZmlnX2lucHV0LAorICAg IH0sCit9OworCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgcmVtYXBfb3BlbmNsX291dHB1dHNb XSA9IHsKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgICAgID0gImRlZmF1bHQiLAorICAgICAg ICAudHlwZSAgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAgICAgLmNvbmZpZ19w cm9wcyAgPSBjb25maWdfb3V0cHV0LAorICAgIH0sCit9OworCitjb25zdCBBVkZpbHRlciBmZl92 Zl9yZW1hcF9vcGVuY2wgPSB7CisgICAgLm5hbWUgICAgICAgICAgPSAicmVtYXBfb3BlbmNsIiwK KyAgICAuZGVzY3JpcHRpb24gICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJSZW1hcCBwaXhlbHMg dXNpbmcgT3BlbkNMLiIpLAorICAgIC5wcml2X3NpemUgICAgID0gc2l6ZW9mKFJlbWFwT3BlbkNM Q29udGV4dCksCisgICAgLmluaXQgICAgICAgICAgPSByZW1hcF9vcGVuY2xfaW5pdCwKKyAgICAu dW5pbml0ICAgICAgICA9IHJlbWFwX29wZW5jbF91bmluaXQsCisgICAgLmFjdGl2YXRlICAgICAg PSBhY3RpdmF0ZSwKKyAgICBGSUxURVJfSU5QVVRTKHJlbWFwX29wZW5jbF9pbnB1dHMpLAorICAg IEZJTFRFUl9PVVRQVVRTKHJlbWFwX29wZW5jbF9vdXRwdXRzKSwKKyAgICBGSUxURVJfU0lOR0xF X1BJWEZNVChBVl9QSVhfRk1UX09QRU5DTCksCisgICAgLnByaXZfY2xhc3MgICAgPSAmcmVtYXBf b3BlbmNsX2NsYXNzLAorICAgIC5mbGFnc19pbnRlcm5hbCAgPSBGRl9GSUxURVJfRkxBR19IV0ZS QU1FX0FXQVJFLAorfTsKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfb3BlbmNsLmMg Yi9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jCmluZGV4IDRmNGJkMTM0MDUuLjMyYWVjN2Qy MjggMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9od2NvbnRleHRfb3BlbmNsLmMKKysrIGIvbGliYXZ1 dGlsL2h3Y29udGV4dF9vcGVuY2wuYwpAQCAtMTQxMSw3ICsxNDExLDggQEAgc3RhdGljIGludCBv cGVuY2xfZ2V0X3BsYW5lX2Zvcm1hdChlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4Zm10LAogICAgICAg ICAvLyBUaGUgYml0cyBpbiBlYWNoIGNvbXBvbmVudCBtdXN0IGJlIHBhY2tlZCBpbiB0aGUKICAg ICAgICAgLy8gbW9zdC1zaWduaWZpY2FudC1iaXRzIG9mIHRoZSByZWxldmFudCBieXRlcy4KICAg ICAgICAgaWYgKGNvbXAtPnNoaWZ0ICsgY29tcC0+ZGVwdGggIT0gOCAmJgotICAgICAgICAgICAg Y29tcC0+c2hpZnQgKyBjb21wLT5kZXB0aCAhPSAxNikKKyAgICAgICAgICAgIGNvbXAtPnNoaWZ0 ICsgY29tcC0+ZGVwdGggIT0gMTYgJiYKKyAgICAgICAgICAgIGNvbXAtPnNoaWZ0ICsgY29tcC0+ ZGVwdGggIT0gMzIpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwogICAgICAg ICAvLyBUaGUgZGVwdGggbXVzdCBub3QgdmFyeSBiZXR3ZWVuIGNvbXBvbmVudHMuCiAgICAgICAg IGlmIChkZXB0aCAmJiBjb21wLT5kZXB0aCAhPSBkZXB0aCkKQEAgLTE0NTUsNiArMTQ1Niw4IEBA IHN0YXRpYyBpbnQgb3BlbmNsX2dldF9wbGFuZV9mb3JtYXQoZW51bSBBVlBpeGVsRm9ybWF0IHBp eGZtdCwKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoZGVwdGggPD0gMTYpCiAgICAgICAgICAg ICBpbWFnZV9mb3JtYXQtPmltYWdlX2NoYW5uZWxfZGF0YV90eXBlID0gQ0xfVU5PUk1fSU5UMTY7 CisgICAgICAgIGVsc2UgaWYgKGRlcHRoID09IDMyKQorICAgICAgICAgICAgaW1hZ2VfZm9ybWF0 LT5pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSA9IENMX0ZMT0FUOwogICAgICAgICBlbHNlCiAgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwogICAgIH0KLS0gCjIuMzYuMQoK --000000000000e8dc8e05e2ccb3a1 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". --000000000000e8dc8e05e2ccb3a1--