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 B035840E67 for ; Fri, 31 Dec 2021 17:45:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EED7068B058; Fri, 31 Dec 2021 19:45:28 +0200 (EET) Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3DA896808DF for ; Fri, 31 Dec 2021 19:45:23 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id b85so25616287qkc.1 for ; Fri, 31 Dec 2021 09:45:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:cc:to; bh=t1EXcYJ8mj+iTdy6fm2uO9pyP1bb6ET7emNuXTQDtXc=; b=KBEnlPsvhHMC+V+kvvcJ4VkwnmEG15zx4xPejtJGqv8sb28LFJmTNA8ZDfAXUDHFoC 90zCUhSZfWqzP6ZLXpCn7JltMWsiRaOkxnoJAiqp0fZqqetGuUw9ZaRFtDnjCTpl4zgD 83mkwmGxwZoNXLoSVCpMTfsqcmOYbbqDafAmotkMzgdHExmgdbaqw0bzDth8tC3nuNcC RWJQcXF1RK4PPAd5gFRltrnC1Y2NidT4t9c+qjUyQannQO7iHE98cfGrEF3/zU0Ej3FJ Lw2rW2BvoKh87WxOGk32ir09dWcvUFO/szo3UYZFek5IRc1Ltm4IqOyKK84UgbDT9NVm npXQ== X-Gm-Message-State: AOAM531EEBW00+GPNZQUf9gY5I0DT6HqvXrsi88QLpAoo2ktfYnm9SIL iuGfaRkPY/Xu9AzpThzb8RbPCq6oovnrQg== X-Google-Smtp-Source: ABdhPJwnDPdAdhNrdHEhe1+31euGz5LxbqaB+934ghB54UrfNt85sg+e06v2K+5dOWvIYuhIQLgdHw== X-Received: by 2002:a37:a483:: with SMTP id n125mr25461326qke.305.1640972721574; Fri, 31 Dec 2021 09:45:21 -0800 (PST) Received: from smtpclient.apple ([172.58.171.222]) by smtp.gmail.com with ESMTPSA id c25sm22759161qkp.31.2021.12.31.09.45.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 Dec 2021 09:45:21 -0800 (PST) From: Romain Beauxis Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.40.0.1.81\)) Message-Id: <0A27B227-B693-4B6B-834F-ADC51464C4F6@rastageeks.org> Date: Fri, 31 Dec 2021 11:45:19 -0600 To: ffmpeg-devel@ffmpeg.org X-Mailer: Apple Mail (2.3693.40.0.1.81) Subject: [FFmpeg-devel] [PATCH v8 3/3] libavdevice/avfoundation.m: Allow to select devices by unique ID 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 Cc: Thilo Borgmann , Aman Karmani Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: U2lnbmVkLW9mZi1ieTogUm9tYWluIEJlYXV4aXMgPHRvb3RzQHJhc3RhZ2Vla3Mub3JnPgrigJQK W1NvcnJ5IGZvciB0aGUgbm9pc2UgYnV0IGFuIGlzc3VlIGNhbWUgdXAgd2l0aCB0aGUgcHJldmlv dXMgc2V0XQoKVGhpcyBpcyB0aGUgdGhpcmQgcGF0Y2ggb2YgYSBzZXJpZXMgb2YgMyB0aGF0IGZp eCwgY2xlYW51cCBhbmQgZW5oYW5jZSB0aGUKYXZmb3VuZGF0aW9uIGltcGxlbWVudGF0aW9uIGZv ciBsaWJhdmRldmljZS4KClRoZXNlIHBhdGNoZXMgY29tZSBmcm9tIGFuIGFjdHVhbCB1c2VyLWZh Y2luZyBhcHBsaWNhdGlvbiByZWx5aW5nIG9uCmxpYmF2ZGV2aWNl4oCZcyBpbXBsZW1lbnRhdGlv biBvZiBhdmZvdW5kYXRpb24gYXVkaW8gaW5wdXQuIFdpdGhvdXQgdGhlbSwKQXZmb3VuZGF0aW9u IGlzIHByYWN0aWNhbGx5IHVudXNhYmxlIGFzIGl0IHdpbGw6CiogUmVmdXNlIHRvIHByb2Nlc3Mg Y2VydGFpbiBzcGVjaWZpYyBhdWRpbyBpbnB1dCBmb3JtYXQgdGhhdCBhcmUgYWN0dWFsbHkKcmV0 dXJuZWQgYnkgdGhlIE9TIGZvciBzb21lIHVzZXJzIChwYWNrZWQgUENNIGF1ZGlvKQoqIERyb3Ag YXVkaW8gZnJhbWVzLCByZXN1bHRpbmcgaW4gY29ycnVwdGVkIGF1ZGlvIGlucHV0LiBUaGlzIG1p Z2h0IGhhdmUgYmVlbgp1bm5vdGljZWQgd2l0aCB2aWRlbyBmcmFtZXMgYnV0IHRoaXMgbWFrZXMg YXZmb3VuZGF0aW9uIGVzc2VudGlhbGx5IHVudXNhYmxlCmZvciBhdWRpby4KClRoZSBwYXRjaGVz IGFyZSBub3cgYmVpbmcgaW5jbHVkZWQgaW4gb3VyIHByb2R1Y3Rpb24gYnVpbGQgc28gdGhleSBh cmUgdGVzdGVkCmFuZCB1c2FibGUgaW4gcHJvZHVjdGlvbgoKQ2hhbmdlczoKdjI6IE5vbmUKdjM6 CiAgKiBTd2l0Y2hlZCB1bmlxdWUgSUQgdG8gdXNlIHN5c3RlbS1wcm9kdmlkZWQgdW5pcXVlIElE CiAgKiBJbXBsZW1lbnRlZCB1bmlxdWUgSURzIGZvciBzY3JlZW4gY2FwdHVyZQp2NDogQ2xlYW51 cAp2NTogRml4IGluZGVudGF0aW9uL3dyYXBwaW5nCnY2OiBOb25lCnY3OiBOb25lClY4OiBOb25l CgpUaGlzIHBhdGNoIGFkZHMgYSB1bmlxdWUgSUQgdG8gYXZmb3VuZGF0aW9uIGRldmljZXMuIFRo aXMgaXMgbmVlZGVkCmJlY2F1c2UgZGV2aWNlIGluZGV4IGNhbiBjaGFuZ2Ugd2hpbGUgdGhlIG1h Y2hpbmUgaXMgcnVubmluZyB3aGVuCmRldmljZXMgYXJlIHBsdWdnZWQgb3IgdW5wbHVnZ2VkIGFu ZCBkZXZpY2UgbmFtZXMgY2FuIGJlIHRyaWNreSB0byB1c2UKd2l0aCBsb2NhbGl6YXRpb24gYW5k IGV0Yy4KCkV4YW1wbGUgb2Ygb3V0cHV0OgouL2ZmbXBlZyAtZiBhdmZvdW5kYXRpb24gLWxpc3Rf ZGV2aWNlcyB0cnVlIC1pICIiClsuLi5dCltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1ODcwNTIz MF0gQVZGb3VuZGF0aW9uIHZpZGVvIGRldmljZXM6CltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1 ODcwNTIzMF0gWzBdIEZhY2VUaW1lIEhEIENhbWVyYSAoSUQ6IDQ3QjRCNjRCNzA2NzRCOUNBRDJC QUUyNzNBNzFGNEI1KQpbQVZGb3VuZGF0aW9uIGluZGV2IEAgMHgxNTg3MDUyMzBdIFsxXSBDYXB0 dXJlIHNjcmVlbiAwIChJRDogQXZmaWx0ZXJBdmZvdW5kYXRpb25DYXB0dXJlU2NyZWVuMSkKW0FW Rm91bmRhdGlvbiBpbmRldiBAIDB4MTU4NzA1MjMwXSBBVkZvdW5kYXRpb24gYXVkaW8gZGV2aWNl czoKW0FWRm91bmRhdGlvbiBpbmRldiBAIDB4MTU4NzA1MjMwXSBbMF0gTG9vcGJhY2sgQXVkaW8g KElEOiBjb20ucm9ndWVhbW9lYmEuTG9vcGJhY2suQTU2NjhCMzYtNzExRS00REY1LThBOEQtNzE0 ODUwOEM3MzVCKQpbQVZGb3VuZGF0aW9uIGluZGV2IEAgMHgxNTg3MDUyMzBdIFsxXSBNYWNCb29r IFBybyBNaWNyb3Bob25lIChJRDpCdWlsdEluTWljcm9waG9uZURldmljZSkKCk5vdGVzOgoqIFVu aXF1ZSBuYW1lcyBkbyBub3Qgc2VlbSB0byBmb2xsb3cgYW55IHNwZWNpZmljIHBhdHRlcm4uIEkg aGF2ZSB1c2VkCm9uZSBzaW1pbGFyIHRvIHRoZSBidWlsdGluIG1pY3JvcGhvbmUgZm9yIHNjcmVl biBjYXB0dXJlCiogVGhlIDogc3Vic3RpdHV0aW9uIGlzIGFjdHVhbGx5IHJlcXVpcmVkLiBUaGUg bG9vcGJhY2sgZGV2aWNlIGFib3ZlIGRpZApoYXZlIGl0IGluIGl0cyBuYW1lLgoKZG9jL2luZGV2 cy50ZXhpICAgICAgICAgICAgfCAgNiArKy0tCmxpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tIHwg NzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KMiBmaWxlcyBjaGFuZ2Vk LCA2MCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvaW5k ZXZzLnRleGkgYi9kb2MvaW5kZXZzLnRleGkKaW5kZXggOWQ4MDIwMzExYS4uODU4YzBmYTRlNCAx MDA2NDQKLS0tIGEvZG9jL2luZGV2cy50ZXhpCisrKyBiL2RvYy9pbmRldnMudGV4aQpAQCAtMTE0 LDcgKzExNCw3IEBAIFRoZSBpbnB1dCBmaWxlbmFtZSBoYXMgdG8gYmUgZ2l2ZW4gaW4gdGhlIGZv bGxvd2luZyBzeW50YXg6Ci1pICJbW1ZJREVPXTpbQVVESU9dXSIKQGVuZCBleGFtcGxlClRoZSBm aXJzdCBlbnRyeSBzZWxlY3RzIHRoZSB2aWRlbyBpbnB1dCB3aGlsZSB0aGUgbGF0dGVyIHNlbGVj dHMgdGhlIGF1ZGlvIGlucHV0LgotVGhlIHN0cmVhbSBoYXMgdG8gYmUgc3BlY2lmaWVkIGJ5IHRo ZSBkZXZpY2UgbmFtZSBvciB0aGUgZGV2aWNlIGluZGV4IGFzIHNob3duIGJ5IHRoZSBkZXZpY2Ug bGlzdC4KK1RoZSBzdHJlYW0gaGFzIHRvIGJlIHNwZWNpZmllZCBieSB0aGUgZGV2aWNlIG5hbWUs IGluZGV4IG9yIElEIGFzIHNob3duIGJ5IHRoZSBkZXZpY2UgbGlzdC4KQWx0ZXJuYXRpdmVseSwg dGhlIHZpZGVvIGFuZC9vciBhdWRpbyBpbnB1dCBkZXZpY2UgY2FuIGJlIGNob3NlbiBieSBpbmRl eCB1c2luZyB0aGUKQG9wdGlvbnsKICAgIC12aWRlb19kZXZpY2VfaW5kZXggPElOREVYPgpAQCAt MTI3LDcgKzEyNyw5IEBAIGFuZC9vcgpkZXZpY2UgbmFtZSBvciBpbmRleCBnaXZlbiBpbiB0aGUg aW5wdXQgZmlsZW5hbWUuCgpBbGwgYXZhaWxhYmxlIGRldmljZXMgY2FuIGJlIGVudW1lcmF0ZWQg YnkgdXNpbmcgQG9wdGlvbnstbGlzdF9kZXZpY2VzIHRydWV9LCBsaXN0aW5nCi1hbGwgZGV2aWNl IG5hbWVzIGFuZCBjb3JyZXNwb25kaW5nIGluZGljZXMuCithbGwgZGV2aWNlIG5hbWVzLCBjb3Jy ZXNwb25kaW5nIGluZGljZXMgYW5kIElEcywgd2hlbiBhdmFpbGFibGUuIERldmljZSBuYW1lIGNh biBiZSAKK3RyaWNreSB0byB1c2Ugd2hlbiBsb2NhbGl6ZWQgYW5kIGRldmljZSBpbmRleCBjYW4g Y2hhbmdlIHdoZW4gZGV2aWNlcyBhcmUgcGx1Z2dlZCBvciB1bnBsdWdnZWQuIEEgZGV2aWNlCito YXNoLCB3aGVuIGF2YWlsYWJsZSwgdW5pcXVlbHkgaWRlbnRpZmllcyBhIGRldmljZSBhbmQgc2hv dWxkIG5vdCBjaGFuZ2Ugb3ZlciB0aW1lLgoKVGhlcmUgYXJlIHR3byBkZXZpY2UgbmFtZSBhbGlh c2VzOgpAdGFibGUgQGNvZGUKZGlmZiAtLWdpdCBhL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5t IGIvbGliYXZkZXZpY2UvYXZmb3VuZGF0aW9uLm0KaW5kZXggMzZmOWZkYzUzZC4uZDA5YTgxY2Iz YiAxMDA2NDQKLS0tIGEvbGliYXZkZXZpY2UvYXZmb3VuZGF0aW9uLm0KKysrIGIvbGliYXZkZXZp Y2UvYXZmb3VuZGF0aW9uLm0KQEAgLTM5LDYgKzM5LDggQEAKI2luY2x1ZGUgImxpYmF2dXRpbC9p bWd1dGlscy5oIgojaW5jbHVkZSAiYXZkZXZpY2UuaCIKCisjZGVmaW5lIENMRUFOVVBfREVWSUNF X0lEKHMpIFtbcyBzdHJpbmdCeVJlcGxhY2luZ09jY3VycmVuY2VzT2ZTdHJpbmc6QCI6IiB3aXRo U3RyaW5nOkAiLiJdIFVURjhTdHJpbmddCisKI2RlZmluZSBhdl9sb2dfYXZmb3VuZGF0aW9uX2Vy cm9yKHMsIHN0ciwgZXJyKSBcCiAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJBdmZvdW5kYXRp b246ICVzLCAlc1xuIiwgc3RyLCBcCiAgICAgW1tbTlNFcnJvciBlcnJvcldpdGhEb21haW46TlNP U1N0YXR1c0Vycm9yRG9tYWluIGNvZGU6ZXJyIHVzZXJJbmZvOm5pbF0gbG9jYWxpemVkRGVzY3Jp cHRpb25dIFVURjhTdHJpbmddIFwKQEAgLTgxNSwyMSArODE3LDIzIEBAIHN0YXRpYyBpbnQgYXZm X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICBpbnQgaW5kZXggPSAwOwog ICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiQVZGb3VuZGF0aW9uIHZpZGVvIGRldmlj ZXM6XG4iKTsKICAgICAgICBmb3IgKEFWQ2FwdHVyZURldmljZSAqZGV2aWNlIGluIGRldmljZXMp IHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1l XSBVVEY4U3RyaW5nXTsKLSAgICAgICAgICAgIGluZGV4ICAgICAgICAgICAgPSBbZGV2aWNlcyBp bmRleE9mT2JqZWN0OmRldmljZV07Ci0gICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5G TywgIlslZF0gJXNcbiIsIGluZGV4LCBuYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUgICAgID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAg ICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVl SURdKTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgICAgICAgICAgID0gW2RldmljZXMgaW5kZXhP Zk9iamVjdDpkZXZpY2VdOworICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJb JWRdICVzIChJRDogJXMpXG4iLCBpbmRleCwgbmFtZSwgdW5pcXVlSWQpOwogICAgICAgIH0KICAg ICAgICBmb3IgKEFWQ2FwdHVyZURldmljZSAqZGV2aWNlIGluIGRldmljZXNfbXV4ZWQpIHsKLSAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4 U3RyaW5nXTsKLSAgICAgICAgICAgIGluZGV4ICAgICAgICAgICAgPSBbZGV2aWNlcyBjb3VudF0g KyBbZGV2aWNlc19tdXhlZCBpbmRleE9mT2JqZWN0OmRldmljZV07Ci0gICAgICAgICAgICBhdl9s b2coY3R4LCBBVl9MT0dfSU5GTywgIlslZF0gJXNcbiIsIGluZGV4LCBuYW1lKTsKKyAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUgICAgID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0 cmluZ107CisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNF X0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgICAgICAgICAg ID0gW2RldmljZXMgY291bnRdICsgW2RldmljZXNfbXV4ZWQgaW5kZXhPZk9iamVjdDpkZXZpY2Vd OworICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzIChJRDogJXMp XG4iLCBpbmRleCwgbmFtZSwgdW5pcXVlSWQpOwogICAgICAgIH0KI2lmICFUQVJHRVRfT1NfSVBI T05FICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgIGlm IChudW1fc2NyZWVucyA+IDApIHsKICAgICAgICAgICAgQ0dEaXJlY3REaXNwbGF5SUQgc2NyZWVu c1tudW1fc2NyZWVuc107CiAgICAgICAgICAgIENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3Nj cmVlbnMsIHNjcmVlbnMsICZudW1fc2NyZWVucyk7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgbnVtX3NjcmVlbnM7IGkrKykgewotICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19JTkZPLCAiWyVkXSBDYXB0dXJlIHNjcmVlbiAlZFxuIiwgY3R4LT5udW1fdmlkZW9fZGV2 aWNlcyArIGksIGkpOworICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAi WyVkXSBDYXB0dXJlIHNjcmVlbiAlZCAoSUQ6IEF2ZmlsdGVyQXZmb3VuZGF0aW9uQ2FwdHVyZVNj cmVlbiVkKVxuIiwgY3R4LT5udW1fdmlkZW9fZGV2aWNlcyArIGksIGksIHNjcmVlbnNbaV0pOwog ICAgICAgICAgICB9CiAgICAgICAgfQojZW5kaWYKQEAgLTgzNyw5ICs4NDEsMTAgQEAgc3RhdGlj IGludCBhdmZfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgIGF2X2xvZyhj dHgsIEFWX0xPR19JTkZPLCAiQVZGb3VuZGF0aW9uIGF1ZGlvIGRldmljZXM6XG4iKTsKICAgICAg ICBkZXZpY2VzID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VzV2l0aE1lZGlhVHlwZTpBVk1lZGlh VHlwZUF1ZGlvXTsKICAgICAgICBmb3IgKEFWQ2FwdHVyZURldmljZSAqZGV2aWNlIGluIGRldmlj ZXMpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWRO YW1lXSBVVEY4U3RyaW5nXTsKLSAgICAgICAgICAgIGludCBpbmRleCAgPSBbZGV2aWNlcyBpbmRl eE9mT2JqZWN0OmRldmljZV07Ci0gICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywg IlslZF0gJXNcbiIsIGluZGV4LCBuYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg ICAgID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAgICBj b25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURd KTsKKyAgICAgICAgICAgIGludCBpbmRleCAgICAgICAgICAgID0gW2RldmljZXMgaW5kZXhPZk9i amVjdDpkZXZpY2VdOworICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRd ICVzIChJRDogJXMpXG4iLCBpbmRleCwgbmFtZSwgdW5pcXVlSWQpOwogICAgICAgIH0KICAgICAg ICAgZ290byBmYWlsOwogICAgfQpAQCAtOTAxLDE0ICs5MDYsMjkgQEAgc3RhdGljIGludCBhdmZf cmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAg Ly8gbG9va2luZyBmb3IgdmlkZW8gaW5wdXRzCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2Ug KmRldmljZSBpbiBkZXZpY2VzKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRl b19maWxlbmFtZSwgW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihj dHgtPnZpZGVvX2ZpbGVuYW1lKSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBb W2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3Ry bmNtcChjdHgtPnZpZGVvX2ZpbGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFt ZSkpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1 bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAg ICAgIGlmICghc3RybmNtcChjdHgtPnZpZGVvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0 eC0+dmlkZW9fZmlsZW5hbWUpKSkgewogICAgICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2 aWNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg ICAgLy8gbG9va2luZyBmb3IgbXV4ZWQgaW5wdXRzCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZp Y2UgKmRldmljZSBpbiBkZXZpY2VzX211eGVkKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAo Y3R4LT52aWRlb19maWxlbmFtZSwgW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10s IHN0cmxlbihjdHgtPnZpZGVvX2ZpbGVuYW1lKSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAg IGlmICghc3RybmNtcChjdHgtPnZpZGVvX2ZpbGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT52aWRl b19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOwor ICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9faXNfbXV4ZWQgPSAxOworICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJ ZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlm ICghc3RybmNtcChjdHgtPnZpZGVvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+dmlk ZW9fZmlsZW5hbWUpKSkgewogICAgICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOwog ICAgICAgICAgICAgICAgY3R4LT52aWRlb19pc19tdXhlZCA9IDE7CiAgICAgICAgICAgICAgICBi cmVhazsKQEAgLTkxOSwxMCArOTM5LDIzIEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFW Rm9ybWF0Q29udGV4dCAqcykKICAgICAgICAvLyBsb29raW5nIGZvciBzY3JlZW4gaW5wdXRzCiAg ICAgICAgaWYgKCF2aWRlb19kZXZpY2UpIHsKICAgICAgICAgICAgaW50IGlkeDsKKyAgICAgICAg ICAgIENHRGlyZWN0RGlzcGxheUlEIHNjcmVlbnNbbnVtX3NjcmVlbnNdOworICAgICAgICAgICAg Q0dHZXRBY3RpdmVEaXNwbGF5TGlzdChudW1fc2NyZWVucywgc2NyZWVucywgJm51bV9zY3JlZW5z KTsKKyAgICAgICAgICAgIEFWQ2FwdHVyZVNjcmVlbklucHV0KiBjYXB0dXJlX3NjcmVlbl9pbnB1 dCA9IE5VTEw7CisKICAgICAgICAgICAgaWYoc3NjYW5mKGN0eC0+dmlkZW9fZmlsZW5hbWUsICJD YXB0dXJlIHNjcmVlbiAlZCIsICZpZHgpICYmIGlkeCA8IG51bV9zY3JlZW5zKSB7Ci0gICAgICAg ICAgICAgICAgQ0dEaXJlY3REaXNwbGF5SUQgc2NyZWVuc1tudW1fc2NyZWVuc107Ci0gICAgICAg ICAgICAgICAgQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdChudW1fc2NyZWVucywgc2NyZWVucywgJm51 bV9zY3JlZW5zKTsKLSAgICAgICAgICAgICAgICBBVkNhcHR1cmVTY3JlZW5JbnB1dCogY2FwdHVy ZV9zY3JlZW5faW5wdXQgPSBbW1tBVkNhcHR1cmVTY3JlZW5JbnB1dCBhbGxvY10gaW5pdFdpdGhE aXNwbGF5SUQ6c2NyZWVuc1tpZHhdXSBhdXRvcmVsZWFzZV07CisgICAgICAgICAgICAgICAgY2Fw dHVyZV9zY3JlZW5faW5wdXQgPSBbW1tBVkNhcHR1cmVTY3JlZW5JbnB1dCBhbGxvY10gaW5pdFdp dGhEaXNwbGF5SUQ6c2NyZWVuc1tpZHhdXSBhdXRvcmVsZWFzZV07CisgICAgICAgICAgICB9CisK KyAgICAgICAgICAgIGlmKHNzY2FuZihjdHgtPnZpZGVvX2ZpbGVuYW1lLCAiQXZmaWx0ZXJBdmZv dW5kYXRpb25DYXB0dXJlU2NyZWVuJWQiLCAmaWR4KSkgeworICAgICAgICAgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbnVtX3NjcmVlbnM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBp ZiAoc2NyZWVuc1tpXSA9PSBpZHgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVf c2NyZWVuX2lucHV0ID0gW1tbQVZDYXB0dXJlU2NyZWVuSW5wdXQgYWxsb2NdIGluaXRXaXRoRGlz cGxheUlEOmlkeF0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2FwdHVyZV9zY3Jl ZW5faW5wdXQpIHsKICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IChBVkNhcHR1cmVEZXZp Y2UqKSBjYXB0dXJlX3NjcmVlbl9pbnB1dDsKICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9fZGV2 aWNlX2luZGV4ID0gY3R4LT5udW1fdmlkZW9fZGV2aWNlcyArIGlkeDsKICAgICAgICAgICAgICAg IGN0eC0+dmlkZW9faXNfc2NyZWVuID0gMTsKQEAgLTk3Myw3ICsxMDA2LDE0IEBAIHN0YXRpYyBp bnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICBOU0FycmF5ICpk ZXZpY2VzID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VzV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlw ZUF1ZGlvXTsKCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2Vz KSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT5hdWRpb19maWxlbmFtZSwgW1tkZXZp Y2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihjdHgtPmF1ZGlvX2ZpbGVuYW1l KSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWRO YW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPmF1ZGlvX2Zp bGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT5hdWRpb19maWxlbmFtZSkpKSB7CisgICAgICAgICAg ICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBf REVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChj dHgtPmF1ZGlvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+YXVkaW9fZmlsZW5hbWUp KSkgewogICAgICAgICAgICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOwogICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgIH0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4K