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 9142A40782 for ; Wed, 29 Jun 2022 19:33:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 736A468B672; Wed, 29 Jun 2022 22:33:22 +0300 (EEST) Received: from mail-yw1-f170.google.com (mail-yw1-f170.google.com [209.85.128.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 73CDC68B094 for ; Wed, 29 Jun 2022 22:33:15 +0300 (EEST) Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-31772f8495fso158346807b3.4 for ; Wed, 29 Jun 2022 12:33:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=VM+yRVeaNT2TaODusAJ2ar43Dj6wll4FtG6bv6r9BrM=; b=FNVaFjoCZ4iEz7tLT1Kc+U6pBZY1b4u8spfFaTFKlKkyhS9mUfPrT+2y/jLxLk0E2S 4STTWTkJG9uYghLVDvXhmq/rrny9uVpxnTdbgkhpNefsaEk+b6H82dlO7ZccOpA7zBcZ nIveEmwNZqilMWW8Q2jkTboxxQoENpP9+l4RV5uLw7zQ7ntOe/IiVenthHuoZgbVWSO4 5ZdX/8PmzUYcPP0YqutniwEei4T21qP3tcLKepPnFhgBfeJXQh3JHV2j5S/IpFOss+Ko wWcTUsAD5czwQtbcCWa/p2HChcIXuM0A8+b7WSd4MbUrU1sHyTHUFKY2IaF0QDMQpr0E cwhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=VM+yRVeaNT2TaODusAJ2ar43Dj6wll4FtG6bv6r9BrM=; b=yY0ri91Td/FjlXXMQGVfz2QJtOHOhcjcAbCDftZHYhHJXXmmw7248RvXoNtHPlNgQO Sp/m+aZp57x6UQrFA3WgX0TEFO8iQzxXifp3p/dDexvhJKGjzugJjVKAh3AgQ6zOmWuO DFCYKyjN3jmjLl+53sxxxieO4mmcUZ5DjIB8xQ2wm17Uu1XeRgkXXEPSaF+8B5sd3xcT D5QiYQQzYA23ul2h3whQbIZmkn/uayVuBjBkWW1Wqb9I1VTxG6hAdgaRce6VIDa67Yxv n8/6nlI04gW4hcVYIzhOaXWYUS28cEKjrDgLgPO7Vs4EYXQvsYyiBkbt9wp3rdNM+B+s snug== X-Gm-Message-State: AJIora920j5BKI8gKXYIiSM8Rg9UWpLWNauk2Jh3jKCIORH7Ps/iMie2 hbovRQNc3Gm5eE/Vp+0Z5AdCZ6hwVwHaHQCt3NMX1YaOfks= X-Google-Smtp-Source: AGRyM1tWmNj51qVzLQwwtGCGDQZuSUnRDsrdE6had2/Hq5ikdOEsGCrZrcYmyc7mxxay1dOjmATwtxftmAYzsx+m2xc= X-Received: by 2002:a81:1c06:0:b0:318:27ed:8d41 with SMTP id c6-20020a811c06000000b0031827ed8d41mr5623106ywc.221.1656531194130; Wed, 29 Jun 2022 12:33:14 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Wed, 29 Jun 2022 21:36:00 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000062d04a05e29b39b1" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [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: --00000000000062d04a05e29b39b1 Content-Type: text/plain; charset="UTF-8" Hello, patches attached. --00000000000062d04a05e29b39b1 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avutil-hwcontext_opencl-add-support-fro-FLOAT-format.patch" Content-Disposition: attachment; filename="0002-avutil-hwcontext_opencl-add-support-fro-FLOAT-format.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4zzyvx40 RnJvbSA4Nzg0MWM0NDY3OGY0ZWEyMDVlNGYyNTIxMzU5NmVmM2ViMDc0NGIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjkgSnVuIDIwMjIgMjE6MzI6NDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYXZ1 dGlsL2h3Y29udGV4dF9vcGVuY2w6IGFkZCBzdXBwb3J0IGZybyBGTE9BVCBmb3JtYXRzCgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogbGliYXZ1dGls L2h3Y29udGV4dF9vcGVuY2wuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X29w ZW5jbC5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9vcGVuY2wuYwppbmRleCA0ZjRiZDEzNDA1Li4z MmFlYzdkMjI4IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jCisrKyBi L2xpYmF2dXRpbC9od2NvbnRleHRfb3BlbmNsLmMKQEAgLTE0MTEsNyArMTQxMSw4IEBAIHN0YXRp YyBpbnQgb3BlbmNsX2dldF9wbGFuZV9mb3JtYXQoZW51bSBBVlBpeGVsRm9ybWF0IHBpeGZtdCwK ICAgICAgICAgLy8gVGhlIGJpdHMgaW4gZWFjaCBjb21wb25lbnQgbXVzdCBiZSBwYWNrZWQgaW4g dGhlCiAgICAgICAgIC8vIG1vc3Qtc2lnbmlmaWNhbnQtYml0cyBvZiB0aGUgcmVsZXZhbnQgYnl0 ZXMuCiAgICAgICAgIGlmIChjb21wLT5zaGlmdCArIGNvbXAtPmRlcHRoICE9IDggJiYKLSAgICAg ICAgICAgIGNvbXAtPnNoaWZ0ICsgY29tcC0+ZGVwdGggIT0gMTYpCisgICAgICAgICAgICBjb21w LT5zaGlmdCArIGNvbXAtPmRlcHRoICE9IDE2ICYmCisgICAgICAgICAgICBjb21wLT5zaGlmdCAr IGNvbXAtPmRlcHRoICE9IDMyKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsK ICAgICAgICAgLy8gVGhlIGRlcHRoIG11c3Qgbm90IHZhcnkgYmV0d2VlbiBjb21wb25lbnRzLgog ICAgICAgICBpZiAoZGVwdGggJiYgY29tcC0+ZGVwdGggIT0gZGVwdGgpCkBAIC0xNDU1LDYgKzE0 NTYsOCBAQCBzdGF0aWMgaW50IG9wZW5jbF9nZXRfcGxhbmVfZm9ybWF0KGVudW0gQVZQaXhlbEZv cm1hdCBwaXhmbXQsCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGRlcHRoIDw9IDE2KQogICAg ICAgICAgICAgaW1hZ2VfZm9ybWF0LT5pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSA9IENMX1VOT1JN X0lOVDE2OworICAgICAgICBlbHNlIGlmIChkZXB0aCA9PSAzMikKKyAgICAgICAgICAgIGltYWdl X2Zvcm1hdC0+aW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgPSBDTF9GTE9BVDsKICAgICAgICAgZWxz ZQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKICAgICB9Ci0tIAoyLjM2LjEK Cg== --00000000000062d04a05e29b39b1 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_l4zzyvzo1 RnJvbSAwMTFlYzFiOTI0YWRhZDBhNDZmZjAzNmViZWQxM2QyNGJjYTAzNGQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjkgSnVuIDIwMjIgMTk6MTI6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gYXZm aWx0ZXI6IGFkZCByZW1hcCBvcGVuY2wgZmlsdGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFo b2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgICAgICAg fCAgIDIgKwogbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jICAgICAgfCAgIDEgKwogbGliYXZmaWx0 ZXIvb3BlbmNsL3JlbWFwLmNsICAgfCAgMzkgKysrKwogbGliYXZmaWx0ZXIvb3BlbmNsX3NvdXJj ZS5oICAgfCAgIDEgKwogbGliYXZmaWx0ZXIvdmZfcmVtYXBfb3BlbmNsLmMgfCAzMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAzNzIgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL29wZW5jbC9yZW1hcC5jbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3ZmX3JlbWFwX29wZW5jbC5jCgpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRlci9NYWtlZmlsZQppbmRleCBi OWNlMWE3MTViLi4zNjdlYjkyMDYzIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQor KysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQpAQCAtNDIxLDYgKzQyMSw4IEBAIE9CSlMtJChDT05G SUdfUkVBREVJQTYwOF9GSUxURVIpICAgICAgICAgICAgICs9IHZmX3JlYWRlaWE2MDgubwogT0JK Uy0kKENPTkZJR19SRUFEVklUQ19GSUxURVIpICAgICAgICAgICAgICAgKz0gdmZfcmVhZHZpdGMu bwogT0JKUy0kKENPTkZJR19SRUFMVElNRV9GSUxURVIpICAgICAgICAgICAgICAgKz0gZl9yZWFs dGltZS5vCiBPQkpTLSQoQ09ORklHX1JFTUFQX0ZJTFRFUikgICAgICAgICAgICAgICAgICArPSB2 Zl9yZW1hcC5vIGZyYW1lc3luYy5vCitPQkpTLSQoQ09ORklHX1JFTUFQX09QRU5DTF9GSUxURVIp ICAgICAgICAgICArPSB2Zl9yZW1hcF9vcGVuY2wubyBmcmFtZXN5bmMubyBvcGVuY2wubyBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuY2wvcmVt YXAubwogT0JKUy0kKENPTkZJR19SRU1PVkVHUkFJTl9GSUxURVIpICAgICAgICAgICAgKz0gdmZf cmVtb3ZlZ3JhaW4ubwogT0JKUy0kKENPTkZJR19SRU1PVkVMT0dPX0ZJTFRFUikgICAgICAgICAg ICAgKz0gYmJveC5vIGxzd3N1dGlscy5vIGxhdmZ1dGlscy5vIHZmX3JlbW92ZWxvZ28ubwogT0JK Uy0kKENPTkZJR19SRVBFQVRGSUVMRFNfRklMVEVSKSAgICAgICAgICAgKz0gdmZfcmVwZWF0Zmll bGRzLm8KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyBiL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYwppbmRleCAwMTUyYWNiYjgxLi4wNWYwZmE4NWRiIDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKKysrIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCkBA IC00MDAsNiArNDAwLDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX3JlYWRlaWE2MDg7 CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVhZHZpdGM7CiBleHRlcm4gY29uc3QgQVZG aWx0ZXIgZmZfdmZfcmVhbHRpbWU7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVtYXA7 CitleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVtYXBfb3BlbmNsOwogZXh0ZXJuIGNvbnN0 IEFWRmlsdGVyIGZmX3ZmX3JlbW92ZWdyYWluOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3Zm X3JlbW92ZWxvZ287CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfcmVwZWF0ZmllbGRzOwpk aWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvb3BlbmNsL3JlbWFwLmNsIGIvbGliYXZmaWx0ZXIvb3Bl bmNsL3JlbWFwLmNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg4NTFj ZGM0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRlci9vcGVuY2wvcmVtYXAuY2wKQEAg LTAsMCArMSwzOSBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisg KiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCitj b25zdCBzYW1wbGVyX3QgbGluZWFyX3NhbXBsZXIgPSAoQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZB TFNFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEtfRklMVEVSX0xJTkVB Uik7CisKK2NvbnN0IHNhbXBsZXJfdCBuZWFyZXN0X3NhbXBsZXIgPSAoQ0xLX05PUk1BTElaRURf Q09PUkRTX0ZBTFNFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xLX0ZJ TFRFUl9ORUFSRVNUKTsKKworX19rZXJuZWwgdm9pZCByZW1hcChfX3dyaXRlX29ubHkgaW1hZ2Uy ZF90IGRzdCwKKyAgICAgICAgICAgICAgICAgICAgX19yZWFkX29ubHkgIGltYWdlMmRfdCBzcmMs CisgICAgICAgICAgICAgICAgICAgIF9fcmVhZF9vbmx5ICBpbWFnZTJkX3QgeG1hcGksCisgICAg ICAgICAgICAgICAgICAgIF9fcmVhZF9vbmx5ICBpbWFnZTJkX3QgeW1hcGkpCit7CisgICAgaW50 MiBwID0gKGludDIpKGdldF9nbG9iYWxfaWQoMCksIGdldF9nbG9iYWxfaWQoMSkpOworCisgICAg ZmxvYXQ0IHhtYXAgPSByZWFkX2ltYWdlZih4bWFwaSwgbmVhcmVzdF9zYW1wbGVyLCBwKTsKKyAg ICBmbG9hdDQgeW1hcCA9IHJlYWRfaW1hZ2VmKHltYXBpLCBuZWFyZXN0X3NhbXBsZXIsIHApOwor ICAgIGZsb2F0MiBwb3MgID0gKGZsb2F0MikoeG1hcC54LCB5bWFwLngpOworICAgIHBvcy54eSA9 IHBvcy54eSAqIDY1NTM1LmY7CisgICAgZmxvYXQ0IHZhbCAgPSByZWFkX2ltYWdlZihzcmMsIGxp bmVhcl9zYW1wbGVyLCBwb3MpOworCisgICAgd3JpdGVfaW1hZ2VmKGRzdCwgcCwgdmFsKTsKK30K ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL29wZW5jbF9zb3VyY2UuaCBiL2xpYmF2ZmlsdGVyL29w ZW5jbF9zb3VyY2UuaAppbmRleCA3ZTgxMzMwOTBlLi45ZWFjMmRjNTE2IDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci9vcGVuY2xfc291cmNlLmgKKysrIGIvbGliYXZmaWx0ZXIvb3BlbmNsX3NvdXJj ZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpmZl9vcGVuY2xfc291cmNl X25laWdoYm9yOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmZmX29wZW5jbF9zb3VyY2VfbmxtZWFuczsK IGV4dGVybiBjb25zdCBjaGFyICpmZl9vcGVuY2xfc291cmNlX292ZXJsYXk7CiBleHRlcm4gY29u c3QgY2hhciAqZmZfb3BlbmNsX3NvdXJjZV9wYWQ7CitleHRlcm4gY29uc3QgY2hhciAqZmZfb3Bl bmNsX3NvdXJjZV9yZW1hcDsKIGV4dGVybiBjb25zdCBjaGFyICpmZl9vcGVuY2xfc291cmNlX3Rv bmVtYXA7CiBleHRlcm4gY29uc3QgY2hhciAqZmZfb3BlbmNsX3NvdXJjZV90cmFuc3Bvc2U7CiBl eHRlcm4gY29uc3QgY2hhciAqZmZfb3BlbmNsX3NvdXJjZV91bnNoYXJwOwpkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvdmZfcmVtYXBfb3BlbmNsLmMgYi9saWJhdmZpbHRlci92Zl9yZW1hcF9vcGVu Y2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMjgyYjZiNGQwCi0t LSAvZGV2L251bGwKKysrIGIvbGliYXZmaWx0ZXIvdmZfcmVtYXBfb3BlbmNsLmMKQEAgLTAsMCAr MSwzMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgUGF1bCBCIE1haG9sCisgKgorICog VGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGlj ZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvY29s b3JzcGFjZS5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1ZGUgImxp YmF2dXRpbC9waXhkZXNjLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgorI2luY2x1ZGUg ImF2ZmlsdGVyLmgiCisjaW5jbHVkZSAiZHJhd3V0aWxzLmgiCisjaW5jbHVkZSAiZm9ybWF0cy5o IgorI2luY2x1ZGUgImZyYW1lc3luYy5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVk ZSAib3BlbmNsLmgiCisjaW5jbHVkZSAib3BlbmNsX3NvdXJjZS5oIgorI2luY2x1ZGUgInZpZGVv LmgiCisKK3R5cGVkZWYgc3RydWN0IFJlbWFwT3BlbkNMQ29udGV4dCB7CisgICAgT3BlbkNMRmls dGVyQ29udGV4dCBvY2Y7CisKKyAgICBpbnQgbmJfcGxhbmVzOworICAgIGludCBuYl9jb21wb25l bnRzOworICAgIHVpbnQ4X3QgZmlsbF9yZ2JhWzRdOworICAgIGludCBmaWxsX2NvbG9yWzRdOwor CisgICAgaW50ICAgICAgICAgICAgICBpbml0aWFsaXNlZDsKKyAgICBjbF9rZXJuZWwgICAgICAg IGtlcm5lbDsKKyAgICBjbF9jb21tYW5kX3F1ZXVlIGNvbW1hbmRfcXVldWU7CisKKyAgICBGRkZy YW1lU3luYyBmczsKK30gUmVtYXBPcGVuQ0xDb250ZXh0OworCisjZGVmaW5lIE9GRlNFVCh4KSBv ZmZzZXRvZihSZW1hcE9wZW5DTENvbnRleHQsIHgpCisjZGVmaW5lIEZMQUdTIEFWX09QVF9GTEFH X0ZJTFRFUklOR19QQVJBTXxBVl9PUFRfRkxBR19WSURFT19QQVJBTQorCitzdGF0aWMgY29uc3Qg QVZPcHRpb24gcmVtYXBfb3BlbmNsX29wdGlvbnNbXSA9IHsKKyAgICB7ICJmaWxsIiwgInNldCB0 aGUgY29sb3Igb2YgdGhlIHVubWFwcGVkIHBpeGVscyIsIE9GRlNFVChmaWxsX3JnYmEpLCBBVl9P UFRfVFlQRV9DT0xPUiwgey5zdHI9ImJsYWNrIn0sIC5mbGFncyA9IEZMQUdTIH0sCisgICAgeyBO VUxMIH0KK307CisKK0FWRklMVEVSX0RFRklORV9DTEFTUyhyZW1hcF9vcGVuY2wpOworCitzdGF0 aWMgYXZfY29sZCBpbnQgcmVtYXBfb3BlbmNsX2luaXQoQVZGaWx0ZXJDb250ZXh0ICphdmN0eCkK K3sKKyAgICByZXR1cm4gZmZfb3BlbmNsX2ZpbHRlcl9pbml0KGF2Y3R4KTsKK30KKworc3RhdGlj IGludCByZW1hcF9vcGVuY2xfbG9hZChBVkZpbHRlckNvbnRleHQgKmF2Y3R4LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGl4ZWxGb3JtYXQgbWFpbl9mb3JtYXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQaXhlbEZvcm1hdCB4bWFwX2Zvcm1hdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBpeGVsRm9ybWF0IHltYXBfZm9y bWF0KQoreworICAgIFJlbWFwT3BlbkNMQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXY7CisgICAg Y2xfaW50IGNsZTsKKyAgICBjb25zdCBjaGFyICpzb3VyY2UgPSBmZl9vcGVuY2xfc291cmNlX3Jl bWFwOworICAgIGNvbnN0IGNoYXIgKmtlcm5lbCA9ICJyZW1hcCI7CisgICAgY29uc3QgQVZQaXhG bXREZXNjcmlwdG9yICptYWluX2Rlc2MsICp4bWFwX2Rlc2MsICp5bWFwX2Rlc2M7CisgICAgaW50 IGVyciwgbWFpbl9wbGFuZXMsIHhtYXBfcGxhbmVzLCB5bWFwX3BsYW5lczsKKworICAgIG1haW5f ZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQobWFpbl9mb3JtYXQpOworICAgIHhtYXBfZGVzYyA9 IGF2X3BpeF9mbXRfZGVzY19nZXQoeG1hcF9mb3JtYXQpOworICAgIHltYXBfZGVzYyA9IGF2X3Bp eF9mbXRfZGVzY19nZXQoeW1hcF9mb3JtYXQpOworCisgICAgbWFpbl9wbGFuZXMgPSB4bWFwX3Bs YW5lcyA9IHltYXBfcGxhbmVzID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1haW5fZGVz Yy0+bmJfY29tcG9uZW50czsgaSsrKQorICAgICAgICBtYWluX3BsYW5lcyA9IEZGTUFYKG1haW5f cGxhbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fZGVzYy0+Y29tcFtpXS5w bGFuZSArIDEpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeG1hcF9kZXNjLT5uYl9jb21wb25l bnRzOyBpKyspCisgICAgICAgIHhtYXBfcGxhbmVzID0gRkZNQVgoeG1hcF9wbGFuZXMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeG1hcF9kZXNjLT5jb21wW2ldLnBsYW5lICsgMSk7Cisg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB5bWFwX2Rlc2MtPm5iX2NvbXBvbmVudHM7IGkrKykKKyAg ICAgICAgeW1hcF9wbGFuZXMgPSBGRk1BWCh5bWFwX3BsYW5lcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB5bWFwX2Rlc2MtPmNvbXBbaV0ucGxhbmUgKyAxKTsKKworICAgIGN0eC0+bmJf cGxhbmVzID0gbWFpbl9wbGFuZXM7CisKKyAgICBlcnIgPSBmZl9vcGVuY2xfZmlsdGVyX2xvYWRf cHJvZ3JhbShhdmN0eCwgJnNvdXJjZSwgMSk7CisgICAgaWYgKGVyciA8IDApCisgICAgICAgIGdv dG8gZmFpbDsKKworICAgIGN0eC0+Y29tbWFuZF9xdWV1ZSA9IGNsQ3JlYXRlQ29tbWFuZFF1ZXVl KGN0eC0+b2NmLmh3Y3R4LT5jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGN0eC0+b2NmLmh3Y3R4LT5kZXZpY2VfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgJmNsZSk7CisgICAgQ0xfRkFJTF9P Tl9FUlJPUihBVkVSUk9SKEVJTyksICJGYWlsZWQgdG8gY3JlYXRlIE9wZW5DTCAiCisgICAgICAg ICAgICAgICAgICAgICAiY29tbWFuZCBxdWV1ZSAlZC5cbiIsIGNsZSk7CisKKyAgICBjdHgtPmtl cm5lbCA9IGNsQ3JlYXRlS2VybmVsKGN0eC0+b2NmLnByb2dyYW0sIGtlcm5lbCwgJmNsZSk7Cisg ICAgQ0xfRkFJTF9PTl9FUlJPUihBVkVSUk9SKEVJTyksICJGYWlsZWQgdG8gY3JlYXRlIGtlcm5l bCAlZC5cbiIsIGNsZSk7CisKKyAgICBjdHgtPmluaXRpYWxpc2VkID0gMTsKKyAgICByZXR1cm4g MDsKKworZmFpbDoKKyAgICBpZiAoY3R4LT5jb21tYW5kX3F1ZXVlKQorICAgICAgICBjbFJlbGVh c2VDb21tYW5kUXVldWUoY3R4LT5jb21tYW5kX3F1ZXVlKTsKKyAgICBpZiAoY3R4LT5rZXJuZWwp CisgICAgICAgIGNsUmVsZWFzZUtlcm5lbChjdHgtPmtlcm5lbCk7CisgICAgcmV0dXJuIGVycjsK K30KKworc3RhdGljIGludCByZW1hcF9vcGVuY2xfcHJvY2Vzc19mcmFtZShGRkZyYW1lU3luYyAq ZnMpCit7CisgICAgQVZGaWx0ZXJDb250ZXh0ICphdmN0eCA9IGZzLT5wYXJlbnQ7CisgICAgQVZG aWx0ZXJMaW5rICpvdXRsaW5rID0gYXZjdHgtPm91dHB1dHNbMF07CisgICAgUmVtYXBPcGVuQ0xD b250ZXh0ICpjdHggPSBhdmN0eC0+cHJpdjsKKyAgICBBVkZyYW1lICppbnB1dF9tYWluLCAqaW5w dXRfeG1hcCwgKmlucHV0X3ltYXA7CisgICAgQVZGcmFtZSAqb3V0cHV0OworICAgIGNsX21lbSBt ZW07CisgICAgY2xfaW50IGNsZTsKKyAgICBzaXplX3QgZ2xvYmFsX3dvcmtbMl07CisgICAgaW50 IGtlcm5lbF9hcmcgPSAwOworICAgIGludCBlcnIsIHBsYW5lOworCisgICAgZXJyID0gZmZfZnJh bWVzeW5jX2dldF9mcmFtZShmcywgMCwgJmlucHV0X21haW4sIDApOworICAgIGlmIChlcnIgPCAw KQorICAgICAgICByZXR1cm4gZXJyOworICAgIGVyciA9IGZmX2ZyYW1lc3luY19nZXRfZnJhbWUo ZnMsIDEsICZpbnB1dF94bWFwLCAwKTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJu IGVycjsKKyAgICBlcnIgPSBmZl9mcmFtZXN5bmNfZ2V0X2ZyYW1lKGZzLCAyLCAmaW5wdXRfeW1h cCwgMCk7CisgICAgaWYgKGVyciA8IDApCisgICAgICAgIHJldHVybiBlcnI7CisKKyAgICBpZiAo IWN0eC0+aW5pdGlhbGlzZWQpIHsKKyAgICAgICAgQVZIV0ZyYW1lc0NvbnRleHQgKm1haW5fZmMg PQorICAgICAgICAgICAoQVZIV0ZyYW1lc0NvbnRleHQqKWlucHV0X21haW4tPmh3X2ZyYW1lc19j dHgtPmRhdGE7CisgICAgICAgIEFWSFdGcmFtZXNDb250ZXh0ICp4bWFwX2ZjID0KKyAgICAgICAg ICAgIChBVkhXRnJhbWVzQ29udGV4dCopaW5wdXRfeG1hcC0+aHdfZnJhbWVzX2N0eC0+ZGF0YTsK KyAgICAgICAgQVZIV0ZyYW1lc0NvbnRleHQgKnltYXBfZmMgPQorICAgICAgICAgICAgKEFWSFdG cmFtZXNDb250ZXh0KilpbnB1dF95bWFwLT5od19mcmFtZXNfY3R4LT5kYXRhOworCisgICAgICAg IGVyciA9IHJlbWFwX29wZW5jbF9sb2FkKGF2Y3R4LCBtYWluX2ZjLT5zd19mb3JtYXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtYXBfZmMtPnN3X2Zvcm1hdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeW1hcF9mYy0+c3dfZm9ybWF0KTsKKyAgICAgICAgaWYg KGVyciA8IDApCisgICAgICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAgIG91dHB1dCA9 IGZmX2dldF92aWRlb19idWZmZXIob3V0bGluaywgb3V0bGluay0+dywgb3V0bGluay0+aCk7Cisg ICAgaWYgKCFvdXRwdXQpIHsKKyAgICAgICAgZXJyID0gQVZFUlJPUihFTk9NRU0pOworICAgICAg ICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgZm9yIChwbGFuZSA9IDA7IHBsYW5lIDwgY3R4LT5u Yl9wbGFuZXM7IHBsYW5lKyspIHsKKyAgICAgICAga2VybmVsX2FyZyA9IDA7CisKKyAgICAgICAg bWVtID0gKGNsX21lbSlvdXRwdXQtPmRhdGFbcGxhbmVdOworICAgICAgICBDTF9TRVRfS0VSTkVM X0FSRyhjdHgtPmtlcm5lbCwga2VybmVsX2FyZywgY2xfbWVtLCAmbWVtKTsKKyAgICAgICAga2Vy bmVsX2FyZysrOworCisgICAgICAgIG1lbSA9IChjbF9tZW0paW5wdXRfbWFpbi0+ZGF0YVtwbGFu ZV07CisgICAgICAgIENMX1NFVF9LRVJORUxfQVJHKGN0eC0+a2VybmVsLCBrZXJuZWxfYXJnLCBj bF9tZW0sICZtZW0pOworICAgICAgICBrZXJuZWxfYXJnKys7CisKKyAgICAgICAgbWVtID0gKGNs X21lbSlpbnB1dF94bWFwLT5kYXRhWzBdOworICAgICAgICBDTF9TRVRfS0VSTkVMX0FSRyhjdHgt Pmtlcm5lbCwga2VybmVsX2FyZywgY2xfbWVtLCAmbWVtKTsKKyAgICAgICAga2VybmVsX2FyZysr OworCisgICAgICAgIG1lbSA9IChjbF9tZW0paW5wdXRfeW1hcC0+ZGF0YVswXTsKKyAgICAgICAg Q0xfU0VUX0tFUk5FTF9BUkcoY3R4LT5rZXJuZWwsIGtlcm5lbF9hcmcsIGNsX21lbSwgJm1lbSk7 CisgICAgICAgIGtlcm5lbF9hcmcrKzsKKworICAgICAgICBlcnIgPSBmZl9vcGVuY2xfZmlsdGVy X3dvcmtfc2l6ZV9mcm9tX2ltYWdlKGF2Y3R4LCBnbG9iYWxfd29yaywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIHBsYW5lLCAwKTsK KyAgICAgICAgaWYgKGVyciA8IDApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisKKyAgICAgICAg Y2xlID0gY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbChjdHgtPmNvbW1hbmRfcXVldWUsIGN0eC0+a2Vy bmVsLCAyLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2Jh bF93b3JrLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgQ0xfRkFJTF9PTl9FUlJPUihB VkVSUk9SKEVJTyksICJGYWlsZWQgdG8gZW5xdWV1ZSByZW1hcCBrZXJuZWwgIgorICAgICAgICAg ICAgICAgICAgICAgICAgICJmb3IgcGxhbmUgJWQ6ICVkLlxuIiwgcGxhbmUsIGNsZSk7CisgICAg fQorCisgICAgY2xlID0gY2xGaW5pc2goY3R4LT5jb21tYW5kX3F1ZXVlKTsKKyAgICBDTF9GQUlM X09OX0VSUk9SKEFWRVJST1IoRUlPKSwgIkZhaWxlZCB0byBmaW5pc2ggY29tbWFuZCBxdWV1ZTog JWQuXG4iLCBjbGUpOworCisgICAgZXJyID0gYXZfZnJhbWVfY29weV9wcm9wcyhvdXRwdXQsIGlu cHV0X21haW4pOworCisgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJGaWx0ZXIgb3V0 cHV0OiAlcywgJXV4JXUgKCUiUFJJZDY0IikuXG4iLAorICAgICAgICAgICBhdl9nZXRfcGl4X2Zt dF9uYW1lKG91dHB1dC0+Zm9ybWF0KSwKKyAgICAgICAgICAgb3V0cHV0LT53aWR0aCwgb3V0cHV0 LT5oZWlnaHQsIG91dHB1dC0+cHRzKTsKKworICAgIHJldHVybiBmZl9maWx0ZXJfZnJhbWUob3V0 bGluaywgb3V0cHV0KTsKKworZmFpbDoKKyAgICBhdl9mcmFtZV9mcmVlKCZvdXRwdXQpOworICAg IHJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX291dHB1dChBVkZpbHRlckxpbmsg Km91dGxpbmspCit7CisgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggPSBvdXRsaW5rLT5zcmM7Cisg ICAgUmVtYXBPcGVuQ0xDb250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIEFWRmlsdGVyTGluayAq c3JjbGluayA9IGN0eC0+aW5wdXRzWzBdOworICAgIEFWRmlsdGVyTGluayAqeGxpbmsgPSBjdHgt PmlucHV0c1sxXTsKKyAgICBBVkZpbHRlckxpbmsgKnlsaW5rID0gY3R4LT5pbnB1dHNbMl07Cisg ICAgRkZGcmFtZVN5bmNJbiAqaW47CisgICAgaW50IHJldDsKKworICAgIHJldCA9IGZmX29wZW5j bF9maWx0ZXJfY29uZmlnX291dHB1dChvdXRsaW5rKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAg ICAgcmV0dXJuIHJldDsKKworICAgIGlmICh4bGluay0+dyAhPSB5bGluay0+dyB8fCB4bGluay0+ aCAhPSB5bGluay0+aCkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJTZWNv bmQgaW5wdXQgbGluayAlcyBwYXJhbWV0ZXJzICIKKyAgICAgICAgICAgICAgICIoc2l6ZSAlZHgl ZCkgZG8gbm90IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nICIKKyAgICAgICAgICAgICAgICJ0aGly ZCBpbnB1dCBsaW5rICVzIHBhcmFtZXRlcnMgKCVkeCVkKVxuIiwKKyAgICAgICAgICAgICAgIGN0 eC0+aW5wdXRfcGFkc1sxXS5uYW1lLCB4bGluay0+dywgeGxpbmstPmgsCisgICAgICAgICAgICAg ICBjdHgtPmlucHV0X3BhZHNbMl0ubmFtZSwgeWxpbmstPncsIHlsaW5rLT5oKTsKKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBvdXRsaW5rLT53ID0geGxpbmst Pnc7CisgICAgb3V0bGluay0+aCA9IHhsaW5rLT5oOworICAgIG91dGxpbmstPnNhbXBsZV9hc3Bl Y3RfcmF0aW8gPSBzcmNsaW5rLT5zYW1wbGVfYXNwZWN0X3JhdGlvOworICAgIG91dGxpbmstPmZy YW1lX3JhdGUgPSBzcmNsaW5rLT5mcmFtZV9yYXRlOworCisgICAgcmV0ID0gZmZfZnJhbWVzeW5j X2luaXQoJnMtPmZzLCBjdHgsIDMpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4g cmV0OworCisgICAgaW4gPSBzLT5mcy5pbjsKKyAgICBpblswXS50aW1lX2Jhc2UgPSBzcmNsaW5r LT50aW1lX2Jhc2U7CisgICAgaW5bMV0udGltZV9iYXNlID0geGxpbmstPnRpbWVfYmFzZTsKKyAg ICBpblsyXS50aW1lX2Jhc2UgPSB5bGluay0+dGltZV9iYXNlOworICAgIGluWzBdLnN5bmMgICA9 IDI7CisgICAgaW5bMF0uYmVmb3JlID0gRVhUX1NUT1A7CisgICAgaW5bMF0uYWZ0ZXIgID0gRVhU X1NUT1A7CisgICAgaW5bMV0uc3luYyAgID0gMTsKKyAgICBpblsxXS5iZWZvcmUgPSBFWFRfTlVM TDsKKyAgICBpblsxXS5hZnRlciAgPSBFWFRfSU5GSU5JVFk7CisgICAgaW5bMl0uc3luYyAgID0g MTsKKyAgICBpblsyXS5iZWZvcmUgPSBFWFRfTlVMTDsKKyAgICBpblsyXS5hZnRlciAgPSBFWFRf SU5GSU5JVFk7CisgICAgcy0+ZnMub3BhcXVlICAgPSBzOworICAgIHMtPmZzLm9uX2V2ZW50ID0g cmVtYXBfb3BlbmNsX3Byb2Nlc3NfZnJhbWU7CisKKyAgICByZXQgPSBmZl9mcmFtZXN5bmNfY29u ZmlndXJlKCZzLT5mcyk7CisgICAgb3V0bGluay0+dGltZV9iYXNlID0gcy0+ZnMudGltZV9iYXNl OworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhY3RpdmF0ZShBVkZpbHRlckNv bnRleHQgKmN0eCkKK3sKKyAgICBSZW1hcE9wZW5DTENvbnRleHQgKnMgPSBjdHgtPnByaXY7Cisg ICAgcmV0dXJuIGZmX2ZyYW1lc3luY19hY3RpdmF0ZSgmcy0+ZnMpOworfQorCitzdGF0aWMgYXZf Y29sZCB2b2lkIHJlbWFwX29wZW5jbF91bmluaXQoQVZGaWx0ZXJDb250ZXh0ICphdmN0eCkKK3sK KyAgICBSZW1hcE9wZW5DTENvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2OworICAgIGNsX2ludCBj bGU7CisKKyAgICBpZiAoY3R4LT5rZXJuZWwpIHsKKyAgICAgICAgY2xlID0gY2xSZWxlYXNlS2Vy bmVsKGN0eC0+a2VybmVsKTsKKyAgICAgICAgaWYgKGNsZSAhPSBDTF9TVUNDRVNTKQorICAgICAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gcmVsZWFzZSAiCisg ICAgICAgICAgICAgICAgICAgImtlcm5lbDogJWQuXG4iLCBjbGUpOworICAgIH0KKworICAgIGlm IChjdHgtPmNvbW1hbmRfcXVldWUpIHsKKyAgICAgICAgY2xlID0gY2xSZWxlYXNlQ29tbWFuZFF1 ZXVlKGN0eC0+Y29tbWFuZF9xdWV1ZSk7CisgICAgICAgIGlmIChjbGUgIT0gQ0xfU1VDQ0VTUykK KyAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHJlbGVh c2UgIgorICAgICAgICAgICAgICAgICAgICJjb21tYW5kIHF1ZXVlOiAlZC5cbiIsIGNsZSk7Cisg ICAgfQorCisgICAgZmZfb3BlbmNsX2ZpbHRlcl91bmluaXQoYXZjdHgpOworCisgICAgZmZfZnJh bWVzeW5jX3VuaW5pdCgmY3R4LT5mcyk7Cit9CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBy ZW1hcF9vcGVuY2xfaW5wdXRzW10gPSB7CisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0g InNvdXJjZSIsCisgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisg ICAgICAgIC5jb25maWdfcHJvcHMgPSAmZmZfb3BlbmNsX2ZpbHRlcl9jb25maWdfaW5wdXQsCisg ICAgfSwKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgICAgPSAieG1hcCIsCisgICAgICAgIC50 eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisgICAgICAgIC5jb25maWdfcHJvcHMg PSAmZmZfb3BlbmNsX2ZpbHRlcl9jb25maWdfaW5wdXQsCisgICAgfSwKKyAgICB7CisgICAgICAg IC5uYW1lICAgICAgICAgPSAieW1hcCIsCisgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1FRElB X1RZUEVfVklERU8sCisgICAgICAgIC5jb25maWdfcHJvcHMgPSAmZmZfb3BlbmNsX2ZpbHRlcl9j b25maWdfaW5wdXQsCisgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCByZW1h cF9vcGVuY2xfb3V0cHV0c1tdID0geworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICAgPSAi ZGVmYXVsdCIsCisgICAgICAgIC50eXBlICAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAor ICAgICAgICAuY29uZmlnX3Byb3BzICA9IGNvbmZpZ19vdXRwdXQsCisgICAgfSwKK307CisKK2Nv bnN0IEFWRmlsdGVyIGZmX3ZmX3JlbWFwX29wZW5jbCA9IHsKKyAgICAubmFtZSAgICAgICAgICA9 ICJyZW1hcF9vcGVuY2wiLAorICAgIC5kZXNjcmlwdGlvbiAgID0gTlVMTF9JRl9DT05GSUdfU01B TEwoIlJlbWFwIHBpeGVscyB1c2luZyBPcGVuQ0wuIiksCisgICAgLnByaXZfc2l6ZSAgICAgPSBz aXplb2YoUmVtYXBPcGVuQ0xDb250ZXh0KSwKKyAgICAuaW5pdCAgICAgICAgICA9IHJlbWFwX29w ZW5jbF9pbml0LAorICAgIC51bmluaXQgICAgICAgID0gcmVtYXBfb3BlbmNsX3VuaW5pdCwKKyAg ICAuYWN0aXZhdGUgICAgICA9IGFjdGl2YXRlLAorICAgIEZJTFRFUl9JTlBVVFMocmVtYXBfb3Bl bmNsX2lucHV0cyksCisgICAgRklMVEVSX09VVFBVVFMocmVtYXBfb3BlbmNsX291dHB1dHMpLAor ICAgIEZJTFRFUl9TSU5HTEVfUElYRk1UKEFWX1BJWF9GTVRfT1BFTkNMKSwKKyAgICAucHJpdl9j bGFzcyAgICA9ICZyZW1hcF9vcGVuY2xfY2xhc3MsCisgICAgLmZsYWdzX2ludGVybmFsICA9IEZG X0ZJTFRFUl9GTEFHX0hXRlJBTUVfQVdBUkUsCit9OwotLSAKMi4zNi4xCgo= --00000000000062d04a05e29b39b1 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". --00000000000062d04a05e29b39b1--