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 D941942711 for ; Thu, 6 Jan 2022 14:31:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 832E568A8D9; Thu, 6 Jan 2022 16:31:53 +0200 (EET) Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2DFDC68A7FD for ; Thu, 6 Jan 2022 16:31:47 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id kk22so2519749qvb.0 for ; Thu, 06 Jan 2022 06:31:47 -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=OoVBTQtBtKarobpm+NRx35CTx8FUeSrmvwba4r4qY0s=; b=2D94BTwmhp2GCrRkdiZEbv3yqCPOHHmliSFrGU0ixyl7TCAGLjSeZ+DiSllnVtvndH P/TZ/92MESfU3Awj1YLIUIGUgwN0xJ5ytY2Z9EMCjrOoxHBhr5+N7GPmWOEq/i2jHEEI puvXgJvpLa7e5gVflEthT5aUywRyLmCMhLuPjqIq9fidyv/YHLSMLBVCg+VoB8oceKgn 3qb6QrHg8ETvLJeSdWYu6ybuWY9wCF9qC+h1lk8nWiiANwZZZb6wcOXrcsHxaJafRDWe yRF3mSS2YFwzvRoFf/hnHE6YuVKlTjw2+1/t7iZChRXU/SOFWQkYVB3A1sr4AbS0KzeO a2NA== X-Gm-Message-State: AOAM5313Dh4ffNfkKlyKZmt2n4VwU89sgl2yczJJiMam7+xARh+Yz7FM 6hJkBTB264TqbndW7kFZy0atqIR0DhfkUg== X-Google-Smtp-Source: ABdhPJzQ1s1kviyLrP8bwomwBv1kOl6UmJiQq7051krivszLIBmWAuYnHiMc5zYrgdxLqH+KLQX8zg== X-Received: by 2002:a05:6214:29c1:: with SMTP id gh1mr53555270qvb.108.1641479505531; Thu, 06 Jan 2022 06:31:45 -0800 (PST) Received: from smtpclient.apple ([172.58.129.153]) by smtp.gmail.com with ESMTPSA id v5sm1673812qkp.126.2022.01.06.06.31.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jan 2022 06:31:45 -0800 (PST) From: Romain Beauxis Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.40.0.1.81\)) Message-Id: Date: Thu, 6 Jan 2022 08:31:42 -0600 To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3693.40.0.1.81) Subject: [FFmpeg-devel] [PATCH v9 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@mail.de, Aman Karmani , epirat07@gmail.com 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: U2lnbmVkLW9mZi1ieTogUm9tYWluIEJlYXV4aXMgPHRvb3RzQHJhc3RhZ2Vla3Mub3JnPgotLS0K VGhpcyBpcyB0aGUgdGhpcmQgcGF0Y2ggb2YgYSBzZXJpZXMgb2YgMyB0aGF0IGZpeCwgY2xlYW51 cCBhbmQgZW5oYW5jZSB0aGUKYXZmb3VuZGF0aW9uIGltcGxlbWVudGF0aW9uIGZvciBsaWJhdmRl dmljZS4KClRoZXNlIHBhdGNoZXMgY29tZSBmcm9tIGFuIGFjdHVhbCB1c2VyLWZhY2luZyBhcHBs aWNhdGlvbiByZWx5aW5nIG9uCmxpYmF2ZGV2aWNl4oCZcyBpbXBsZW1lbnRhdGlvbiBvZiBhdmZv dW5kYXRpb24gYXVkaW8gaW5wdXQuIFdpdGhvdXQgdGhlbSwKQXZmb3VuZGF0aW9uIGlzIHByYWN0 aWNhbGx5IHVudXNhYmxlIGFzIGl0IHdpbGw6CiogUmVmdXNlIHRvIHByb2Nlc3MgY2VydGFpbiBz cGVjaWZpYyBhdWRpbyBpbnB1dCBmb3JtYXQgdGhhdCBhcmUgYWN0dWFsbHkKcmV0dXJuZWQgYnkg dGhlIE9TIGZvciBzb21lIHVzZXJzIChwYWNrZWQgUENNIGF1ZGlvKQoqIERyb3AgYXVkaW8gZnJh bWVzLCByZXN1bHRpbmcgaW4gY29ycnVwdGVkIGF1ZGlvIGlucHV0LiBUaGlzIG1pZ2h0IGhhdmUg YmVlbgp1bm5vdGljZWQgd2l0aCB2aWRlbyBmcmFtZXMgYnV0IHRoaXMgbWFrZXMgYXZmb3VuZGF0 aW9uIGVzc2VudGlhbGx5IHVudXNhYmxlCmZvciBhdWRpby4KClRoZSBwYXRjaGVzIGFyZSBub3cg YmVpbmcgaW5jbHVkZWQgaW4gb3VyIHByb2R1Y3Rpb24gYnVpbGQgc28gdGhleSBhcmUgdGVzdGVk CmFuZCB1c2FibGUgaW4gcHJvZHVjdGlvbi4KCkNoYW5nZXM6CnYyOiBOb25lCnYzOgogKiBTd2l0 Y2hlZCB1bmlxdWUgSUQgdG8gdXNlIHN5c3RlbS1wcm9kdmlkZWQgdW5pcXVlIElECiAqIEltcGxl bWVudGVkIHVuaXF1ZSBJRHMgZm9yIHNjcmVlbiBjYXB0dXJlCnY0OiBDbGVhbnVwCnY1OiBGaXgg aW5kZW50YXRpb24vd3JhcHBpbmcKdjY6IE5vbmUKdjc6IE5vbmUKVjg6IE5vbmUKdjk6IE5vbmUK CmRvYy9pbmRldnMudGV4aSAgICAgICAgICAgIHwgIDYgKystLQpsaWJhdmRldmljZS9hdmZvdW5k YXRpb24ubSB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCjIgZmls ZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL2luZGV2cy50ZXhpIGIvZG9jL2luZGV2cy50ZXhpCmluZGV4IDlkODAyMDMxMWEuLjg1 OGMwZmE0ZTQgMTAwNjQ0Ci0tLSBhL2RvYy9pbmRldnMudGV4aQorKysgYi9kb2MvaW5kZXZzLnRl eGkKQEAgLTExNCw3ICsxMTQsNyBAQCBUaGUgaW5wdXQgZmlsZW5hbWUgaGFzIHRvIGJlIGdpdmVu IGluIHRoZSBmb2xsb3dpbmcgc3ludGF4OgotaSAiW1tWSURFT106W0FVRElPXV0iCkBlbmQgZXhh bXBsZQpUaGUgZmlyc3QgZW50cnkgc2VsZWN0cyB0aGUgdmlkZW8gaW5wdXQgd2hpbGUgdGhlIGxh dHRlciBzZWxlY3RzIHRoZSBhdWRpbyBpbnB1dC4KLVRoZSBzdHJlYW0gaGFzIHRvIGJlIHNwZWNp ZmllZCBieSB0aGUgZGV2aWNlIG5hbWUgb3IgdGhlIGRldmljZSBpbmRleCBhcyBzaG93biBieSB0 aGUgZGV2aWNlIGxpc3QuCitUaGUgc3RyZWFtIGhhcyB0byBiZSBzcGVjaWZpZWQgYnkgdGhlIGRl dmljZSBuYW1lLCBpbmRleCBvciBJRCBhcyBzaG93biBieSB0aGUgZGV2aWNlIGxpc3QuCkFsdGVy bmF0aXZlbHksIHRoZSB2aWRlbyBhbmQvb3IgYXVkaW8gaW5wdXQgZGV2aWNlIGNhbiBiZSBjaG9z ZW4gYnkgaW5kZXggdXNpbmcgdGhlCkBvcHRpb257CiAgICAtdmlkZW9fZGV2aWNlX2luZGV4IDxJ TkRFWD4KQEAgLTEyNyw3ICsxMjcsOSBAQCBhbmQvb3IKZGV2aWNlIG5hbWUgb3IgaW5kZXggZ2l2 ZW4gaW4gdGhlIGlucHV0IGZpbGVuYW1lLgoKQWxsIGF2YWlsYWJsZSBkZXZpY2VzIGNhbiBiZSBl bnVtZXJhdGVkIGJ5IHVzaW5nIEBvcHRpb257LWxpc3RfZGV2aWNlcyB0cnVlfSwgbGlzdGluZwot YWxsIGRldmljZSBuYW1lcyBhbmQgY29ycmVzcG9uZGluZyBpbmRpY2VzLgorYWxsIGRldmljZSBu YW1lcywgY29ycmVzcG9uZGluZyBpbmRpY2VzIGFuZCBJRHMsIHdoZW4gYXZhaWxhYmxlLiBEZXZp Y2UgbmFtZSBjYW4gYmUgCit0cmlja3kgdG8gdXNlIHdoZW4gbG9jYWxpemVkIGFuZCBkZXZpY2Ug aW5kZXggY2FuIGNoYW5nZSB3aGVuIGRldmljZXMgYXJlIHBsdWdnZWQgb3IgdW5wbHVnZ2VkLiBB IGRldmljZQoraGFzaCwgd2hlbiBhdmFpbGFibGUsIHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBkZXZp Y2UgYW5kIHNob3VsZCBub3QgY2hhbmdlIG92ZXIgdGltZS4KClRoZXJlIGFyZSB0d28gZGV2aWNl IG5hbWUgYWxpYXNlczoKQHRhYmxlIEBjb2RlCmRpZmYgLS1naXQgYS9saWJhdmRldmljZS9hdmZv dW5kYXRpb24ubSBiL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCmluZGV4IDVlZTE5ZjQ4NjMu LmM0YTQyNzI5NjUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCisrKyBi L2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCkBAIC00Niw2ICs0Niw4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBhdl9sb2dfYXZmb3VuZGF0aW9uKHZvaWQgKnMsIGludCBsdmwsIGNvbnN0IGNoYXIg KnN0ciwgT1NTdGF0CiAgW3Bvb2wgcmVsZWFzZV07Cn0KCisjZGVmaW5lIENMRUFOVVBfREVWSUNF X0lEKHMpIFtbcyBzdHJpbmdCeVJlcGxhY2luZ09jY3VycmVuY2VzT2ZTdHJpbmc6QCI6IiB3aXRo U3RyaW5nOkAiLiJdIFVURjhTdHJpbmddCisKc3RhdGljIGNvbnN0IGludCBhdmZfdGltZV9iYXNl ID0gMTAwMDAwMDsKCnN0YXRpYyBjb25zdCBBVlJhdGlvbmFsIGF2Zl90aW1lX2Jhc2VfcSA9IHsK QEAgLTgxNywyMSArODE5LDIzIEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0 Q29udGV4dCAqcykKICAgICAgICBpbnQgaW5kZXggPSAwOwogICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19JTkZPLCAiQVZGb3VuZGF0aW9uIHZpZGVvIGRldmljZXM6XG4iKTsKICAgICAgICBmb3Ig KEFWQ2FwdHVyZURldmljZSAqZGV2aWNlIGluIGRldmljZXMpIHsKLSAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKLSAgICAg ICAgICAgIGluZGV4ICAgICAgICAgICAgPSBbZGV2aWNlcyBpbmRleE9mT2JqZWN0OmRldmljZV07 Ci0gICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIlslZF0gJXNcbiIsIGluZGV4 LCBuYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgICAgID0gW1tkZXZpY2UgbG9j YWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJ ZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlu ZGV4ICAgICAgICAgICAgICAgID0gW2RldmljZXMgaW5kZXhPZk9iamVjdDpkZXZpY2VdOworICAg ICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzIChJRDogJXMpXG4iLCBp bmRleCwgbmFtZSwgdW5pcXVlSWQpOwogICAgICAgIH0KICAgICAgICBmb3IgKEFWQ2FwdHVyZURl dmljZSAqZGV2aWNlIGluIGRldmljZXNfbXV4ZWQpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKLSAgICAgICAgICAg IGluZGV4ICAgICAgICAgICAgPSBbZGV2aWNlcyBjb3VudF0gKyBbZGV2aWNlc19tdXhlZCBpbmRl eE9mT2JqZWN0OmRldmljZV07Ci0gICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywg IlslZF0gJXNcbiIsIGluZGV4LCBuYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg ICAgID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAgICBj b25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURd KTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgICAgICAgICAgID0gW2RldmljZXMgY291bnRdICsg W2RldmljZXNfbXV4ZWQgaW5kZXhPZk9iamVjdDpkZXZpY2VdOworICAgICAgICAgICAgYXZfbG9n KGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzIChJRDogJXMpXG4iLCBpbmRleCwgbmFtZSwgdW5p cXVlSWQpOwogICAgICAgIH0KI2lmICFUQVJHRVRfT1NfSVBIT05FICYmIF9fTUFDX09TX1hfVkVS U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgIGlmIChudW1fc2NyZWVucyA+IDApIHsK ICAgICAgICAgICAgQ0dEaXJlY3REaXNwbGF5SUQgc2NyZWVuc1tudW1fc2NyZWVuc107CiAgICAg ICAgICAgIENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3NjcmVlbnMsIHNjcmVlbnMsICZudW1f c2NyZWVucyk7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3NjcmVlbnM7IGkr KykgewotICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyVkXSBDYXB0 dXJlIHNjcmVlbiAlZFxuIiwgY3R4LT5udW1fdmlkZW9fZGV2aWNlcyArIGksIGkpOworICAgICAg ICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyVkXSBDYXB0dXJlIHNjcmVlbiAl ZCAoSUQ6IEF2ZmlsdGVyQXZmb3VuZGF0aW9uQ2FwdHVyZVNjcmVlbiVkKVxuIiwgY3R4LT5udW1f dmlkZW9fZGV2aWNlcyArIGksIGksIHNjcmVlbnNbaV0pOwogICAgICAgICAgICB9CiAgICAgICAg fQojZW5kaWYKQEAgLTgzOSw5ICs4NDMsMTAgQEAgc3RhdGljIGludCBhdmZfcmVhZF9oZWFkZXIo QVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiQVZG b3VuZGF0aW9uIGF1ZGlvIGRldmljZXM6XG4iKTsKICAgICAgICBkZXZpY2VzID0gW0FWQ2FwdHVy ZURldmljZSBkZXZpY2VzV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlvXTsKICAgICAgICBm b3IgKEFWQ2FwdHVyZURldmljZSAqZGV2aWNlIGluIGRldmljZXMpIHsKLSAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKLSAg ICAgICAgICAgIGludCBpbmRleCAgPSBbZGV2aWNlcyBpbmRleE9mT2JqZWN0OmRldmljZV07Ci0g ICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIlslZF0gJXNcbiIsIGluZGV4LCBu YW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgICAgID0gW1tkZXZpY2UgbG9jYWxp emVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9 IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGludCBp bmRleCAgICAgICAgICAgID0gW2RldmljZXMgaW5kZXhPZk9iamVjdDpkZXZpY2VdOworICAgICAg ICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzIChJRDogJXMpXG4iLCBpbmRl eCwgbmFtZSwgdW5pcXVlSWQpOwogICAgICAgIH0KICAgICAgICAgZ290byBmYWlsOwogICAgfQpA QCAtOTAzLDE0ICs5MDgsMjkgQEAgc3RhdGljIGludCBhdmZfcmVhZF9oZWFkZXIoQVZGb3JtYXRD b250ZXh0ICpzKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gbG9va2luZyBmb3IgdmlkZW8g aW5wdXRzCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2VzKSB7 Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgW1tkZXZpY2Ug bG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihjdHgtPnZpZGVvX2ZpbGVuYW1lKSkp IHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1l XSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPnZpZGVvX2ZpbGVu YW1lLCBuYW1lLCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICAg ICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVW SUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgt PnZpZGVvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+dmlkZW9fZmlsZW5hbWUpKSkg ewogICAgICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOwogICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gbG9va2luZyBmb3IgbXV4 ZWQgaW5wdXRzCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2Vz X211eGVkKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwg W1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihjdHgtPnZpZGVvX2Zp bGVuYW1lKSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2Nh bGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPnZp ZGVvX2ZpbGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAg ICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAgIGN0eC0+ dmlkZW9faXNfbXV4ZWQgPSAxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg fQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lE KFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPnZpZGVv X2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+dmlkZW9fZmlsZW5hbWUpKSkgewogICAg ICAgICAgICAgICAgdmlkZW9fZGV2aWNlID0gZGV2aWNlOwogICAgICAgICAgICAgICAgY3R4LT52 aWRlb19pc19tdXhlZCA9IDE7CiAgICAgICAgICAgICAgICBicmVhazsKQEAgLTkyMSwxMCArOTQx LDIzIEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAg ICAgICAvLyBsb29raW5nIGZvciBzY3JlZW4gaW5wdXRzCiAgICAgICAgaWYgKCF2aWRlb19kZXZp Y2UpIHsKICAgICAgICAgICAgaW50IGlkeDsKKyAgICAgICAgICAgIENHRGlyZWN0RGlzcGxheUlE IHNjcmVlbnNbbnVtX3NjcmVlbnNdOworICAgICAgICAgICAgQ0dHZXRBY3RpdmVEaXNwbGF5TGlz dChudW1fc2NyZWVucywgc2NyZWVucywgJm51bV9zY3JlZW5zKTsKKyAgICAgICAgICAgIEFWQ2Fw dHVyZVNjcmVlbklucHV0KiBjYXB0dXJlX3NjcmVlbl9pbnB1dCA9IE5VTEw7CisKICAgICAgICAg ICAgaWYoc3NjYW5mKGN0eC0+dmlkZW9fZmlsZW5hbWUsICJDYXB0dXJlIHNjcmVlbiAlZCIsICZp ZHgpICYmIGlkeCA8IG51bV9zY3JlZW5zKSB7Ci0gICAgICAgICAgICAgICAgQ0dEaXJlY3REaXNw bGF5SUQgc2NyZWVuc1tudW1fc2NyZWVuc107Ci0gICAgICAgICAgICAgICAgQ0dHZXRBY3RpdmVE aXNwbGF5TGlzdChudW1fc2NyZWVucywgc2NyZWVucywgJm51bV9zY3JlZW5zKTsKLSAgICAgICAg ICAgICAgICBBVkNhcHR1cmVTY3JlZW5JbnB1dCogY2FwdHVyZV9zY3JlZW5faW5wdXQgPSBbW1tB VkNhcHR1cmVTY3JlZW5JbnB1dCBhbGxvY10gaW5pdFdpdGhEaXNwbGF5SUQ6c2NyZWVuc1tpZHhd XSBhdXRvcmVsZWFzZV07CisgICAgICAgICAgICAgICAgY2FwdHVyZV9zY3JlZW5faW5wdXQgPSBb W1tBVkNhcHR1cmVTY3JlZW5JbnB1dCBhbGxvY10gaW5pdFdpdGhEaXNwbGF5SUQ6c2NyZWVuc1tp ZHhdXSBhdXRvcmVsZWFzZV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKHNzY2Fu ZihjdHgtPnZpZGVvX2ZpbGVuYW1lLCAiQXZmaWx0ZXJBdmZvdW5kYXRpb25DYXB0dXJlU2NyZWVu JWQiLCAmaWR4KSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3Nj cmVlbnM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NyZWVuc1tpXSA9PSBpZHgp IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVfc2NyZWVuX2lucHV0ID0gW1tbQVZD YXB0dXJlU2NyZWVuSW5wdXQgYWxsb2NdIGluaXRXaXRoRGlzcGxheUlEOmlkeF0gYXV0b3JlbGVh c2VdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBpZiAoY2FwdHVyZV9zY3JlZW5faW5wdXQpIHsKICAgICAgICAg ICAgICAgIHZpZGVvX2RldmljZSA9IChBVkNhcHR1cmVEZXZpY2UqKSBjYXB0dXJlX3NjcmVlbl9p bnB1dDsKICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9fZGV2aWNlX2luZGV4ID0gY3R4LT5udW1f dmlkZW9fZGV2aWNlcyArIGlkeDsKICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9faXNfc2NyZWVu ID0gMTsKQEAgLTk3NSw3ICsxMDA4LDE0IEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFW Rm9ybWF0Q29udGV4dCAqcykKICAgICAgICBOU0FycmF5ICpkZXZpY2VzID0gW0FWQ2FwdHVyZURl dmljZSBkZXZpY2VzV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlvXTsKCiAgICAgICAgZm9y IChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2VzKSB7Ci0gICAgICAgICAgICBpZiAo IXN0cm5jbXAoY3R4LT5hdWRpb19maWxlbmFtZSwgW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRG OFN0cmluZ10sIHN0cmxlbihjdHgtPmF1ZGlvX2ZpbGVuYW1lKSkpIHsKKyAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKKyAg ICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPmF1ZGlvX2ZpbGVuYW1lLCBuYW1lLCBzdHJsZW4o Y3R4LT5hdWRpb19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICAgICAgYXVkaW9fZGV2aWNlID0g ZGV2aWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5p cXVlSURdKTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPmF1ZGlvX2ZpbGVuYW1lLCB1 bmlxdWVJZCwgc3RybGVuKGN0eC0+YXVkaW9fZmlsZW5hbWUpKSkgewogICAgICAgICAgICAgICAg YXVkaW9fZGV2aWNlID0gZGV2aWNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg IH0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRl dmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVn LWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K