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 5F45742320 for ; Fri, 17 Dec 2021 15:59:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 803DB68AE9A; Fri, 17 Dec 2021 17:59:33 +0200 (EET) Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E035680867 for ; Fri, 17 Dec 2021 17:59:27 +0200 (EET) Received: by mail-qt1-f178.google.com with SMTP id t34so3043805qtc.7 for ; Fri, 17 Dec 2021 07:59:27 -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:to; bh=G4+Lyds4aJZ2pPPfMB3WzlnyKgdU68hB7BMVvBMtM/I=; b=v/ZHO4yuiwgZk2CdTEslrroVZOCSb+H5mqDwEiybvl68/Ovvds4BiRh7k8oWtw3PIw gQgQqL7ZiSYTbgiF6NiFjG86rvL9kTGY+VlHFD8qKFulUdG3kXhdR/L4rgdlrGwbPLXT bd8K+GAQwP69hmNaMZ+zZAZlzp+whCGorJMZCkfPrwRkgJng6WOCsgcmbPgygTZGDT2o B5Av/g+OFGtO9sl/HUfP+/iaCSdu2+AYEVOT/LSfxyUutNKjD2k9pOgjLpIAMaiIfKSK b6LGrIp+Km5Gf4C8iHvUNvwaGPyZlpmeb+1AM8Aho2VvLRMcUg+quZMuEEf2T/bKahIE JrRA== X-Gm-Message-State: AOAM5321uBfpsFayYsqKERlx0cxJZ3Tg+0oDm7/RioOxHwt1c3YVMuet rlw8bVg/Ztcr9vgXNjA4XKu3MeahGex9AQ== X-Google-Smtp-Source: ABdhPJwM/EcRPDq7oAI+rn3z85xcUAP696ZtCcmUrD9gXpNoAV8vYGf6kXDK+hJgI4q3BljhLI/0Dg== X-Received: by 2002:ac8:58cd:: with SMTP id u13mr2922088qta.426.1639756765711; Fri, 17 Dec 2021 07:59:25 -0800 (PST) Received: from smtpclient.apple ([172.58.6.224]) by smtp.gmail.com with ESMTPSA id f18sm4876026qko.34.2021.12.17.07.59.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Dec 2021 07:59:25 -0800 (PST) From: Romain Beauxis Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.40.0.1.81\)) Message-Id: <6B45C9ED-09BF-47AD-BD56-6D2292AF4E95@rastageeks.org> Date: Fri, 17 Dec 2021 09:59:24 -0600 To: ffmpeg-devel@ffmpeg.org X-Mailer: Apple Mail (2.3693.40.0.1.81) Subject: [FFmpeg-devel] [PATCH v5 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 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: KEFwb2xvZ2llcyBmb3IgdGhlIHByZXZpb3VzbHkgbWFuZ2xlZCBtZXNzYWdlLCBJ4oCZbSBzdGls bCBob25pbmcgbXkgdG9vbHMgaGVyZSEpCgpUaGlzIGlzIHRoZSB0aGlyZCBwYXRjaCBvZiBhIHNl cmllcyBvZiAzIHRoYXQgY2xlYW51cCBhbmQgZW5oYW5jZSB0aGUKYXZmb3VuZGF0aW9uIGltcGxl bWVudGF0aW9uIGZvciBsaWJhdmRldmljZS4KCkNoYW5nZXM6CnYyOiBOb25lCnYzOgogICogU3dp dGNoZWQgdW5pcXVlIElEIHRvIHVzZSBzeXN0ZW0tcHJvZHZpZGVkIHVuaXF1ZSBJRAogICogSW1w bGVtZW50ZWQgdW5pcXVlIElEcyBmb3Igc2NyZWVuIGNhcHR1cmUKdjQ6IENsZWFudXAKdjU6IEZp eCBpbmRlbnRhdGlvbi93cmFwcGluZwoKVGhpcyBwYXRjaCBhZGRzIGEgdW5pcXVlIElEIHRvIGF2 Zm91bmRhdGlvbiBkZXZpY2VzLiBUaGlzIGlzIG5lZWRlZApiZWNhdXNlIGRldmljZSBpbmRleCBj YW4gY2hhbmdlIHdoaWxlIHRoZSBtYWNoaW5lIGlzIHJ1bm5pbmcgd2hlbgpkZXZpY2VzIGFyZSBw bHVnZ2VkIG9yIHVucGx1Z2dlZCBhbmQgZGV2aWNlIG5hbWVzIGNhbiBiZSB0cmlja3kgdG8gdXNl CndpdGggbG9jYWxpemF0aW9uIGFuZCBldGMuCgpFeGFtcGxlIG9mIG91dHB1dDoKLi9mZm1wZWcg LWYgYXZmb3VuZGF0aW9uIC1saXN0X2RldmljZXMgdHJ1ZSAtaSAiIgpbLi4uXQpbQVZGb3VuZGF0 aW9uIGluZGV2IEAgMHgxNTg3MDUyMzBdIEFWRm91bmRhdGlvbiB2aWRlbyBkZXZpY2VzOgpbQVZG b3VuZGF0aW9uIGluZGV2IEAgMHgxNTg3MDUyMzBdIFswXSBGYWNlVGltZSBIRCBDYW1lcmEgKElE OiA0N0I0QjY0QjcwNjc0QjlDQUQyQkFFMjczQTcxRjRCNSkKW0FWRm91bmRhdGlvbiBpbmRldiBA IDB4MTU4NzA1MjMwXSBbMV0gQ2FwdHVyZSBzY3JlZW4gMCAoSUQ6IEF2ZmlsdGVyQXZmb3VuZGF0 aW9uQ2FwdHVyZVNjcmVlbjEpCltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1ODcwNTIzMF0gQVZG b3VuZGF0aW9uIGF1ZGlvIGRldmljZXM6CltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1ODcwNTIz MF0gWzBdIExvb3BiYWNrIEF1ZGlvIChJRDogY29tLnJvZ3VlYW1vZWJhLkxvb3BiYWNrLkE1NjY4 QjM2LTcxMUUtNERGNS04QThELTcxNDg1MDhDNzM1QikKW0FWRm91bmRhdGlvbiBpbmRldiBAIDB4 MTU4NzA1MjMwXSBbMV0gTWFjQm9vayBQcm8gTWljcm9waG9uZSAoSUQ6QnVpbHRJbk1pY3JvcGhv bmVEZXZpY2UpCgpOb3RlczoKKiBVbmlxdWUgbmFtZXMgZG8gbm90IHNlZW0gdG8gZm9sbG93IGFu eSBzcGVjaWZpYyBwYXR0ZXJuLiBJIGhhdmUgdXNlZApvbmUgc2ltaWxhciB0byB0aGUgYnVpbHRp biBtaWNyb3Bob25lIGZvciBzY3JlZW4gY2FwdHVyZQoqIFRoZSA6IHN1YnN0aXR1dGlvbiBpcyBh Y3R1YWxseSByZXF1aXJlZC4gVGhlIGxvb3BiYWNrIGRldmljZSBhYm92ZSBkaWQKaGF2ZSBpdCBp biBpdHMgbmFtZS4KClNpZ25lZC1vZmYtYnk6IFJvbWFpbiBCZWF1eGlzIDx0b290c0ByYXN0YWdl ZWtzLm9yZz4KLS0tCmRvYy9pbmRldnMudGV4aSAgICAgICAgICAgIHwgIDYgKystLQpsaWJhdmRl dmljZS9hdmZvdW5kYXRpb24ubSB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tCjIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2luZGV2cy50ZXhpIGIvZG9jL2luZGV2cy50ZXhpCmluZGV4IDVi ZTY0N2Y3MGEuLjJiNTUzOTljOGMgMTAwNjQ0Ci0tLSBhL2RvYy9pbmRldnMudGV4aQorKysgYi9k b2MvaW5kZXZzLnRleGkKQEAgLTExNCw3ICsxMTQsNyBAQCBUaGUgaW5wdXQgZmlsZW5hbWUgaGFz IHRvIGJlIGdpdmVuIGluIHRoZSBmb2xsb3dpbmcgc3ludGF4OgotaSAiW1tWSURFT106W0FVRElP XV0iCkBlbmQgZXhhbXBsZQpUaGUgZmlyc3QgZW50cnkgc2VsZWN0cyB0aGUgdmlkZW8gaW5wdXQg d2hpbGUgdGhlIGxhdHRlciBzZWxlY3RzIHRoZSBhdWRpbyBpbnB1dC4KLVRoZSBzdHJlYW0gaGFz IHRvIGJlIHNwZWNpZmllZCBieSB0aGUgZGV2aWNlIG5hbWUgb3IgdGhlIGRldmljZSBpbmRleCBh cyBzaG93biBieSB0aGUgZGV2aWNlIGxpc3QuCitUaGUgc3RyZWFtIGhhcyB0byBiZSBzcGVjaWZp ZWQgYnkgdGhlIGRldmljZSBuYW1lLCBpbmRleCBvciBJRCBhcyBzaG93biBieSB0aGUgZGV2aWNl IGxpc3QuCkFsdGVybmF0aXZlbHksIHRoZSB2aWRlbyBhbmQvb3IgYXVkaW8gaW5wdXQgZGV2aWNl IGNhbiBiZSBjaG9zZW4gYnkgaW5kZXggdXNpbmcgdGhlCkBvcHRpb257CiAgICAtdmlkZW9fZGV2 aWNlX2luZGV4IDxJTkRFWD4KQEAgLTEyNyw3ICsxMjcsOSBAQCBhbmQvb3IKZGV2aWNlIG5hbWUg b3IgaW5kZXggZ2l2ZW4gaW4gdGhlIGlucHV0IGZpbGVuYW1lLgoKQWxsIGF2YWlsYWJsZSBkZXZp Y2VzIGNhbiBiZSBlbnVtZXJhdGVkIGJ5IHVzaW5nIEBvcHRpb257LWxpc3RfZGV2aWNlcyB0cnVl fSwgbGlzdGluZwotYWxsIGRldmljZSBuYW1lcyBhbmQgY29ycmVzcG9uZGluZyBpbmRpY2VzLgor YWxsIGRldmljZSBuYW1lcywgY29ycmVzcG9uZGluZyBpbmRpY2VzIGFuZCBJRHMsIHdoZW4gYXZh aWxhYmxlLiBEZXZpY2UgbmFtZSBjYW4gYmUgCit0cmlja3kgdG8gdXNlIHdoZW4gbG9jYWxpemVk IGFuZCBkZXZpY2UgaW5kZXggY2FuIGNoYW5nZSB3aGVuIGRldmljZXMgYXJlIHBsdWdnZWQgb3Ig dW5wbHVnZ2VkLiBBIGRldmljZQoraGFzaCwgd2hlbiBhdmFpbGFibGUsIHVuaXF1ZWx5IGlkZW50 aWZpZXMgYSBkZXZpY2UgYW5kIHNob3VsZCBub3QgY2hhbmdlIG92ZXIgdGltZS4KClRoZXJlIGFy ZSB0d28gZGV2aWNlIG5hbWUgYWxpYXNlczoKQHRhYmxlIEBjb2RlCmRpZmYgLS1naXQgYS9saWJh dmRldmljZS9hdmZvdW5kYXRpb24ubSBiL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCmluZGV4 IGI2MDJjZmJlOTUuLjI1Mjg2NTA3ZDYgMTAwNjQ0Ci0tLSBhL2xpYmF2ZGV2aWNlL2F2Zm91bmRh dGlvbi5tCisrKyBiL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCkBAIC0zOSw2ICszOSw4IEBA CiNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKI2luY2x1ZGUgImF2ZGV2aWNlLmgiCgor I2RlZmluZSBDTEVBTlVQX0RFVklDRV9JRChzKSBbW3Mgc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJl bmNlc09mU3RyaW5nOkAiOiIgd2l0aFN0cmluZzpAIi4iXSBVVEY4U3RyaW5nXQorCnN0YXRpYyBj b25zdCBpbnQgYXZmX3RpbWVfYmFzZSA9IDEwMDAwMDA7CgpzdGF0aWMgY29uc3QgQVZSYXRpb25h bCBhdmZfdGltZV9iYXNlX3EgPSB7CkBAIC03OTcsMjEgKzc5OSwyMyBAQCBzdGF0aWMgaW50IGF2 Zl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgaW50IGluZGV4ID0gMDsK ICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIkFWRm91bmRhdGlvbiB2aWRlbyBkZXZp Y2VzOlxuIik7CiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2Vz KSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVkTmFt ZV0gVVRGOFN0cmluZ107Ci0gICAgICAgICAgICBpbmRleCAgICAgICAgICAgID0gW2RldmljZXMg aW5kZXhPZk9iamVjdDpkZXZpY2VdOwotICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lO Rk8sICJbJWRdICVzXG4iLCBpbmRleCwgbmFtZSk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lICAgICA9IFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmddOworICAgICAgICAg ICAgY29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1 ZUlEXSk7CisgICAgICAgICAgICBpbmRleCAgICAgICAgICAgICAgICA9IFtkZXZpY2VzIGluZGV4 T2ZPYmplY3Q6ZGV2aWNlXTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAi WyVkXSAlcyAoSUQ6ICVzKVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsKICAgICAgICB9CiAg ICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2VzX211eGVkKSB7Ci0g ICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRG OFN0cmluZ107Ci0gICAgICAgICAgICBpbmRleCAgICAgICAgICAgID0gW2RldmljZXMgY291bnRd ICsgW2RldmljZXNfbXV4ZWQgaW5kZXhPZk9iamVjdDpkZXZpY2VdOwotICAgICAgICAgICAgYXZf bG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzXG4iLCBpbmRleCwgbmFtZSk7CisgICAgICAg ICAgICBjb25zdCBjaGFyICpuYW1lICAgICA9IFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhT dHJpbmddOworICAgICAgICAgICAgY29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklD RV9JRChbZGV2aWNlIHVuaXF1ZUlEXSk7CisgICAgICAgICAgICBpbmRleCAgICAgICAgICAgICAg ICA9IFtkZXZpY2VzIGNvdW50XSArIFtkZXZpY2VzX211eGVkIGluZGV4T2ZPYmplY3Q6ZGV2aWNl XTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyVkXSAlcyAoSUQ6ICVz KVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsKICAgICAgICB9CiNpZiAhVEFSR0VUX09TX0lQ SE9ORSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICBp ZiAobnVtX3NjcmVlbnMgPiAwKSB7CiAgICAgICAgICAgIENHRGlyZWN0RGlzcGxheUlEIHNjcmVl bnNbbnVtX3NjcmVlbnNdOwogICAgICAgICAgICBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KG51bV9z Y3JlZW5zLCBzY3JlZW5zLCAmbnVtX3NjcmVlbnMpOwogICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IG51bV9zY3JlZW5zOyBpKyspIHsKLSAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBB Vl9MT0dfSU5GTywgIlslZF0gQ2FwdHVyZSBzY3JlZW4gJWRcbiIsIGN0eC0+bnVtX3ZpZGVvX2Rl dmljZXMgKyBpLCBpKTsKKyAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywg IlslZF0gQ2FwdHVyZSBzY3JlZW4gJWQgKElEOiBBdmZpbHRlckF2Zm91bmRhdGlvbkNhcHR1cmVT Y3JlZW4lZClcbiIsIGN0eC0+bnVtX3ZpZGVvX2RldmljZXMgKyBpLCBpLCBzY3JlZW5zW2ldKTsK ICAgICAgICAgICAgfQogICAgICAgIH0KI2VuZGlmCkBAIC04MTksOSArODIzLDEwIEBAIHN0YXRp YyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICBhdl9sb2co Y3R4LCBBVl9MT0dfSU5GTywgIkFWRm91bmRhdGlvbiBhdWRpbyBkZXZpY2VzOlxuIik7CiAgICAg ICAgZGV2aWNlcyA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlc1dpdGhNZWRpYVR5cGU6QVZNZWRp YVR5cGVBdWRpb107CiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZp Y2VzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVk TmFtZV0gVVRGOFN0cmluZ107Ci0gICAgICAgICAgICBpbnQgaW5kZXggID0gW2RldmljZXMgaW5k ZXhPZk9iamVjdDpkZXZpY2VdOwotICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8s ICJbJWRdICVzXG4iLCBpbmRleCwgbmFtZSk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1l ICAgICA9IFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmddOworICAgICAgICAgICAg Y29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlE XSk7CisgICAgICAgICAgICBpbnQgaW5kZXggICAgICAgICAgICA9IFtkZXZpY2VzIGluZGV4T2ZP YmplY3Q6ZGV2aWNlXTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyVk XSAlcyAoSUQ6ICVzKVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsKICAgICAgICB9CiAgICAg ICAgIGdvdG8gZmFpbDsKICAgIH0KQEAgLTg4MywxNCArODg4LDI5IEBAIHN0YXRpYyBpbnQgYXZm X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICB9IGVsc2UgewogICAgICAg IC8vIGxvb2tpbmcgZm9yIHZpZGVvIGlucHV0cwogICAgICAgIGZvciAoQVZDYXB0dXJlRGV2aWNl ICpkZXZpY2UgaW4gZGV2aWNlcykgewotICAgICAgICAgICAgaWYgKCFzdHJuY21wKGN0eC0+dmlk ZW9fZmlsZW5hbWUsIFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmddLCBzdHJsZW4o Y3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0g W1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAgICBpZiAoIXN0 cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgbmFtZSwgc3RybGVuKGN0eC0+dmlkZW9fZmlsZW5h bWUpKSkgeworICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IGRldmljZTsKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgY2hhciAq dW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlEXSk7CisgICAgICAg ICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgdW5pcXVlSWQsIHN0cmxlbihj dHgtPnZpZGVvX2ZpbGVuYW1lKSkpIHsKICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IGRl dmljZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAg ICAgIC8vIGxvb2tpbmcgZm9yIG11eGVkIGlucHV0cwogICAgICAgIGZvciAoQVZDYXB0dXJlRGV2 aWNlICpkZXZpY2UgaW4gZGV2aWNlc19tdXhlZCkgewotICAgICAgICAgICAgaWYgKCFzdHJuY21w KGN0eC0+dmlkZW9fZmlsZW5hbWUsIFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmdd LCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAgICAg ICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgbmFtZSwgc3RybGVuKGN0eC0+dmlk ZW9fZmlsZW5hbWUpKSkgeworICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IGRldmljZTsK KyAgICAgICAgICAgICAgICBjdHgtPnZpZGVvX2lzX211eGVkID0gMTsKKyAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgY2hhciAqdW5pcXVl SWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlEXSk7CisgICAgICAgICAgICBp ZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgdW5pcXVlSWQsIHN0cmxlbihjdHgtPnZp ZGVvX2ZpbGVuYW1lKSkpIHsKICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IGRldmljZTsK ICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9faXNfbXV4ZWQgPSAxOwogICAgICAgICAgICAgICAg YnJlYWs7CkBAIC05MDEsMTAgKzkyMSwyMyBAQCBzdGF0aWMgaW50IGF2Zl9yZWFkX2hlYWRlcihB VkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgLy8gbG9va2luZyBmb3Igc2NyZWVuIGlucHV0cwog ICAgICAgIGlmICghdmlkZW9fZGV2aWNlKSB7CiAgICAgICAgICAgIGludCBpZHg7CisgICAgICAg ICAgICBDR0RpcmVjdERpc3BsYXlJRCBzY3JlZW5zW251bV9zY3JlZW5zXTsKKyAgICAgICAgICAg IENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3NjcmVlbnMsIHNjcmVlbnMsICZudW1fc2NyZWVu cyk7CisgICAgICAgICAgICBBVkNhcHR1cmVTY3JlZW5JbnB1dCogY2FwdHVyZV9zY3JlZW5faW5w dXQgPSBOVUxMOworCiAgICAgICAgICAgIGlmKHNzY2FuZihjdHgtPnZpZGVvX2ZpbGVuYW1lLCAi Q2FwdHVyZSBzY3JlZW4gJWQiLCAmaWR4KSAmJiBpZHggPCBudW1fc2NyZWVucykgewotICAgICAg ICAgICAgICAgIENHRGlyZWN0RGlzcGxheUlEIHNjcmVlbnNbbnVtX3NjcmVlbnNdOwotICAgICAg ICAgICAgICAgIENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3NjcmVlbnMsIHNjcmVlbnMsICZu dW1fc2NyZWVucyk7Ci0gICAgICAgICAgICAgICAgQVZDYXB0dXJlU2NyZWVuSW5wdXQqIGNhcHR1 cmVfc2NyZWVuX2lucHV0ID0gW1tbQVZDYXB0dXJlU2NyZWVuSW5wdXQgYWxsb2NdIGluaXRXaXRo RGlzcGxheUlEOnNjcmVlbnNbaWR4XV0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgICAgIGNh cHR1cmVfc2NyZWVuX2lucHV0ID0gW1tbQVZDYXB0dXJlU2NyZWVuSW5wdXQgYWxsb2NdIGluaXRX aXRoRGlzcGxheUlEOnNjcmVlbnNbaWR4XV0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgfQor CisgICAgICAgICAgICBpZihzc2NhbmYoY3R4LT52aWRlb19maWxlbmFtZSwgIkF2ZmlsdGVyQXZm b3VuZGF0aW9uQ2FwdHVyZVNjcmVlbiVkIiwgJmlkeCkpIHsKKyAgICAgICAgICAgICAgICBmb3Ig KGludCBpID0gMDsgaSA8IG51bV9zY3JlZW5zOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAg aWYgKHNjcmVlbnNbaV0gPT0gaWR4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJl X3NjcmVlbl9pbnB1dCA9IFtbW0FWQ2FwdHVyZVNjcmVlbklucHV0IGFsbG9jXSBpbml0V2l0aERp c3BsYXlJRDppZHhdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNhcHR1cmVfc2Ny ZWVuX2lucHV0KSB7CiAgICAgICAgICAgICAgICB2aWRlb19kZXZpY2UgPSAoQVZDYXB0dXJlRGV2 aWNlKikgY2FwdHVyZV9zY3JlZW5faW5wdXQ7CiAgICAgICAgICAgICAgICBjdHgtPnZpZGVvX2Rl dmljZV9pbmRleCA9IGN0eC0+bnVtX3ZpZGVvX2RldmljZXMgKyBpZHg7CiAgICAgICAgICAgICAg ICBjdHgtPnZpZGVvX2lzX3NjcmVlbiA9IDE7CkBAIC05NTUsNyArOTg4LDE0IEBAIHN0YXRpYyBp bnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICBOU0FycmF5ICpk ZXZpY2VzID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VzV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlw ZUF1ZGlvXTsKCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2Vz KSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT5hdWRpb19maWxlbmFtZSwgW1tkZXZp Y2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihjdHgtPmF1ZGlvX2ZpbGVuYW1l KSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2RldmljZSBsb2NhbGl6ZWRO YW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChjdHgtPmF1ZGlvX2Zp bGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT5hdWRpb19maWxlbmFtZSkpKSB7CisgICAgICAgICAg ICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJZCA9IENMRUFOVVBf REVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChj dHgtPmF1ZGlvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+YXVkaW9fZmlsZW5hbWUp KSkgewogICAgICAgICAgICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOwogICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgIH0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4K