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 9389740E4D for ; Fri, 31 Dec 2021 16:03:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2735E68B034; Fri, 31 Dec 2021 18:03:40 +0200 (EET) Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3C3A368AED3 for ; Fri, 31 Dec 2021 18:03:34 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id kk22so25047479qvb.0 for ; Fri, 31 Dec 2021 08:03:34 -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=CzyHweL8Sw2AzqNvJeQZOwwpuyhXSSszKy/uXBdSVGY=; b=FwmfSKPA89QQ9jQhiXoK7VDrVomp1NECJgBARaRJpJT3mmP8PsdQpFi9rubZUzWNyA 3YDz196xwdGK7NRPWHOf+eiNoVWx0AykvQImQOPmMF+Oxm7CtNCwajGcFbgBhIfQHZVI Oaes5xBnQK41pCtILoTCmK0XMjQ/OcWy3WZFAyIjynMX9iDBAl2lR7eZmEROkjRERFTQ pw3ckuUml5aZtOaYLDbWuDW+Asm8O32UBk2bKq/4p+YGn4XhnsSnZE769qLDtK8LmTSj lJhJToOCciAdI7Rr+MVs6WYjQhFnj3R+rKLAK0DWqJ9R05b4HAyschhTBe9HvjP3Vlvh cMiA== X-Gm-Message-State: AOAM533meDhmC2D7zF/cujc2ydPLXmd+hU2CKqG1z9JktM0eUSGcMYZv 2ERKK3qhNxZwN26OxElQpnUjg8MTd0WNNQ== X-Google-Smtp-Source: ABdhPJxKQJbOt+FHTXykQdga2hftBG54qWcQQZ5YUPW5MTk1oFqPFWBVoKFtmfIpf2xmYa+PKEGXFA== X-Received: by 2002:a05:6214:da3:: with SMTP id h3mr33076328qvh.112.1640966612607; Fri, 31 Dec 2021 08:03:32 -0800 (PST) Received: from smtpclient.apple ([172.58.171.222]) by smtp.gmail.com with ESMTPSA id d4sm22136028qkn.79.2021.12.31.08.03.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 Dec 2021 08:03:32 -0800 (PST) From: Romain Beauxis Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.40.0.1.81\)) Message-Id: Date: Fri, 31 Dec 2021 10:03:30 -0600 To: ffmpeg-devel@ffmpeg.org X-Mailer: Apple Mail (2.3693.40.0.1.81) Subject: [FFmpeg-devel] [PATCH v7 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 VGhpcyBpcyB0aGUgdGhpcmQgcGF0Y2ggb2YgYSBzZXJpZXMgb2YgMyB0aGF0IGNsZWFudXAgYW5k IGVuaGFuY2UgdGhlCmF2Zm91bmRhdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgbGliYXZkZXZpY2Uu CgpDaGFuZ2VzOgp2MjogTm9uZQp2MzoKICAgKiBTd2l0Y2hlZCB1bmlxdWUgSUQgdG8gdXNlIHN5 c3RlbS1wcm9kdmlkZWQgdW5pcXVlIElECiAgICogSW1wbGVtZW50ZWQgdW5pcXVlIElEcyBmb3Ig c2NyZWVuIGNhcHR1cmUKdjQ6IENsZWFudXAKdjU6IEZpeCBpbmRlbnRhdGlvbi93cmFwcGluZwp2 NjogTm9uZQp2NzogTm9uZQoKVGhpcyBwYXRjaCBhZGRzIGEgdW5pcXVlIElEIHRvIGF2Zm91bmRh dGlvbiBkZXZpY2VzLiBUaGlzIGlzIG5lZWRlZApiZWNhdXNlIGRldmljZSBpbmRleCBjYW4gY2hh bmdlIHdoaWxlIHRoZSBtYWNoaW5lIGlzIHJ1bm5pbmcgd2hlbgpkZXZpY2VzIGFyZSBwbHVnZ2Vk IG9yIHVucGx1Z2dlZCBhbmQgZGV2aWNlIG5hbWVzIGNhbiBiZSB0cmlja3kgdG8gdXNlCndpdGgg bG9jYWxpemF0aW9uIGFuZCBldGMuCgpFeGFtcGxlIG9mIG91dHB1dDoKLi9mZm1wZWcgLWYgYXZm b3VuZGF0aW9uIC1saXN0X2RldmljZXMgdHJ1ZSAtaSAiIgpbLi4uXQpbQVZGb3VuZGF0aW9uIGlu ZGV2IEAgMHgxNTg3MDUyMzBdIEFWRm91bmRhdGlvbiB2aWRlbyBkZXZpY2VzOgpbQVZGb3VuZGF0 aW9uIGluZGV2IEAgMHgxNTg3MDUyMzBdIFswXSBGYWNlVGltZSBIRCBDYW1lcmEgKElEOiA0N0I0 QjY0QjcwNjc0QjlDQUQyQkFFMjczQTcxRjRCNSkKW0FWRm91bmRhdGlvbiBpbmRldiBAIDB4MTU4 NzA1MjMwXSBbMV0gQ2FwdHVyZSBzY3JlZW4gMCAoSUQ6IEF2ZmlsdGVyQXZmb3VuZGF0aW9uQ2Fw dHVyZVNjcmVlbjEpCltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1ODcwNTIzMF0gQVZGb3VuZGF0 aW9uIGF1ZGlvIGRldmljZXM6CltBVkZvdW5kYXRpb24gaW5kZXYgQCAweDE1ODcwNTIzMF0gWzBd IExvb3BiYWNrIEF1ZGlvIChJRDogY29tLnJvZ3VlYW1vZWJhLkxvb3BiYWNrLkE1NjY4QjM2LTcx MUUtNERGNS04QThELTcxNDg1MDhDNzM1QikKW0FWRm91bmRhdGlvbiBpbmRldiBAIDB4MTU4NzA1 MjMwXSBbMV0gTWFjQm9vayBQcm8gTWljcm9waG9uZSAoSUQ6QnVpbHRJbk1pY3JvcGhvbmVEZXZp Y2UpCgpOb3RlczoKKiBVbmlxdWUgbmFtZXMgZG8gbm90IHNlZW0gdG8gZm9sbG93IGFueSBzcGVj aWZpYyBwYXR0ZXJuLiBJIGhhdmUgdXNlZApvbmUgc2ltaWxhciB0byB0aGUgYnVpbHRpbiBtaWNy b3Bob25lIGZvciBzY3JlZW4gY2FwdHVyZQoqIFRoZSA6IHN1YnN0aXR1dGlvbiBpcyBhY3R1YWxs eSByZXF1aXJlZC4gVGhlIGxvb3BiYWNrIGRldmljZSBhYm92ZSBkaWQKaGF2ZSBpdCBpbiBpdHMg bmFtZS4KCmRvYy9pbmRldnMudGV4aSAgICAgICAgICAgIHwgIDYgKystLQpsaWJhdmRldmljZS9h dmZvdW5kYXRpb24ubSB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t CjIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL2luZGV2cy50ZXhpIGIvZG9jL2luZGV2cy50ZXhpCmluZGV4IDlkODAyMDMx MWEuLjg1OGMwZmE0ZTQgMTAwNjQ0Ci0tLSBhL2RvYy9pbmRldnMudGV4aQorKysgYi9kb2MvaW5k ZXZzLnRleGkKQEAgLTExNCw3ICsxMTQsNyBAQCBUaGUgaW5wdXQgZmlsZW5hbWUgaGFzIHRvIGJl IGdpdmVuIGluIHRoZSBmb2xsb3dpbmcgc3ludGF4OgotaSAiW1tWSURFT106W0FVRElPXV0iCkBl bmQgZXhhbXBsZQpUaGUgZmlyc3QgZW50cnkgc2VsZWN0cyB0aGUgdmlkZW8gaW5wdXQgd2hpbGUg dGhlIGxhdHRlciBzZWxlY3RzIHRoZSBhdWRpbyBpbnB1dC4KLVRoZSBzdHJlYW0gaGFzIHRvIGJl IHNwZWNpZmllZCBieSB0aGUgZGV2aWNlIG5hbWUgb3IgdGhlIGRldmljZSBpbmRleCBhcyBzaG93 biBieSB0aGUgZGV2aWNlIGxpc3QuCitUaGUgc3RyZWFtIGhhcyB0byBiZSBzcGVjaWZpZWQgYnkg dGhlIGRldmljZSBuYW1lLCBpbmRleCBvciBJRCBhcyBzaG93biBieSB0aGUgZGV2aWNlIGxpc3Qu CkFsdGVybmF0aXZlbHksIHRoZSB2aWRlbyBhbmQvb3IgYXVkaW8gaW5wdXQgZGV2aWNlIGNhbiBi ZSBjaG9zZW4gYnkgaW5kZXggdXNpbmcgdGhlCkBvcHRpb257CiAgICAtdmlkZW9fZGV2aWNlX2lu ZGV4IDxJTkRFWD4KQEAgLTEyNyw3ICsxMjcsOSBAQCBhbmQvb3IKZGV2aWNlIG5hbWUgb3IgaW5k ZXggZ2l2ZW4gaW4gdGhlIGlucHV0IGZpbGVuYW1lLgoKQWxsIGF2YWlsYWJsZSBkZXZpY2VzIGNh biBiZSBlbnVtZXJhdGVkIGJ5IHVzaW5nIEBvcHRpb257LWxpc3RfZGV2aWNlcyB0cnVlfSwgbGlz dGluZwotYWxsIGRldmljZSBuYW1lcyBhbmQgY29ycmVzcG9uZGluZyBpbmRpY2VzLgorYWxsIGRl dmljZSBuYW1lcywgY29ycmVzcG9uZGluZyBpbmRpY2VzIGFuZCBJRHMsIHdoZW4gYXZhaWxhYmxl LiBEZXZpY2UgbmFtZSBjYW4gYmUgCit0cmlja3kgdG8gdXNlIHdoZW4gbG9jYWxpemVkIGFuZCBk ZXZpY2UgaW5kZXggY2FuIGNoYW5nZSB3aGVuIGRldmljZXMgYXJlIHBsdWdnZWQgb3IgdW5wbHVn Z2VkLiBBIGRldmljZQoraGFzaCwgd2hlbiBhdmFpbGFibGUsIHVuaXF1ZWx5IGlkZW50aWZpZXMg YSBkZXZpY2UgYW5kIHNob3VsZCBub3QgY2hhbmdlIG92ZXIgdGltZS4KClRoZXJlIGFyZSB0d28g ZGV2aWNlIG5hbWUgYWxpYXNlczoKQHRhYmxlIEBjb2RlCmRpZmYgLS1naXQgYS9saWJhdmRldmlj ZS9hdmZvdW5kYXRpb24ubSBiL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCmluZGV4IGM3NDA3 NDVmY2UuLmJhZDBjZDcxNTUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5t CisrKyBiL2xpYmF2ZGV2aWNlL2F2Zm91bmRhdGlvbi5tCkBAIC0zOSw2ICszOSw4IEBACiNpbmNs dWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKI2luY2x1ZGUgImF2ZGV2aWNlLmgiCgorI2RlZmlu ZSBDTEVBTlVQX0RFVklDRV9JRChzKSBbW3Mgc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09m U3RyaW5nOkAiOiIgd2l0aFN0cmluZzpAIi4iXSBVVEY4U3RyaW5nXQorCiNkZWZpbmUgYXZfbG9n X2F2Zm91bmRhdGlvbl9lcnJvcihzdHIsIGVycikgXAogICBhdl9sb2cocywgQVZfTE9HX0VSUk9S LCAiQXZmb3VuZGF0aW9uOiAlcywgJXNcbiIsIHN0ciwgXAogICAgIFtbW05TRXJyb3IgZXJyb3JX aXRoRG9tYWluOk5TT1NTdGF0dXNFcnJvckRvbWFpbiBjb2RlOmVyciB1c2VySW5mbzpuaWxdIGxv Y2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3RyaW5nXSBcCkBAIC04MDUsMjEgKzgwNywyMyBAQCBz dGF0aWMgaW50IGF2Zl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgaW50 IGluZGV4ID0gMDsKICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIkFWRm91bmRhdGlv biB2aWRlbyBkZXZpY2VzOlxuIik7CiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmlj ZSBpbiBkZXZpY2VzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2Ug bG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107Ci0gICAgICAgICAgICBpbmRleCAgICAgICAgICAg ID0gW2RldmljZXMgaW5kZXhPZk9iamVjdDpkZXZpY2VdOwotICAgICAgICAgICAgYXZfbG9nKGN0 eCwgQVZfTE9HX0lORk8sICJbJWRdICVzXG4iLCBpbmRleCwgbmFtZSk7CisgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lICAgICA9IFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmdd OworICAgICAgICAgICAgY29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChb ZGV2aWNlIHVuaXF1ZUlEXSk7CisgICAgICAgICAgICBpbmRleCAgICAgICAgICAgICAgICA9IFtk ZXZpY2VzIGluZGV4T2ZPYmplY3Q6ZGV2aWNlXTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19JTkZPLCAiWyVkXSAlcyAoSUQ6ICVzKVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsK ICAgICAgICB9CiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmljZSBpbiBkZXZpY2Vz X211eGVkKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxp emVkTmFtZV0gVVRGOFN0cmluZ107Ci0gICAgICAgICAgICBpbmRleCAgICAgICAgICAgID0gW2Rl dmljZXMgY291bnRdICsgW2RldmljZXNfbXV4ZWQgaW5kZXhPZk9iamVjdDpkZXZpY2VdOwotICAg ICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJbJWRdICVzXG4iLCBpbmRleCwgbmFt ZSk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lICAgICA9IFtbZGV2aWNlIGxvY2FsaXpl ZE5hbWVdIFVURjhTdHJpbmddOworICAgICAgICAgICAgY29uc3QgY2hhciAqdW5pcXVlSWQgPSBD TEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlEXSk7CisgICAgICAgICAgICBpbmRleCAg ICAgICAgICAgICAgICA9IFtkZXZpY2VzIGNvdW50XSArIFtkZXZpY2VzX211eGVkIGluZGV4T2ZP YmplY3Q6ZGV2aWNlXTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyVk XSAlcyAoSUQ6ICVzKVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsKICAgICAgICB9CiNpZiAh VEFSR0VUX09TX0lQSE9ORSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw NzAKICAgICAgICBpZiAobnVtX3NjcmVlbnMgPiAwKSB7CiAgICAgICAgICAgIENHRGlyZWN0RGlz cGxheUlEIHNjcmVlbnNbbnVtX3NjcmVlbnNdOwogICAgICAgICAgICBDR0dldEFjdGl2ZURpc3Bs YXlMaXN0KG51bV9zY3JlZW5zLCBzY3JlZW5zLCAmbnVtX3NjcmVlbnMpOwogICAgICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IG51bV9zY3JlZW5zOyBpKyspIHsKLSAgICAgICAgICAgICAgICBh dl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIlslZF0gQ2FwdHVyZSBzY3JlZW4gJWRcbiIsIGN0eC0+ bnVtX3ZpZGVvX2RldmljZXMgKyBpLCBpKTsKKyAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBB Vl9MT0dfSU5GTywgIlslZF0gQ2FwdHVyZSBzY3JlZW4gJWQgKElEOiBBdmZpbHRlckF2Zm91bmRh dGlvbkNhcHR1cmVTY3JlZW4lZClcbiIsIGN0eC0+bnVtX3ZpZGVvX2RldmljZXMgKyBpLCBpLCBz Y3JlZW5zW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KI2VuZGlmCkBAIC04MjcsOSArODMx LDEwIEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAg ICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIkFWRm91bmRhdGlvbiBhdWRpbyBkZXZpY2Vz OlxuIik7CiAgICAgICAgZGV2aWNlcyA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlc1dpdGhNZWRp YVR5cGU6QVZNZWRpYVR5cGVBdWRpb107CiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRl dmljZSBpbiBkZXZpY2VzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZp Y2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107Ci0gICAgICAgICAgICBpbnQgaW5kZXggID0g W2RldmljZXMgaW5kZXhPZk9iamVjdDpkZXZpY2VdOwotICAgICAgICAgICAgYXZfbG9nKGN0eCwg QVZfTE9HX0lORk8sICJbJWRdICVzXG4iLCBpbmRleCwgbmFtZSk7CisgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lICAgICA9IFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJpbmddOwor ICAgICAgICAgICAgY29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2 aWNlIHVuaXF1ZUlEXSk7CisgICAgICAgICAgICBpbnQgaW5kZXggICAgICAgICAgICA9IFtkZXZp Y2VzIGluZGV4T2ZPYmplY3Q6ZGV2aWNlXTsKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xP R19JTkZPLCAiWyVkXSAlcyAoSUQ6ICVzKVxuIiwgaW5kZXgsIG5hbWUsIHVuaXF1ZUlkKTsKICAg ICAgICB9CiAgICAgICAgIGdvdG8gZmFpbDsKICAgIH0KQEAgLTg5MSwxNCArODk2LDI5IEBAIHN0 YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICB9IGVs c2UgewogICAgICAgIC8vIGxvb2tpbmcgZm9yIHZpZGVvIGlucHV0cwogICAgICAgIGZvciAoQVZD YXB0dXJlRGV2aWNlICpkZXZpY2UgaW4gZGV2aWNlcykgewotICAgICAgICAgICAgaWYgKCFzdHJu Y21wKGN0eC0+dmlkZW9fZmlsZW5hbWUsIFtbZGV2aWNlIGxvY2FsaXplZE5hbWVdIFVURjhTdHJp bmddLCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAgICAgICAgICBjb25zdCBj aGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107CisgICAgICAg ICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgbmFtZSwgc3RybGVuKGN0eC0+ dmlkZW9fZmlsZW5hbWUpKSkgeworICAgICAgICAgICAgICAgIHZpZGVvX2RldmljZSA9IGRldmlj ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg Y29uc3QgY2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlE XSk7CisgICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgdW5pcXVl SWQsIHN0cmxlbihjdHgtPnZpZGVvX2ZpbGVuYW1lKSkpIHsKICAgICAgICAgICAgICAgIHZpZGVv X2RldmljZSA9IGRldmljZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgICAgIC8vIGxvb2tpbmcgZm9yIG11eGVkIGlucHV0cwogICAgICAgIGZvciAo QVZDYXB0dXJlRGV2aWNlICpkZXZpY2UgaW4gZGV2aWNlc19tdXhlZCkgewotICAgICAgICAgICAg aWYgKCFzdHJuY21wKGN0eC0+dmlkZW9fZmlsZW5hbWUsIFtbZGV2aWNlIGxvY2FsaXplZE5hbWVd IFVURjhTdHJpbmddLCBzdHJsZW4oY3R4LT52aWRlb19maWxlbmFtZSkpKSB7CisgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lID0gW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ107 CisgICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgbmFtZSwgc3Ry bGVuKGN0eC0+dmlkZW9fZmlsZW5hbWUpKSkgeworICAgICAgICAgICAgICAgIHZpZGVvX2Rldmlj ZSA9IGRldmljZTsKKyAgICAgICAgICAgICAgICBjdHgtPnZpZGVvX2lzX211eGVkID0gMTsKKyAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3Qg Y2hhciAqdW5pcXVlSWQgPSBDTEVBTlVQX0RFVklDRV9JRChbZGV2aWNlIHVuaXF1ZUlEXSk7Cisg ICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT52aWRlb19maWxlbmFtZSwgdW5pcXVlSWQsIHN0 cmxlbihjdHgtPnZpZGVvX2ZpbGVuYW1lKSkpIHsKICAgICAgICAgICAgICAgIHZpZGVvX2Rldmlj ZSA9IGRldmljZTsKICAgICAgICAgICAgICAgIGN0eC0+dmlkZW9faXNfbXV4ZWQgPSAxOwogICAg ICAgICAgICAgICAgYnJlYWs7CkBAIC05MDksMTAgKzkyOSwyMyBAQCBzdGF0aWMgaW50IGF2Zl9y ZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgLy8gbG9va2luZyBmb3Igc2Ny ZWVuIGlucHV0cwogICAgICAgIGlmICghdmlkZW9fZGV2aWNlKSB7CiAgICAgICAgICAgIGludCBp ZHg7CisgICAgICAgICAgICBDR0RpcmVjdERpc3BsYXlJRCBzY3JlZW5zW251bV9zY3JlZW5zXTsK KyAgICAgICAgICAgIENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3NjcmVlbnMsIHNjcmVlbnMs ICZudW1fc2NyZWVucyk7CisgICAgICAgICAgICBBVkNhcHR1cmVTY3JlZW5JbnB1dCogY2FwdHVy ZV9zY3JlZW5faW5wdXQgPSBOVUxMOworCiAgICAgICAgICAgIGlmKHNzY2FuZihjdHgtPnZpZGVv X2ZpbGVuYW1lLCAiQ2FwdHVyZSBzY3JlZW4gJWQiLCAmaWR4KSAmJiBpZHggPCBudW1fc2NyZWVu cykgewotICAgICAgICAgICAgICAgIENHRGlyZWN0RGlzcGxheUlEIHNjcmVlbnNbbnVtX3NjcmVl bnNdOwotICAgICAgICAgICAgICAgIENHR2V0QWN0aXZlRGlzcGxheUxpc3QobnVtX3NjcmVlbnMs IHNjcmVlbnMsICZudW1fc2NyZWVucyk7Ci0gICAgICAgICAgICAgICAgQVZDYXB0dXJlU2NyZWVu SW5wdXQqIGNhcHR1cmVfc2NyZWVuX2lucHV0ID0gW1tbQVZDYXB0dXJlU2NyZWVuSW5wdXQgYWxs b2NdIGluaXRXaXRoRGlzcGxheUlEOnNjcmVlbnNbaWR4XV0gYXV0b3JlbGVhc2VdOworICAgICAg ICAgICAgICAgIGNhcHR1cmVfc2NyZWVuX2lucHV0ID0gW1tbQVZDYXB0dXJlU2NyZWVuSW5wdXQg YWxsb2NdIGluaXRXaXRoRGlzcGxheUlEOnNjcmVlbnNbaWR4XV0gYXV0b3JlbGVhc2VdOworICAg ICAgICAgICAgfQorCisgICAgICAgICAgICBpZihzc2NhbmYoY3R4LT52aWRlb19maWxlbmFtZSwg IkF2ZmlsdGVyQXZmb3VuZGF0aW9uQ2FwdHVyZVNjcmVlbiVkIiwgJmlkeCkpIHsKKyAgICAgICAg ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bV9zY3JlZW5zOyBpKyspIHsKKyAgICAgICAg ICAgICAgICAgICAgaWYgKHNjcmVlbnNbaV0gPT0gaWR4KSB7CisgICAgICAgICAgICAgICAgICAg ICAgICBjYXB0dXJlX3NjcmVlbl9pbnB1dCA9IFtbW0FWQ2FwdHVyZVNjcmVlbklucHV0IGFsbG9j XSBpbml0V2l0aERpc3BsYXlJRDppZHhdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg KGNhcHR1cmVfc2NyZWVuX2lucHV0KSB7CiAgICAgICAgICAgICAgICB2aWRlb19kZXZpY2UgPSAo QVZDYXB0dXJlRGV2aWNlKikgY2FwdHVyZV9zY3JlZW5faW5wdXQ7CiAgICAgICAgICAgICAgICBj dHgtPnZpZGVvX2RldmljZV9pbmRleCA9IGN0eC0+bnVtX3ZpZGVvX2RldmljZXMgKyBpZHg7CiAg ICAgICAgICAgICAgICBjdHgtPnZpZGVvX2lzX3NjcmVlbiA9IDE7CkBAIC05NjMsNyArOTk2LDE0 IEBAIHN0YXRpYyBpbnQgYXZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAg ICBOU0FycmF5ICpkZXZpY2VzID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VzV2l0aE1lZGlhVHlw ZTpBVk1lZGlhVHlwZUF1ZGlvXTsKCiAgICAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2UgKmRldmlj ZSBpbiBkZXZpY2VzKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cm5jbXAoY3R4LT5hdWRpb19maWxl bmFtZSwgW1tkZXZpY2UgbG9jYWxpemVkTmFtZV0gVVRGOFN0cmluZ10sIHN0cmxlbihjdHgtPmF1 ZGlvX2ZpbGVuYW1lKSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBbW2Rldmlj ZSBsb2NhbGl6ZWROYW1lXSBVVEY4U3RyaW5nXTsKKyAgICAgICAgICAgIGlmICghc3RybmNtcChj dHgtPmF1ZGlvX2ZpbGVuYW1lLCBuYW1lLCBzdHJsZW4oY3R4LT5hdWRpb19maWxlbmFtZSkpKSB7 CisgICAgICAgICAgICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjaGFyICp1bmlxdWVJ ZCA9IENMRUFOVVBfREVWSUNFX0lEKFtkZXZpY2UgdW5pcXVlSURdKTsKKyAgICAgICAgICAgIGlm ICghc3RybmNtcChjdHgtPmF1ZGlvX2ZpbGVuYW1lLCB1bmlxdWVJZCwgc3RybGVuKGN0eC0+YXVk aW9fZmlsZW5hbWUpKSkgewogICAgICAgICAgICAgICAgYXVkaW9fZGV2aWNlID0gZGV2aWNlOwog ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0 LTEzMikKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K