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 6ABA34323C for ; Wed, 25 May 2022 10:54:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6612C68B4EB; Wed, 25 May 2022 13:54:10 +0300 (EEST) Received: from tytanium.xyz (82-64-195-121.subs.proxad.net [82.64.195.121]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 960BA68B284 for ; Wed, 25 May 2022 13:54:04 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tytanium.xyz; s=mail; t=1653476041; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references; bh=hEU7Bo8PIa/pXNXdM45aKFL93YBRuX4YaZEWCx09e6s=; b=yuXi9kAMZhSZ+fikZFgseF3Al9OmBub2zyjiELcPuXc7G71LT0ePxhyBU3OB+hsG9WlDGi dd1sbLafgDeJTOV+S5gqvTwEvN/FWrLa+6gFrUKGSx0EHGIxYwMGm95vTaIdsk8+cHHL5V v2hua38ANqsQqwury4SOSAOUu8zy8bM= Content-Type: multipart/mixed; boundary="------------E6nLLNnLwVIC4KqZUQ45R4Gt" Message-ID: <09de2d36-147f-a02d-987c-6fc34cdf110a@tytanium.xyz> Date: Wed, 25 May 2022 12:54:01 +0200 MIME-Version: 1.0 From: Trystan Mata To: ffmpeg-devel@ffmpeg.org Content-Language: en-US Subject: [FFmpeg-devel] [PATCH v6] avcodec/mfenc: Dynamically load MFPlat.DLL 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: This is a multi-part message in MIME format. --------------E6nLLNnLwVIC4KqZUQ45R4Gt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Changes since the v5: - Library handle and function pointer are back in MFContext. - MFTEnumEx has been move to it too. - dlopen and dlclose are preferred. This will avoid multiple look up on one context. And each context will have his own library handle. Also, sorry for the e-mail earlier sent twice. // Trystan --------------E6nLLNnLwVIC4KqZUQ45R4Gt Content-Type: text/x-patch; charset=UTF-8; name="0001-avcodec-mfenc-Dynamically-load-MediaFoundation-libra.patch" Content-Disposition: attachment; filename*0="0001-avcodec-mfenc-Dynamically-load-MediaFoundation-libra.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxZjZhNDJhNzU4ZTliZDdmY2E0OWYyMmNlOTZjMzliNTliMDU5ZGMyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUcnlzdGFuIE1hdGEgPHRyeXN0YW4ubWF0YUB0eXRh bml1bS54eXo+CkRhdGU6IFdlZCwgMjUgTWF5IDIwMjIgMTA6NTg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIXSBhdmNvZGVjL21mZW5jOiBEeW5hbWljYWxseSBsb2FkIE1lZGlhRm91bmRh dGlvbiBsaWJyYXJ5CgpBbGxvd3Mgbm9uLVVXUCBidWlsZHMgb2YgRkZtcGVnIHdpdGggTWVk aWFGb3VuZGF0aW9uIHRvIHdvcmsgb24KTiBlZGl0aW9ucyBvZiBXaW5kb3dzIHdoaWNoIGFy ZSB3aXRob3V0IE1lZGlhRm91bmRhdGlvbiBieSBkZWZhdWx0LgoKT24gVVdQIHRhcmdldCwg RkZtcGVnIGlzIGxpbmsgZGlyZWN0bHkgYWdhaW5zdCBNZWRpYUZvdW5kYXRpb24gc2luY2UK TG9hZExpYnJhcnkgaXMgbm90IGF2YWlsYWJsZS4KClRoaXMgY29tbWl0IGFkcmVzc2VzIGh0 dHBzOi8vdHJhYy5mZm1wZWcub3JnL3RpY2tldC85Nzg4Ci0tLQogY29uZmlndXJlICAgICAg ICAgICAgIHwgIDUgKystCiBsaWJhdmNvZGVjL21mX3V0aWxzLmMgfCA1OSArKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLQogbGliYXZjb2RlYy9tZl91dGlscy5oIHwgMzUgKysrKysrKysr Ky0tLS0tLQogbGliYXZjb2RlYy9tZmVuYy5jICAgIHwgOTYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0 aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29u ZmlndXJlCmluZGV4IGYxMTViMjEwNjQuLjQzMmEwZDE2M2QgMTAwNzU1Ci0tLSBhL2NvbmZp Z3VyZQorKysgYi9jb25maWd1cmUKQEAgLTMxMzAsNyArMzEzMCw2IEBAIHdtdjNfdmRwYXVf aHdhY2NlbF9zZWxlY3Q9InZjMV92ZHBhdV9od2FjY2VsIgogCiAjIGhhcmR3YXJlLWFjY2Vs ZXJhdGVkIGNvZGVjcwogbWVkaWFmb3VuZGF0aW9uX2RlcHM9Im1mdHJhbnNmb3JtX2ggTUZD cmVhdGVBbGlnbmVkTWVtb3J5QnVmZmVyIgotbWVkaWFmb3VuZGF0aW9uX2V4dHJhbGlicz0i LWxtZnBsYXQgLWxtZnV1aWQgLWxvbGUzMiAtbHN0cm1paWRzIgogb214X2RlcHM9ImxpYmRs IHB0aHJlYWRzIgogb214X3JwaV9zZWxlY3Q9Im9teCIKIHFzdl9kZXBzPSJsaWJtZngiCkBA IC02ODc2LDYgKzY4NzUsMTAgQEAgdGVzdF9jcHAgPDxFT0YgJiYgZW5hYmxlIHV3cCAmJiBk M2QxMXZhX2V4dHJhbGlicz0iLWxkeGdpIC1sZDNkMTEiCiAjZW5kaWYKIEVPRgogCisjIG1l ZGlhZm91bmRhdGlvbiByZXF1aXJlcyBsaW5raW5nIGRpcmVjdGx5IHRvIG1mcGxhdCBhbmQg bWZ1dWlkIGlmIGJ1aWxkaW5nCisjIGZvciB1d3AgdGFyZ2V0CitlbmFibGVkIHV3cCAmJiBt ZWRpYWZvdW5kYXRpb25fZXh0cmFsaWJzPSItbG1mcGxhdCAtbG1mdXVpZCAtbG9sZTMyIC1s c3RybWlpZHMiIHx8IG1lZGlhZm91bmRhdGlvbl9leHRyYWxpYnM9Ii1sb2xlMzIgLWxzdHJt aWlkcyIKKwogZW5hYmxlZCBsaWJkcm0gJiYKICAgICBjaGVja19wa2dfY29uZmlnIGxpYmRy bV9nZXRmYjIgbGliZHJtICJ4Zjg2ZHJtTW9kZS5oIiBkcm1Nb2RlR2V0RkIyCiAKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvbWZfdXRpbHMuYyBiL2xpYmF2Y29kZWMvbWZfdXRpbHMuYwpp bmRleCBlZWFiZDBjZTBiLi40OGUzYTYzZWZjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21m X3V0aWxzLmMKKysrIGIvbGliYXZjb2RlYy9tZl91dGlscy5jCkBAIC00NywzOSArNDcsNiBA QCBIUkVTVUxUIGZmX01GU2V0QXR0cmlidXRlU2l6ZShJTUZBdHRyaWJ1dGVzICpwYXR0ciwg UkVGR1VJRCBndWlkLAogI2RlZmluZSBmZl9NRlNldEF0dHJpYnV0ZVJhdGlvIGZmX01GU2V0 QXR0cmlidXRlU2l6ZQogI2RlZmluZSBmZl9NRkdldEF0dHJpYnV0ZVJhdGlvIGZmX01GR2V0 QXR0cmlidXRlU2l6ZQogCi0vLyBNRlRFbnVtRXggd2FzIG1pc3NpbmcgZnJvbSBtaW5ndy13 NjQncyBtZnBsYXQgaW1wb3J0IGxpYnJhcnkgdW50aWwKLS8vIG1pbmd3LXc2NCB2Ni4wLjAs IHRodXMgd3JhcCBpdCBhbmQgbG9hZCBpdCB1c2luZyBHZXRQcm9jQWRkcmVzcy4KLS8vIEl0 J3MgYWxzbyBtaXNzaW5nIGluIFdpbmRvd3MgVmlzdGEncyBtZnBsYXQuZGxsLgotSFJFU1VM VCBmZl9NRlRFbnVtRXgoR1VJRCBndWlkQ2F0ZWdvcnksIFVJTlQzMiBGbGFncywKLSAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IE1GVF9SRUdJU1RFUl9UWVBFX0lORk8gKnBJbnB1dFR5 cGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBNRlRfUkVHSVNURVJfVFlQRV9JTkZP ICpwT3V0cHV0VHlwZSwKLSAgICAgICAgICAgICAgICAgICAgIElNRkFjdGl2YXRlICoqKnBw cE1GVEFjdGl2YXRlLCBVSU5UMzIgKnBudW1NRlRBY3RpdmF0ZSkKLXsKLSAgICBIUkVTVUxU IChXSU5BUEkgKk1GVEVudW1FeF9wdHIpKEdVSUQgZ3VpZENhdGVnb3J5LCBVSU5UMzIgRmxh Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBNRlRfUkVH SVNURVJfVFlQRV9JTkZPICpwSW5wdXRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgTUZUX1JFR0lTVEVSX1RZUEVfSU5GTyAqcE91dHB1dFR5cGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTUZBY3RpdmF0ZSAqKipw cHBNRlRBY3RpdmF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJ TlQzMiAqcG51bU1GVEFjdGl2YXRlKSA9IE5VTEw7Ci0jaWYgIUhBVkVfVVdQCi0gICAgSEFO RExFIGxpYiA9IEdldE1vZHVsZUhhbmRsZVcoTCJtZnBsYXQuZGxsIik7Ci0gICAgaWYgKGxp YikKLSAgICAgICAgTUZURW51bUV4X3B0ciA9ICh2b2lkICopR2V0UHJvY0FkZHJlc3MobGli LCAiTUZURW51bUV4Iik7Ci0jZWxzZQotICAgIC8vIEluIFVXUCAod2hpY2ggbGFja3MgR2V0 TW9kdWxlSGFuZGxlKSwganVzdCBsaW5rIGRpcmVjdGx5IGFnYWluc3QKLSAgICAvLyB0aGUg ZnVuY3Rpb25zIC0gdGhpcyByZXF1aXJlcyBidWlsZGluZyB3aXRoIG5ldy9jb21wbGV0ZSBl bm91Z2gKLSAgICAvLyBpbXBvcnQgbGlicmFyaWVzLgotICAgIE1GVEVudW1FeF9wdHIgPSBN RlRFbnVtRXg7Ci0jZW5kaWYKLSAgICBpZiAoIU1GVEVudW1FeF9wdHIpCi0gICAgICAgIHJl dHVybiBFX0ZBSUw7Ci0gICAgcmV0dXJuIE1GVEVudW1FeF9wdHIoZ3VpZENhdGVnb3J5LAot ICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzLAotICAgICAgICAgICAgICAgICAgICAg ICAgIHBJbnB1dFR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcE91dHB1dFR5cGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcHBwTUZUQWN0aXZhdGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgcG51bU1GVEFjdGl2YXRlKTsKLX0KLQogY2hhciAqZmZfaHJfc3Ry X2J1ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBIUkVTVUxUIGhyKQogewogI2RlZmluZSBI Uih4KSBjYXNlIHg6IHJldHVybiAoY2hhciAqKSAjIHg7CkBAIC0xMDYsMTkgKzczLDIwIEBA IGNoYXIgKmZmX2hyX3N0cl9idWYoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgSFJFU1VMVCBo cikKIC8vIElmIGZpbGxfZGF0YSE9TlVMTCwgaW5pdGlhbGl6ZSB0aGUgYnVmZmVyIGFuZCBz ZXQgdGhlIGxlbmd0aC4gKFRoaXMgaXMgYQogLy8gc3VidGxlIGJ1dCBpbXBvcnRhbnQgZGlm ZmVyZW5jZTogc29tZSBkZWNvZGVycyB3YW50IEN1cnJlbnRMZW5ndGg9PTAgb24KIC8vIHBy b3ZpZGVkIG91dHB1dCBidWZmZXJzLikKLUlNRlNhbXBsZSAqZmZfY3JlYXRlX21lbW9yeV9z YW1wbGUodm9pZCAqZmlsbF9kYXRhLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWduKQorSU1G U2FtcGxlICpmZl9jcmVhdGVfbWVtb3J5X3NhbXBsZShNRkZ1bmN0aW9ucyAqZix2b2lkICpm aWxsX2RhdGEsIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplX3QgYWxpZ24pCiB7CiAgICAgSFJFU1VMVCBocjsKICAgICBJTUZTYW1wbGUg KnNhbXBsZTsKICAgICBJTUZNZWRpYUJ1ZmZlciAqYnVmZmVyOwogCi0gICAgaHIgPSBNRkNy ZWF0ZVNhbXBsZSgmc2FtcGxlKTsKKyAgICBociA9IGYtPk1GQ3JlYXRlU2FtcGxlKCZzYW1w bGUpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAg IGFsaWduID0gRkZNQVgoYWxpZ24sIDE2KTsgLy8gMTYgaXMgInJlY29tbWVuZGVkIiwgZXZl biBpZiBub3QgcmVxdWlyZWQKIAotICAgIGhyID0gTUZDcmVhdGVBbGlnbmVkTWVtb3J5QnVm ZmVyKHNpemUsIGFsaWduIC0gMSwgJmJ1ZmZlcik7CisgICAgaHIgPSBmLT5NRkNyZWF0ZUFs aWduZWRNZW1vcnlCdWZmZXIoc2l6ZSwgYWxpZ24gLSAxLCAmYnVmZmVyKTsKICAgICBpZiAo RkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTU0OCw3ICs1MTYsNyBA QCBjb25zdCBDTFNJRCAqZmZfY29kZWNfdG9fbWZfc3VidHlwZShlbnVtIEFWQ29kZWNJRCBj b2RlYykKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgaW5pdF9jb21fbWYodm9pZCAqbG9nKQor c3RhdGljIGludCBpbml0X2NvbV9tZih2b2lkICpsb2csIE1GRnVuY3Rpb25zICpmKQogewog ICAgIEhSRVNVTFQgaHI7CiAKQEAgLTU2MSw3ICs1MjksNyBAQCBzdGF0aWMgaW50IGluaXRf Y29tX21mKHZvaWQgKmxvZykKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKICAg ICB9CiAKLSAgICBociA9IE1GU3RhcnR1cChNRl9WRVJTSU9OLCBNRlNUQVJUVVBfRlVMTCk7 CisgICAgaHIgPSBmLT5NRlN0YXJ0dXAoTUZfVkVSU0lPTiwgTUZTVEFSVFVQX0ZVTEwpOwog ICAgIGlmIChGQUlMRUQoaHIpKSB7CiAgICAgICAgIGF2X2xvZyhsb2csIEFWX0xPR19FUlJP UiwgImNvdWxkIG5vdCBpbml0aWFsaXplIE1lZGlhRm91bmRhdGlvblxuIik7CiAgICAgICAg IENvVW5pbml0aWFsaXplKCk7CkBAIC01NzEsMTUgKzUzOSwxNiBAQCBzdGF0aWMgaW50IGlu aXRfY29tX21mKHZvaWQgKmxvZykKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQg dW5pbml0X2NvbV9tZih2b2lkKQorc3RhdGljIHZvaWQgdW5pbml0X2NvbV9tZihNRkZ1bmN0 aW9ucyAqZikKIHsKLSAgICBNRlNodXRkb3duKCk7CisgICAgZi0+TUZTaHV0ZG93bigpOwog ICAgIENvVW5pbml0aWFsaXplKCk7CiB9CiAKIC8vIEZpbmQgYW5kIGNyZWF0ZSBhIElNRlRy YW5zZm9ybSB3aXRoIHRoZSBnaXZlbiBpbnB1dC9vdXRwdXQgdHlwZXMuIFdoZW4gZG9uZSwK IC8vIHlvdSBzaG91bGQgdXNlIGZmX2ZyZWVfbWYoKSB0byBkZXN0cm95IGl0LCB3aGljaCB3 aWxsIGFsc28gdW5pbml0IENPTS4KIGludCBmZl9pbnN0YW50aWF0ZV9tZih2b2lkICpsb2cs CisgICAgICAgICAgICAgICAgICAgICAgTUZGdW5jdGlvbnMgKmYsCiAgICAgICAgICAgICAg ICAgICAgICAgR1VJRCBjYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICBNRlRfUkVH SVNURVJfVFlQRV9JTkZPICppbl90eXBlLAogICAgICAgICAgICAgICAgICAgICAgIE1GVF9S RUdJU1RFUl9UWVBFX0lORk8gKm91dF90eXBlLApAQCAtNTk0LDcgKzU2Myw3IEBAIGludCBm Zl9pbnN0YW50aWF0ZV9tZih2b2lkICpsb2csCiAgICAgSU1GQWN0aXZhdGUgKndpbm5lciA9 IDA7CiAgICAgVUlOVDMyIGZsYWdzOwogCi0gICAgcmV0ID0gaW5pdF9jb21fbWYobG9nKTsK KyAgICByZXQgPSBpbml0X2NvbV9tZihsb2csIGYpOwogICAgIGlmIChyZXQgPCAwKQogICAg ICAgICByZXR1cm4gcmV0OwogCkBAIC02MDYsNyArNTc1LDcgQEAgaW50IGZmX2luc3RhbnRp YXRlX21mKHZvaWQgKmxvZywKICAgICAgICAgZmxhZ3MgfD0gTUZUX0VOVU1fRkxBR19TWU5D TUZUOwogICAgIH0KIAotICAgIGhyID0gZmZfTUZURW51bUV4KGNhdGVnb3J5LCBmbGFncywg aW5fdHlwZSwgb3V0X3R5cGUsICZhY3RpdmF0ZSwKKyAgICBociA9IGYtPk1GVEVudW1FeChj YXRlZ29yeSwgZmxhZ3MsIGluX3R5cGUsIG91dF90eXBlLCAmYWN0aXZhdGUsCiAgICAgICAg ICAgICAgICAgICAgICAgJm51bV9hY3RpdmF0ZSk7CiAgICAgaWYgKEZBSUxFRChocikpCiAg ICAgICAgIGdvdG8gZXJyb3JfdW5pbml0X21mOwpAQCAtNjY3LDE0ICs2MzYsMTQgQEAgaW50 IGZmX2luc3RhbnRpYXRlX21mKHZvaWQgKmxvZywKICAgICByZXR1cm4gMDsKIAogZXJyb3Jf dW5pbml0X21mOgotICAgIHVuaW5pdF9jb21fbWYoKTsKKyAgICB1bmluaXRfY29tX21mKGYp OwogICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7CiB9CiAKLXZvaWQgZmZfZnJlZV9tZihJ TUZUcmFuc2Zvcm0gKiptZnQpCit2b2lkIGZmX2ZyZWVfbWYoTUZGdW5jdGlvbnMgKmYsIElN RlRyYW5zZm9ybSAqKm1mdCkKIHsKICAgICBpZiAoKm1mdCkKICAgICAgICAgSU1GVHJhbnNm b3JtX1JlbGVhc2UoKm1mdCk7CiAgICAgKm1mdCA9IE5VTEw7Ci0gICAgdW5pbml0X2NvbV9t ZigpOworICAgIHVuaW5pdF9jb21fbWYoZik7CiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L21mX3V0aWxzLmggYi9saWJhdmNvZGVjL21mX3V0aWxzLmgKaW5kZXggZDUxNDcyM2MzYi4u M2IxMjM0NGYzZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tZl91dGlscy5oCisrKyBiL2xp YmF2Y29kZWMvbWZfdXRpbHMuaApAQCAtNDEsNiArNDEsMjUgQEAKIAogI2luY2x1ZGUgImF2 Y29kZWMuaCIKIAorLy8gV2luZG93cyBOIGVkaXRpb25zIGRvZXMgbm90IHByb3ZpZGUgTWVk aWFGb3VuZGF0aW9uIGJ5IGRlZmF1bHQuCisvLyBTbyB0byBhdm9pZCBETEwgbG9hZGluZyBl cnJvciwgTWVkaWFGb3VuZGF0aW9uIHdpbGwgYmUgZHluYW1pY2FsbHkgbG9hZGVkCisvLyBl eGNlcHQgb24gVVdQIGJ1aWxkIHNpbmNlIExvYWRMaWJyYXJ5IGlzIG5vdCBhdmFpbGFibGUg b24gaXQuCit0eXBlZGVmIHN0cnVjdCBNRkZ1bmN0aW9ucyB7CisgICAgSFJFU1VMVCAoV0lO QVBJICpNRlN0YXJ0dXApIChVTE9ORyBWZXJzaW9uLCBEV09SRCBkd0ZsYWdzKTsKKyAgICBI UkVTVUxUIChXSU5BUEkgKk1GU2h1dGRvd24pICh2b2lkKTsKKyAgICBIUkVTVUxUIChXSU5B UEkgKk1GQ3JlYXRlQWxpZ25lZE1lbW9yeUJ1ZmZlcikgKERXT1JEIGNiTWF4TGVuZ3RoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFdP UkQgY2JBbGlnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElNRk1lZGlhQnVmZmVyICoqcHBCdWZmZXIpOworICAgIEhSRVNVTFQg KFdJTkFQSSAqTUZDcmVhdGVTYW1wbGUpIChJTUZTYW1wbGUgKipwcElNRlNhbXBsZSk7Cisg ICAgSFJFU1VMVCAoV0lOQVBJICpNRkNyZWF0ZU1lZGlhVHlwZSkgKElNRk1lZGlhVHlwZSAq KnBwTUZUeXBlKTsKKyAgICAvLyBNRlRFbnVtRXggaXMgbWlzc2luZyBpbiBXaW5kb3dzIFZp c3RhJ3MgbWZwbGF0LmRsbC4KKyAgICBIUkVTVUxUIChXSU5BUEkgKk1GVEVudW1FeCkoR1VJ RCBndWlkQ2F0ZWdvcnksIFVJTlQzMiBGbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgTUZUX1JFR0lTVEVSX1RZUEVfSU5GTyAqcElucHV0VHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTUZUX1JFR0lTVEVSX1RZUEVf SU5GTyAqcE91dHB1dFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElN RkFjdGl2YXRlICoqKnBwcE1GVEFjdGl2YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBVSU5UMzIgKnBudW1NRlRBY3RpdmF0ZSk7Cit9IE1GRnVuY3Rpb25zOworCiAv LyBUaGVzZSBmdW5jdGlvbnMgZG8gZXhpc3QgaW4gbWZhcGkuaCwgYnV0IGFyZSBvbmx5IGF2 YWlsYWJsZSB3aXRoaW4KIC8vIF9fY3BsdXNwbHVzIGlmZGVmcy4KIEhSRVNVTFQgZmZfTUZH ZXRBdHRyaWJ1dGVTaXplKElNRkF0dHJpYnV0ZXMgKnBhdHRyLCBSRUZHVUlEIGd1aWQsCkBA IC01MCwxNSArNjksNiBAQCBIUkVTVUxUIGZmX01GU2V0QXR0cmlidXRlU2l6ZShJTUZBdHRy aWJ1dGVzICpwYXR0ciwgUkVGR1VJRCBndWlkLAogI2RlZmluZSBmZl9NRlNldEF0dHJpYnV0 ZVJhdGlvIGZmX01GU2V0QXR0cmlidXRlU2l6ZQogI2RlZmluZSBmZl9NRkdldEF0dHJpYnV0 ZVJhdGlvIGZmX01GR2V0QXR0cmlidXRlU2l6ZQogCi0vLyBNRlRFbnVtRXggd2FzIG1pc3Np bmcgZnJvbSBtaW5ndy13NjQncyBtZnBsYXQgaW1wb3J0IGxpYnJhcnkgdW50aWwKLS8vIG1p bmd3LXc2NCB2Ni4wLjAsIHRodXMgd3JhcCBpdCBhbmQgbG9hZCBpdCB1c2luZyBHZXRQcm9j QWRkcmVzcy4KLS8vIEl0J3MgYWxzbyBtaXNzaW5nIGluIFdpbmRvd3MgVmlzdGEncyBtZnBs YXQuZGxsLgotSFJFU1VMVCBmZl9NRlRFbnVtRXgoR1VJRCBndWlkQ2F0ZWdvcnksIFVJTlQz MiBGbGFncywKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1GVF9SRUdJU1RFUl9UWVBF X0lORk8gKnBJbnB1dFR5cGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBNRlRfUkVH SVNURVJfVFlQRV9JTkZPICpwT3V0cHV0VHlwZSwKLSAgICAgICAgICAgICAgICAgICAgIElN RkFjdGl2YXRlICoqKnBwcE1GVEFjdGl2YXRlLCBVSU5UMzIgKnBudW1NRlRBY3RpdmF0ZSk7 Ci0KLQogLy8gVGhlc2UgZG8gZXhpc3QgaW4gbWluZ3ctdzY0J3MgY29kZWNhcGkuaCwgYnV0 IHRoZXkgYXJlbid0IHByb3Blcmx5IGRlZmluZWQKIC8vIGJ5IHRoZSBoZWFkZXIgdW50aWwg YWZ0ZXIgbWluZ3ctdzY0IHY3LjAuMC4KIERFRklORV9HVUlEKGZmX0NPREVDQVBJX0FWRGVj VmlkZW9UaHVtYm5haWxHZW5lcmF0aW9uTW9kZSwgMHgyZWZkOGVlZSwweDExNTAsMHg0MzI4 LDB4OWMsMHhmNSwweDY2LDB4ZGMsMHhlOSwweDMzLDB4ZmMsMHhmNCk7CkBAIC0xNTAsNyAr MTYwLDggQEAgY2hhciAqZmZfaHJfc3RyX2J1ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBI UkVTVUxUIGhyKTsKICNkZWZpbmUgRkZfVkFMX1ZUX1VJNCh2KSBGRl9WQVJJQU5UX1ZBTFVF KFZUX1VJNCwgLnVsVmFsID0gKHYpKQogI2RlZmluZSBGRl9WQUxfVlRfQk9PTCh2KSBGRl9W QVJJQU5UX1ZBTFVFKFZUX0JPT0wsIC5ib29sVmFsID0gKHYpKQogCi1JTUZTYW1wbGUgKmZm X2NyZWF0ZV9tZW1vcnlfc2FtcGxlKHZvaWQgKmZpbGxfZGF0YSwgc2l6ZV90IHNpemUsIHNp emVfdCBhbGlnbik7CitJTUZTYW1wbGUgKmZmX2NyZWF0ZV9tZW1vcnlfc2FtcGxlKE1GRnVu Y3Rpb25zICpmLCB2b2lkICpmaWxsX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ24pOwogZW51bSBBVlNhbXBsZUZv cm1hdCBmZl9tZWRpYV90eXBlX3RvX3NhbXBsZV9mbXQoSU1GQXR0cmlidXRlcyAqdHlwZSk7 CiBlbnVtIEFWUGl4ZWxGb3JtYXQgZmZfbWVkaWFfdHlwZV90b19waXhfZm10KElNRkF0dHJp YnV0ZXMgKnR5cGUpOwogY29uc3QgR1VJRCAqZmZfcGl4X2ZtdF90b19ndWlkKGVudW0gQVZQ aXhlbEZvcm1hdCBwaXhfZm10KTsKQEAgLTE2MCwxMCArMTcxLDEwIEBAIGNoYXIgKmZmX2d1 aWRfc3RyX2J1ZihjaGFyICpidWYsIHNpemVfdCBidWZfc2l6ZSwgY29uc3QgR1VJRCAqZ3Vp ZCk7CiB2b2lkIGZmX2F0dHJpYnV0ZXNfZHVtcCh2b2lkICpsb2csIElNRkF0dHJpYnV0ZXMg KmF0dHJzKTsKIHZvaWQgZmZfbWVkaWFfdHlwZV9kdW1wKHZvaWQgKmxvZywgSU1GTWVkaWFU eXBlICp0eXBlKTsKIGNvbnN0IENMU0lEICpmZl9jb2RlY190b19tZl9zdWJ0eXBlKGVudW0g QVZDb2RlY0lEIGNvZGVjKTsKLWludCBmZl9pbnN0YW50aWF0ZV9tZih2b2lkICpsb2csIEdV SUQgY2F0ZWdvcnksCitpbnQgZmZfaW5zdGFudGlhdGVfbWYodm9pZCAqbG9nLCBNRkZ1bmN0 aW9ucyAqZiwgR1VJRCBjYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICBNRlRfUkVH SVNURVJfVFlQRV9JTkZPICppbl90eXBlLAogICAgICAgICAgICAgICAgICAgICAgIE1GVF9S RUdJU1RFUl9UWVBFX0lORk8gKm91dF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgIGlu dCB1c2VfaHcsIElNRlRyYW5zZm9ybSAqKnJlcyk7Ci12b2lkIGZmX2ZyZWVfbWYoSU1GVHJh bnNmb3JtICoqbWZ0KTsKK3ZvaWQgZmZfZnJlZV9tZihNRkZ1bmN0aW9ucyAqZiwgSU1GVHJh bnNmb3JtICoqbWZ0KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21mZW5j LmMgYi9saWJhdmNvZGVjL21mZW5jLmMKaW5kZXggMjgwOTQxY2YyZS4uNmVhZWE0MjlkYSAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tZmVuYy5jCisrKyBiL2xpYmF2Y29kZWMvbWZlbmMu YwpAQCAtMjksOSArMjksMTIgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgogI2lu Y2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNs dWRlICJjb21wYXQvdzMyZGxmY24uaCIKIAogdHlwZWRlZiBzdHJ1Y3QgTUZDb250ZXh0IHsK ICAgICBBVkNsYXNzICphdl9jbGFzczsKKyAgICBITU9EVUxFIGxpYnJhcnk7CisgICAgTUZG dW5jdGlvbnMgZnVuY3Rpb25zOwogICAgIEFWRnJhbWUgKmZyYW1lOwogICAgIGludCBpc192 aWRlbywgaXNfYXVkaW87CiAgICAgR1VJRCBtYWluX3N1YnR5cGU7CkBAIC0yOTIsNyArMjk1 LDggQEAgc3RhdGljIElNRlNhbXBsZSAqbWZfYV9hdmZyYW1lX3RvX3NhbXBsZShBVkNvZGVj Q29udGV4dCAqYXZjdHgsIGNvbnN0IEFWRnJhbWUgKmYKICAgICBicHMgPSBhdl9nZXRfYnl0 ZXNfcGVyX3NhbXBsZShhdmN0eC0+c2FtcGxlX2ZtdCkgKiBhdmN0eC0+Y2hfbGF5b3V0Lm5i X2NoYW5uZWxzOwogICAgIGxlbiA9IGZyYW1lLT5uYl9zYW1wbGVzICogYnBzOwogCi0gICAg c2FtcGxlID0gZmZfY3JlYXRlX21lbW9yeV9zYW1wbGUoZnJhbWUtPmRhdGFbMF0sIGxlbiwg Yy0+aW5faW5mby5jYkFsaWdubWVudCk7CisgICAgc2FtcGxlID0gZmZfY3JlYXRlX21lbW9y eV9zYW1wbGUoJmMtPmZ1bmN0aW9ucywgZnJhbWUtPmRhdGFbMF0sIGxlbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5pbl9pbmZvLmNiQWxpZ25tZW50KTsK ICAgICBpZiAoc2FtcGxlKQogICAgICAgICBJTUZTYW1wbGVfU2V0U2FtcGxlRHVyYXRpb24o c2FtcGxlLCBtZl90b19tZl90aW1lKGF2Y3R4LCBmcmFtZS0+bmJfc2FtcGxlcykpOwogICAg IHJldHVybiBzYW1wbGU7CkBAIC0zMTIsNyArMzE2LDggQEAgc3RhdGljIElNRlNhbXBsZSAq bWZfdl9hdmZyYW1lX3RvX3NhbXBsZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIGNvbnN0IEFW RnJhbWUgKmYKICAgICBpZiAoc2l6ZSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0g ICAgc2FtcGxlID0gZmZfY3JlYXRlX21lbW9yeV9zYW1wbGUoTlVMTCwgc2l6ZSwgYy0+aW5f aW5mby5jYkFsaWdubWVudCk7CisgICAgc2FtcGxlID0gZmZfY3JlYXRlX21lbW9yeV9zYW1w bGUoJmMtPmZ1bmN0aW9ucywgTlVMTCwgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjLT5pbl9pbmZvLmNiQWxpZ25tZW50KTsKICAgICBpZiAoIXNhbXBs ZSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTQyMiw3ICs0MjcsOSBAQCBzdGF0aWMg aW50IG1mX3JlY2VpdmVfc2FtcGxlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgSU1GU2FtcGxl ICoqb3V0X3NhbXBsZSkKICAgICAgICAgfQogCiAgICAgICAgIGlmICghYy0+b3V0X3N0cmVh bV9wcm92aWRlc19zYW1wbGVzKSB7Ci0gICAgICAgICAgICBzYW1wbGUgPSBmZl9jcmVhdGVf bWVtb3J5X3NhbXBsZShOVUxMLCBjLT5vdXRfaW5mby5jYlNpemUsIGMtPm91dF9pbmZvLmNi QWxpZ25tZW50KTsKKyAgICAgICAgICAgIHNhbXBsZSA9IGZmX2NyZWF0ZV9tZW1vcnlfc2Ft cGxlKCZjLT5mdW5jdGlvbnMsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjLT5vdXRfaW5mby5jYlNpemUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5vdXRfaW5mby5jYkFsaWdubWVudCk7 CiAgICAgICAgICAgICBpZiAoIXNhbXBsZSkKICAgICAgICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOwogICAgICAgICB9CkBAIC03NzcsNyArNzg0LDcgQEAgc3RhdGljIGlu dCBtZl9jaG9vc2Vfb3V0cHV0X3R5cGUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGlm IChvdXRfdHlwZSkgewogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLCAi cGlja2luZyBvdXRwdXQgdHlwZSAlZC5cbiIsIG91dF90eXBlX2luZGV4KTsKICAgICB9IGVs c2UgewotICAgICAgICBociA9IE1GQ3JlYXRlTWVkaWFUeXBlKCZvdXRfdHlwZSk7CisgICAg ICAgIGhyID0gYy0+ZnVuY3Rpb25zLk1GQ3JlYXRlTWVkaWFUeXBlKCZvdXRfdHlwZSk7CiAg ICAgICAgIGlmIChGQUlMRUQoaHIpKSB7CiAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVO T01FTSk7CiAgICAgICAgICAgICBnb3RvIGRvbmU7CkBAIC0xMDA1LDcgKzEwMTIsOCBAQCBl cnI6CiAgICAgcmV0dXJuIHJlczsKIH0KIAotc3RhdGljIGludCBtZl9jcmVhdGUodm9pZCAq bG9nLCBJTUZUcmFuc2Zvcm0gKiptZnQsIGNvbnN0IEFWQ29kZWMgKmNvZGVjLCBpbnQgdXNl X2h3KQorc3RhdGljIGludCBtZl9jcmVhdGUodm9pZCAqbG9nLCBNRkZ1bmN0aW9ucyAqZiwg SU1GVHJhbnNmb3JtICoqbWZ0LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVZDb2Rl YyAqY29kZWMsIGludCB1c2VfaHcpCiB7CiAgICAgaW50IGlzX2F1ZGlvID0gY29kZWMtPnR5 cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPOwogICAgIGNvbnN0IENMU0lEICpzdWJ0eXBlID0g ZmZfY29kZWNfdG9fbWZfc3VidHlwZShjb2RlYy0+aWQpOwpAQCAtMTAyOCwxMyArMTAzNiwx MyBAQCBzdGF0aWMgaW50IG1mX2NyZWF0ZSh2b2lkICpsb2csIElNRlRyYW5zZm9ybSAqKm1m dCwgY29uc3QgQVZDb2RlYyAqY29kZWMsIGludCB1cwogICAgICAgICBjYXRlZ29yeSA9IE1G VF9DQVRFR09SWV9WSURFT19FTkNPREVSOwogICAgIH0KIAotICAgIGlmICgocmV0ID0gZmZf aW5zdGFudGlhdGVfbWYobG9nLCBjYXRlZ29yeSwgTlVMTCwgJnJlZywgdXNlX2h3LCBtZnQp KSA8IDApCisgICAgaWYgKChyZXQgPSBmZl9pbnN0YW50aWF0ZV9tZihsb2csIGYsIGNhdGVn b3J5LCBOVUxMLCAmcmVnLCB1c2VfaHcsIG1mdCkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJl dDsKIAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1mX2luaXQoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQorc3RhdGljIGludCBtZl9pbml0X2VuY29kZXIoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQogewogICAgIE1GQ29udGV4dCAqYyA9IGF2Y3R4LT5wcml2X2RhdGE7CiAg ICAgSFJFU1VMVCBocjsKQEAgLTEwNTgsNyArMTA2Niw3IEBAIHN0YXRpYyBpbnQgbWZfaW5p dChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAKICAgICBjLT5tYWluX3N1YnR5cGUgPSAqc3Vi dHlwZTsKIAotICAgIGlmICgocmV0ID0gbWZfY3JlYXRlKGF2Y3R4LCAmYy0+bWZ0LCBhdmN0 eC0+Y29kZWMsIHVzZV9odykpIDwgMCkKKyAgICBpZiAoKHJldCA9IG1mX2NyZWF0ZShhdmN0 eCwgJmMtPmZ1bmN0aW9ucywgJmMtPm1mdCwgYXZjdHgtPmNvZGVjLCB1c2VfaHcpKSA8IDAp CiAgICAgICAgIHJldHVybiByZXQ7CiAKICAgICBpZiAoKHJldCA9IG1mX3VubG9ja19hc3lu YyhhdmN0eCkpIDwgMCkKQEAgLTExMjIsNiArMTEzMCw1NiBAQCBzdGF0aWMgaW50IG1mX2lu aXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIHJldHVybiAwOwogfQogCisjaWYgIUhB VkVfVVdQCisjZGVmaW5lIExPQURfTUZfRlVOQ1RJT04oY29udGV4dCwgZnVuY19uYW1lKSBc CisgICAgY29udGV4dC0+ZnVuY3Rpb25zLmZ1bmNfbmFtZSA9ICh2b2lkICopR2V0UHJvY0Fk ZHJlc3MoY29udGV4dC0+bGlicmFyeSwgI2Z1bmNfbmFtZSAiIik7IFwKKyAgICBpZiAoIWNv bnRleHQtPmZ1bmN0aW9ucy5mdW5jX25hbWUpIFwKKyAgICB7IFwKKyAgICAgICAgYXZfbG9n KGNvbnRleHQsIEFWX0xPR19FUlJPUiwgIkRMTCBtZnBsYXQuZGxsIGZhaWxlZCB0byBmaW5k IGZ1bmN0aW9uICJcCisgICAgICAgICAgICNmdW5jX25hbWUgIlxuIik7IFwKKyAgICAgICAg cmV0dXJuIEFWRVJST1JfVU5LTk9XTjsgXAorICAgIH0KKyNlbHNlCisvLyBJbiBVV1AgKHdo aWNoIGxhY2tzIExvYWRMaWJyYXJ5KSwganVzdCBsaW5rIGRpcmVjdGx5IGFnYWluc3QKKy8v IHRoZSBmdW5jdGlvbnMgLSB0aGlzIHJlcXVpcmVzIGJ1aWxkaW5nIHdpdGggbmV3L2NvbXBs ZXRlIGVub3VnaAorLy8gaW1wb3J0IGxpYnJhcmllcy4KKyNkZWZpbmUgTE9BRF9NRl9GVU5D VElPTihjb250ZXh0LCBmdW5jX25hbWUpIFwKKyAgICBjb250ZXh0LT5mdW5jdGlvbnMuZnVu Y19uYW1lID0gZnVuY19uYW1lOyBcCisgICAgaWYgKCFjb250ZXh0LT5mdW5jdGlvbnMuZnVu Y19uYW1lKSBcCisgICAgeyBcCisgICAgICAgIGF2X2xvZyhjb250ZXh0LCBBVl9MT0dfRVJS T1IsICJGYWlsZWQgdG8gZmluZCBmdW5jdGlvbiAiICNmdW5jX25hbWUgXAorICAgICAgICAg ICAgICAgIlxuIik7IFwKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfVU5LTk9XTjsgXAorICAg IH0KKyNlbmRpZgorCisvLyBXaW5kb3dzIE4gZWRpdGlvbnMgZG9lcyBub3QgcHJvdmlkZSBN ZWRpYUZvdW5kYXRpb24gYnkgZGVmYXVsdC4KKy8vIFNvIHRvIGF2b2lkIERMTCBsb2FkaW5n IGVycm9yLCBNZWRpYUZvdW5kYXRpb24gaXMgZHluYW1pY2FsbHkgbG9hZGVkIGV4Y2VwdAor Ly8gb24gVVdQIGJ1aWxkIHNpbmNlIExvYWRMaWJyYXJ5IGlzIG5vdCBhdmFpbGFibGUgb24g aXQuCitzdGF0aWMgaW50IG1mX2xvYWRfbGlicmFyeShBVkNvZGVjQ29udGV4dCAqYXZjdHgp Cit7CisgICAgTUZDb250ZXh0ICpjID0gYXZjdHgtPnByaXZfZGF0YTsKKworI2lmICFIQVZF X1VXUAorICAgIGMtPmxpYnJhcnkgPSBkbG9wZW4oIm1mcGxhdC5kbGwiLCAwKTsKKworICAg IGlmICghYy0+bGlicmFyeSkgeworICAgICAgICBhdl9sb2coYywgQVZfTE9HX0VSUk9SLCAi RExMIG1mcGxhdC5kbGwgZmFpbGVkIHRvIG9wZW5cbiIpOworICAgICAgICByZXR1cm4gQVZF UlJPUl9VTktOT1dOOworICAgIH0KKyNlbmRpZgorCisgICAgTE9BRF9NRl9GVU5DVElPTihj LCBNRlN0YXJ0dXApOworICAgIExPQURfTUZfRlVOQ1RJT04oYywgTUZTaHV0ZG93bik7Cisg ICAgTE9BRF9NRl9GVU5DVElPTihjLCBNRkNyZWF0ZUFsaWduZWRNZW1vcnlCdWZmZXIpOwor ICAgIExPQURfTUZfRlVOQ1RJT04oYywgTUZDcmVhdGVTYW1wbGUpOworICAgIExPQURfTUZf RlVOQ1RJT04oYywgTUZDcmVhdGVNZWRpYVR5cGUpOworICAgIC8vIE1GVEVudW1FeCBpcyBt aXNzaW5nIGluIFdpbmRvd3MgVmlzdGEncyBtZnBsYXQuZGxsLgorICAgIExPQURfTUZfRlVO Q1RJT04oYywgTUZURW51bUV4KTsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50 IG1mX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKIHsKICAgICBNRkNvbnRleHQgKmMg PSBhdmN0eC0+cHJpdl9kYXRhOwpAQCAtMTEzMiw3ICsxMTkwLDE1IEBAIHN0YXRpYyBpbnQg bWZfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGlmIChjLT5hc3luY19ldmVu dHMpCiAgICAgICAgIElNRk1lZGlhRXZlbnRHZW5lcmF0b3JfUmVsZWFzZShjLT5hc3luY19l dmVudHMpOwogCi0gICAgZmZfZnJlZV9tZigmYy0+bWZ0KTsKKyNpZiAhSEFWRV9VV1AKKyAg ICBpZiAoYy0+bGlicmFyeSkKKyAgICAgICAgZmZfZnJlZV9tZigmYy0+ZnVuY3Rpb25zLCAm Yy0+bWZ0KTsKKworICAgIGRsY2xvc2UoYy0+bGlicmFyeSk7CisgICAgYy0+bGlicmFyeSA9 IE5VTEw7CisjZWxzZQorICAgIGZmX2ZyZWVfbWYoJmMtPmZ1bmN0aW9ucywgJmMtPm1mdCk7 CisjZW5kaWYKIAogICAgIGF2X2ZyYW1lX2ZyZWUoJmMtPmZyYW1lKTsKIApAQCAtMTE0Miw2 ICsxMjA4LDE4IEBAIHN0YXRpYyBpbnQgbWZfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 KQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IG1mX2luaXQoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQoreworICAgIGludCByZXQ7CisgICAgaWYgKChyZXQgPSBtZl9sb2FkX2xp YnJhcnkoYXZjdHgpKSA9PSAwKSB7CisgICAgICAgICAgIGlmICgocmV0ID0gbWZfaW5pdF9l bmNvZGVyKGF2Y3R4KSkgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg ICAgICB9CisgICAgfQorICAgIG1mX2Nsb3NlKGF2Y3R4KTsKKyAgICByZXR1cm4gcmV0Owor fQorCiAjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihNRkNvbnRleHQsIHgpCiAKICNkZWZp bmUgTUZfRU5DT0RFUihNRURJQVRZUEUsIE5BTUUsIElELCBPUFRTLCBFWFRSQSkgXAotLSAK Mi4zNi4xCgo= --------------E6nLLNnLwVIC4KqZUQ45R4Gt 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". --------------E6nLLNnLwVIC4KqZUQ45R4Gt--