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 A860C43159 for ; Sat, 21 May 2022 19:31:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C71BF68B49C; Sat, 21 May 2022 22:31:18 +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 91F7168B346 for ; Sat, 21 May 2022 22:31:12 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tytanium.xyz; s=mail; t=1653161471; 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=/YIXz1GAp5ua7SxMVItF7EHSWFSd7Feu06N8yWp45zM=; b=q9Yft2mZ7to63LO62Vzobz6PXB9QE/ntbXikmiW10UwLN9BHTPdKYQ9Phyn/tgu6Q24534 4BMYpknTFBilkTiv29RFslNcVPO8EWeVu9VgH3RpHJHc3FVLgtkM9ZRuaKuDAZpp4OnN6h 6i5kDeT8WfhrT4OyZoVRfkGHYuJhhRI= Content-Type: multipart/mixed; boundary="------------Eq0RhxSfWG0n5gkKzZcJVBfX" Message-ID: Date: Sat, 21 May 2022 21:31:10 +0200 MIME-Version: 1.0 From: Trystan Mata To: ffmpeg-devel@ffmpeg.org Content-Language: en-US Subject: [FFmpeg-devel] [PATCH v5] 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. --------------Eq0RhxSfWG0n5gkKzZcJVBfX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Changes since the v4: - Avoid having two mf_init function declared (missing #if !HAVE_UWP) - Better commit message about linking with UWP Changes since the v3: - Library handle and function pointer are no longer in MFContext. - If UWP is enabled, avcodec will be linked directly against MFPlat.DLL. - MediaFoundation functions are now called like MFTEnumEx, like Martin Storsjö suggested in his review of the v3. I forgot to mention it on earlier versions, this patch addresses https://trac.ffmpeg.org/ticket/9788. // Trystan --------------Eq0RhxSfWG0n5gkKzZcJVBfX 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 RnJvbSA5MTE1ZGYyMzQ2ZTIzZDJlM2VmZjRmYjc4Y2JkODA0MTkyNjdlYjdkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUcnlzdGFuIE1hdGEgPHRyeXN0YW4ubWF0YUB0eXRh bml1bS54eXo+CkRhdGU6IFNhdCwgMjEgTWF5IDIwMjIgMTY6MjY6NTYgKzAyMDAKU3ViamVj dDogW1BBVENIXSBhdmNvZGVjL21mZW5jOiBEeW5hbWljYWxseSBsb2FkIE1lZGlhRm91bmRh dGlvbiBsaWJyYXJ5CgpBbGxvd3Mgbm9uLVVXUCBidWlsZHMgb2YgRkZtcGVnIHdpdGggTWVk aWFGb3VuZGF0aW9uIHRvIHdvcmsgb24KTiBlZGl0aW9ucyBvZiBXaW5kb3dzIHdoaWNoIGFy ZSB3aXRob3V0IE1lZGlhRm91bmRhdGlvbiBieSBkZWZhdWx0LgoKT24gVVdQIHRhcmdldCwg YXZjb2RlYyBpcyBsaW5rIGRpcmVjdGx5IGFnYWluc3QgTWVkaWFGb3VuZGF0aW9uIHNpbmNl CkxvYWRMaWJyYXJ5IGlzIG5vdCBhdmFpbGFibGUuCgpUaGlzIGNvbW1pdCBhZHJlc3NlcyBo dHRwczovL3RyYWMuZmZtcGVnLm9yZy90aWNrZXQvOTc4OAoKU2lnbmVkLW9mZi1ieTogVHJ5 c3RhbiBNYXRhIDx0cnlzdGFuLm1hdGFAdHl0YW5pdW0ueHl6PgotLS0KIGNvbmZpZ3VyZSAg ICAgICAgICAgICB8ICAgNSArLQogbGliYXZjb2RlYy9tZl91dGlscy5jIHwgMTA2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogbGliYXZjb2RlYy9tZl91 dGlscy5oIHwgIDE5ICsrKysrKy0tCiBsaWJhdmNvZGVjL21mZW5jLmMgICAgfCAgMjUgKysr KysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGYxMTVi MjEwNjQuLjQzMmEwZDE2M2QgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1 cmUKQEAgLTMxMzAsNyArMzEzMCw2IEBAIHdtdjNfdmRwYXVfaHdhY2NlbF9zZWxlY3Q9InZj MV92ZHBhdV9od2FjY2VsIgogCiAjIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGNvZGVjcwogbWVk aWFmb3VuZGF0aW9uX2RlcHM9Im1mdHJhbnNmb3JtX2ggTUZDcmVhdGVBbGlnbmVkTWVtb3J5 QnVmZmVyIgotbWVkaWFmb3VuZGF0aW9uX2V4dHJhbGlicz0iLWxtZnBsYXQgLWxtZnV1aWQg LWxvbGUzMiAtbHN0cm1paWRzIgogb214X2RlcHM9ImxpYmRsIHB0aHJlYWRzIgogb214X3Jw aV9zZWxlY3Q9Im9teCIKIHFzdl9kZXBzPSJsaWJtZngiCkBAIC02ODc2LDYgKzY4NzUsMTAg QEAgdGVzdF9jcHAgPDxFT0YgJiYgZW5hYmxlIHV3cCAmJiBkM2QxMXZhX2V4dHJhbGlicz0i LWxkeGdpIC1sZDNkMTEiCiAjZW5kaWYKIEVPRgogCisjIG1lZGlhZm91bmRhdGlvbiByZXF1 aXJlcyBsaW5raW5nIGRpcmVjdGx5IHRvIG1mcGxhdCBhbmQgbWZ1dWlkIGlmIGJ1aWxkaW5n CisjIGZvciB1d3AgdGFyZ2V0CitlbmFibGVkIHV3cCAmJiBtZWRpYWZvdW5kYXRpb25fZXh0 cmFsaWJzPSItbG1mcGxhdCAtbG1mdXVpZCAtbG9sZTMyIC1sc3RybWlpZHMiIHx8IG1lZGlh Zm91bmRhdGlvbl9leHRyYWxpYnM9Ii1sb2xlMzIgLWxzdHJtaWlkcyIKKwogZW5hYmxlZCBs aWJkcm0gJiYKICAgICBjaGVja19wa2dfY29uZmlnIGxpYmRybV9nZXRmYjIgbGliZHJtICJ4 Zjg2ZHJtTW9kZS5oIiBkcm1Nb2RlR2V0RkIyCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv bWZfdXRpbHMuYyBiL2xpYmF2Y29kZWMvbWZfdXRpbHMuYwppbmRleCBlZWFiZDBjZTBiLi5i ODc1NmNjY2VhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21mX3V0aWxzLmMKKysrIGIvbGli YXZjb2RlYy9tZl91dGlscy5jCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJtZl91 dGlscy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCisjaW5jbHVkZSAiY29t cGF0L3czMmRsZmNuLmgiCiAKIEhSRVNVTFQgZmZfTUZHZXRBdHRyaWJ1dGVTaXplKElNRkF0 dHJpYnV0ZXMgKnBhdHRyLCBSRUZHVUlEIGd1aWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBVSU5UMzIgKnB3LCBVSU5UMzIgKnBoKQpAQCAtNDcsOSArNDgsODMgQEAgSFJF U1VMVCBmZl9NRlNldEF0dHJpYnV0ZVNpemUoSU1GQXR0cmlidXRlcyAqcGF0dHIsIFJFRkdV SUQgZ3VpZCwKICNkZWZpbmUgZmZfTUZTZXRBdHRyaWJ1dGVSYXRpbyBmZl9NRlNldEF0dHJp YnV0ZVNpemUKICNkZWZpbmUgZmZfTUZHZXRBdHRyaWJ1dGVSYXRpbyBmZl9NRkdldEF0dHJp YnV0ZVNpemUKIAotLy8gTUZURW51bUV4IHdhcyBtaXNzaW5nIGZyb20gbWluZ3ctdzY0J3Mg bWZwbGF0IGltcG9ydCBsaWJyYXJ5IHVudGlsCi0vLyBtaW5ndy13NjQgdjYuMC4wLCB0aHVz IHdyYXAgaXQgYW5kIGxvYWQgaXQgdXNpbmcgR2V0UHJvY0FkZHJlc3MuCi0vLyBJdCdzIGFs c28gbWlzc2luZyBpbiBXaW5kb3dzIFZpc3RhJ3MgbWZwbGF0LmRsbC4KKy8vIFdpbmRvd3Mg TiBlZGl0aW9ucyBkb2VzIG5vdCBwcm92aWRlIE1lZGlhRm91bmRhdGlvbiBieSBkZWZhdWx0 LgorLy8gU28gdG8gYXZvaWQgRExMIGxvYWRpbmcgZXJyb3IsIE1lZGlhRm91bmRhdGlvbiBp cyBkeW5hbWljYWxseSBsb2FkZWQgZXhjZXB0CisvLyBvbiBVV1AgYnVpbGQgc2luY2UgTG9h ZExpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBvbiBpdC4KKyNpZiAhSEFWRV9VV1AKK3N0YXRp YyBITU9EVUxFIG1mX2xpYnJhcnkgPSBOVUxMOworCitpbnQgZmZfbWZfbG9hZF9saWJyYXJ5 KHZvaWQgKmxvZykKK3sKKyAgICBtZl9saWJyYXJ5ID0gd2luMzJfZGxvcGVuKCJtZnBsYXQu ZGxsIik7CisKKyAgICBpZiAoIW1mX2xpYnJhcnkpIHsKKyAgICAgICAgYXZfbG9nKGxvZywg QVZfTE9HX0VSUk9SLCAiRExMIG1mcGxhdC5kbGwgZmFpbGVkIHRvIG9wZW5cbiIpOworICAg ICAgICByZXR1cm4gQVZFUlJPUl9VTktOT1dOOworICAgIH0KKworICAgIHJldHVybiAwOwor fQorCit2b2lkIGZmX21mX3VubG9hZF9saWJyYXJ5KHZvaWQpCit7CisgICAgRnJlZUxpYnJh cnkobWZfbGlicmFyeSk7CisgICAgbWZfbGlicmFyeSA9IE5VTEw7Cit9CisKKyNkZWZpbmUg R0VUX01GX0ZVTkNUSU9OKHB0ciwgZnVuY19uYW1lKSBcCisgICAgcHRyID0gKHZvaWQgKilH ZXRQcm9jQWRkcmVzcyhtZl9saWJyYXJ5LCAjZnVuY19uYW1lICIiKTsgXAorICAgIGlmICgh cHRyKSBcCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisjZWxzZQorLy8gSW4gVVdQICh3aGlj aCBsYWNrcyBMb2FkTGlicmFyeSksIGp1c3QgbGluayBkaXJlY3RseSBhZ2FpbnN0CisvLyB0 aGUgZnVuY3Rpb25zIC0gdGhpcyByZXF1aXJlcyBidWlsZGluZyB3aXRoIG5ldy9jb21wbGV0 ZSBlbm91Z2gKKy8vIGltcG9ydCBsaWJyYXJpZXMuCisjZGVmaW5lIEdFVF9NRl9GVU5DVElP TihwdHIsIGZ1bmNfbmFtZSkgXAorICAgIHB0ciA9IGZ1bmNfbmFtZTsgXAorICAgIGlmICgh cHRyKSBcCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisjZW5kaWYKKworSFJFU1VMVCBmZl9N RlN0YXJ0dXAoVUxPTkcgVmVyc2lvbiwgRFdPUkQgZHdGbGFncykKK3sKKyAgICBIUkVTVUxU IChXSU5BUEkgKk1GU3RhcnR1cF9wdHIpKFVMT05HIFZlcnNpb24sIERXT1JEIGR3RmxhZ3Mp ID0gTlVMTDsKKyAgICBHRVRfTUZfRlVOQ1RJT04oTUZTdGFydHVwX3B0ciwgTUZTdGFydHVw KTsKKyAgICByZXR1cm4gTUZTdGFydHVwX3B0cihWZXJzaW9uLCBkd0ZsYWdzKTsKK30KKwor SFJFU1VMVCBmZl9NRlNodXRkb3duKHZvaWQpCit7CisgICAgSFJFU1VMVCAoV0lOQVBJICpN RlNodXRkb3duX3B0cikodm9pZCkgPSBOVUxMOworICAgIEdFVF9NRl9GVU5DVElPTihNRlNo dXRkb3duX3B0ciwgTUZTaHV0ZG93bik7CisgICAgcmV0dXJuIE1GU2h1dGRvd25fcHRyKCk7 Cit9CisKK0hSRVNVTFQgZmZfTUZDcmVhdGVTYW1wbGUoSU1GU2FtcGxlICoqcHBJTUZTYW1w bGUpCit7CisgICAgSFJFU1VMVCAoV0lOQVBJICpNRkNyZWF0ZVNhbXBsZV9wdHIpKElNRlNh bXBsZSAqKnBwSU1GU2FtcGxlKSA9IE5VTEw7CisgICAgR0VUX01GX0ZVTkNUSU9OKE1GQ3Jl YXRlU2FtcGxlX3B0ciwgTUZDcmVhdGVTYW1wbGUpOworICAgIHJldHVybiBNRkNyZWF0ZVNh bXBsZV9wdHIocHBJTUZTYW1wbGUpOworfQorCitIUkVTVUxUIGZmX01GQ3JlYXRlQWxpZ25l ZE1lbW9yeUJ1ZmZlcihEV09SRCBjYk1heExlbmd0aCwgRFdPUkQgY2JBbGlnbWVudCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNRk1lZGlhQnVmZmVyICoq cHBCdWZmZXIpCit7CisgICAgSFJFU1VMVCAoV0lOQVBJICpNRkNyZWF0ZUFsaWduZWRNZW1v cnlCdWZmZXJfcHRyKShEV09SRCBjYk1heExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERXT1JEIGNiQWxpZ21lbnQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ TUZNZWRpYUJ1ZmZlciAqKnBwQnVmZmVyKSA9IE5VTEw7CisgICAgR0VUX01GX0ZVTkNUSU9O KE1GQ3JlYXRlQWxpZ25lZE1lbW9yeUJ1ZmZlcl9wdHIsIE1GQ3JlYXRlQWxpZ25lZE1lbW9y eUJ1ZmZlcik7CisgICAgcmV0dXJuIE1GQ3JlYXRlQWxpZ25lZE1lbW9yeUJ1ZmZlcl9wdHIo Y2JNYXhMZW5ndGgsIGNiQWxpZ21lbnQsIHBwQnVmZmVyKTsKK30KKworSFJFU1VMVCBmZl9N RkNyZWF0ZU1lZGlhVHlwZShJTUZNZWRpYVR5cGUgKipwcE1GVHlwZSkKK3sKKyAgICBIUkVT VUxUIChXSU5BUEkgKk1GQ3JlYXRlTWVkaWFUeXBlX3B0cikoSU1GTWVkaWFUeXBlICoqcHBN RlR5cGUpID0gTlVMTDsKKyAgICBHRVRfTUZfRlVOQ1RJT04oTUZDcmVhdGVNZWRpYVR5cGVf cHRyLCBNRkNyZWF0ZU1lZGlhVHlwZSk7CisgICAgcmV0dXJuIE1GQ3JlYXRlTWVkaWFUeXBl X3B0cihwcE1GVHlwZSk7Cit9CisKKy8vIE1GVEVudW1FeCBpcyBtaXNzaW5nIGluIFdpbmRv d3MgVmlzdGEncyBtZnBsYXQuZGxsLgogSFJFU1VMVCBmZl9NRlRFbnVtRXgoR1VJRCBndWlk Q2F0ZWdvcnksIFVJTlQzMiBGbGFncywKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1G VF9SRUdJU1RFUl9UWVBFX0lORk8gKnBJbnB1dFR5cGUsCiAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBNRlRfUkVHSVNURVJfVFlQRV9JTkZPICpwT3V0cHV0VHlwZSwKQEAgLTYwLDE4 ICsxMzUsNyBAQCBIUkVTVUxUIGZmX01GVEVudW1FeChHVUlEIGd1aWRDYXRlZ29yeSwgVUlO VDMyIEZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg TUZUX1JFR0lTVEVSX1RZUEVfSU5GTyAqcE91dHB1dFR5cGUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJTUZBY3RpdmF0ZSAqKipwcHBNRlRBY3RpdmF0ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJTlQzMiAqcG51bU1GVEFjdGl2 YXRlKSA9IE5VTEw7Ci0jaWYgIUhBVkVfVVdQCi0gICAgSEFORExFIGxpYiA9IEdldE1vZHVs ZUhhbmRsZVcoTCJtZnBsYXQuZGxsIik7Ci0gICAgaWYgKGxpYikKLSAgICAgICAgTUZURW51 bUV4X3B0ciA9ICh2b2lkICopR2V0UHJvY0FkZHJlc3MobGliLCAiTUZURW51bUV4Iik7Ci0j ZWxzZQotICAgIC8vIEluIFVXUCAod2hpY2ggbGFja3MgR2V0TW9kdWxlSGFuZGxlKSwganVz dCBsaW5rIGRpcmVjdGx5IGFnYWluc3QKLSAgICAvLyB0aGUgZnVuY3Rpb25zIC0gdGhpcyBy ZXF1aXJlcyBidWlsZGluZyB3aXRoIG5ldy9jb21wbGV0ZSBlbm91Z2gKLSAgICAvLyBpbXBv cnQgbGlicmFyaWVzLgotICAgIE1GVEVudW1FeF9wdHIgPSBNRlRFbnVtRXg7Ci0jZW5kaWYK LSAgICBpZiAoIU1GVEVudW1FeF9wdHIpCi0gICAgICAgIHJldHVybiBFX0ZBSUw7CisgICAg R0VUX01GX0ZVTkNUSU9OKE1GVEVudW1FeF9wdHIsIE1GVEVudW1FeCk7CiAgICAgcmV0dXJu IE1GVEVudW1FeF9wdHIoZ3VpZENhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAg IEZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBJbnB1dFR5cGUsCkBAIC0xMTIs MTMgKzE3NiwxMyBAQCBJTUZTYW1wbGUgKmZmX2NyZWF0ZV9tZW1vcnlfc2FtcGxlKHZvaWQg KmZpbGxfZGF0YSwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbikKICAgICBJTUZTYW1wbGUg KnNhbXBsZTsKICAgICBJTUZNZWRpYUJ1ZmZlciAqYnVmZmVyOwogCi0gICAgaHIgPSBNRkNy ZWF0ZVNhbXBsZSgmc2FtcGxlKTsKKyAgICBociA9IGZmX01GQ3JlYXRlU2FtcGxlKCZzYW1w bGUpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAg IGFsaWduID0gRkZNQVgoYWxpZ24sIDE2KTsgLy8gMTYgaXMgInJlY29tbWVuZGVkIiwgZXZl biBpZiBub3QgcmVxdWlyZWQKIAotICAgIGhyID0gTUZDcmVhdGVBbGlnbmVkTWVtb3J5QnVm ZmVyKHNpemUsIGFsaWduIC0gMSwgJmJ1ZmZlcik7CisgICAgaHIgPSBmZl9NRkNyZWF0ZUFs aWduZWRNZW1vcnlCdWZmZXIoc2l6ZSwgYWxpZ24gLSAxLCAmYnVmZmVyKTsKICAgICBpZiAo RkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTU2MSw3ICs2MjUsNyBA QCBzdGF0aWMgaW50IGluaXRfY29tX21mKHZvaWQgKmxvZykKICAgICAgICAgcmV0dXJuIEFW RVJST1IoRU5PU1lTKTsKICAgICB9CiAKLSAgICBociA9IE1GU3RhcnR1cChNRl9WRVJTSU9O LCBNRlNUQVJUVVBfRlVMTCk7CisgICAgaHIgPSBmZl9NRlN0YXJ0dXAoTUZfVkVSU0lPTiwg TUZTVEFSVFVQX0ZVTEwpOwogICAgIGlmIChGQUlMRUQoaHIpKSB7CiAgICAgICAgIGF2X2xv Zyhsb2csIEFWX0xPR19FUlJPUiwgImNvdWxkIG5vdCBpbml0aWFsaXplIE1lZGlhRm91bmRh dGlvblxuIik7CiAgICAgICAgIENvVW5pbml0aWFsaXplKCk7CkBAIC01NzMsNyArNjM3LDcg QEAgc3RhdGljIGludCBpbml0X2NvbV9tZih2b2lkICpsb2cpCiAKIHN0YXRpYyB2b2lkIHVu aW5pdF9jb21fbWYodm9pZCkKIHsKLSAgICBNRlNodXRkb3duKCk7CisgICAgZmZfTUZTaHV0 ZG93bigpOwogICAgIENvVW5pbml0aWFsaXplKCk7CiB9CiAKQEAgLTY3Myw2ICs3MzcsMTAg QEAgZXJyb3JfdW5pbml0X21mOgogCiB2b2lkIGZmX2ZyZWVfbWYoSU1GVHJhbnNmb3JtICoq bWZ0KQogeworI2lmICFIQVZFX1VXUAorICAgIGlmICghbWZfbGlicmFyeSkKKyAgICAgICAg cmV0dXJuOworI2VuZGlmCiAgICAgaWYgKCptZnQpCiAgICAgICAgIElNRlRyYW5zZm9ybV9S ZWxlYXNlKCptZnQpOwogICAgICptZnQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy9tZl91dGlscy5oIGIvbGliYXZjb2RlYy9tZl91dGlscy5oCmluZGV4IGQ1MTQ3MjNjM2Iu LjYzODRiYzIxMzMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbWZfdXRpbHMuaAorKysgYi9s aWJhdmNvZGVjL21mX3V0aWxzLmgKQEAgLTUwLDkgKzUwLDIyIEBAIEhSRVNVTFQgZmZfTUZT ZXRBdHRyaWJ1dGVTaXplKElNRkF0dHJpYnV0ZXMgKnBhdHRyLCBSRUZHVUlEIGd1aWQsCiAj ZGVmaW5lIGZmX01GU2V0QXR0cmlidXRlUmF0aW8gZmZfTUZTZXRBdHRyaWJ1dGVTaXplCiAj ZGVmaW5lIGZmX01GR2V0QXR0cmlidXRlUmF0aW8gZmZfTUZHZXRBdHRyaWJ1dGVTaXplCiAK LS8vIE1GVEVudW1FeCB3YXMgbWlzc2luZyBmcm9tIG1pbmd3LXc2NCdzIG1mcGxhdCBpbXBv cnQgbGlicmFyeSB1bnRpbAotLy8gbWluZ3ctdzY0IHY2LjAuMCwgdGh1cyB3cmFwIGl0IGFu ZCBsb2FkIGl0IHVzaW5nIEdldFByb2NBZGRyZXNzLgotLy8gSXQncyBhbHNvIG1pc3Npbmcg aW4gV2luZG93cyBWaXN0YSdzIG1mcGxhdC5kbGwuCisvLyBXaW5kb3dzIE4gZWRpdGlvbnMg ZG9lcyBub3QgcHJvdmlkZSBNZWRpYUZvdW5kYXRpb24gYnkgZGVmYXVsdC4KKy8vIFNvIHRv IGF2b2lkIERMTCBsb2FkaW5nIGVycm9yLCBNZWRpYUZvdW5kYXRpb24gaXMgZHluYW1pY2Fs bHkgbG9hZGVkIGV4Y2VwdAorLy8gb24gVVdQIGJ1aWxkIHNpbmNlIExvYWRMaWJyYXJ5IGlz IG5vdCBhdmFpbGFibGUgb24gaXQuCisjaWYgIUhBVkVfVVdQCitpbnQgZmZfbWZfbG9hZF9s aWJyYXJ5KHZvaWQgKmxvZyk7Cit2b2lkIGZmX21mX3VubG9hZF9saWJyYXJ5KHZvaWQpOwor I2VuZGlmCisKK0hSRVNVTFQgZmZfTUZDcmVhdGVTYW1wbGUoSU1GU2FtcGxlICoqcHBJTUZT YW1wbGUpOworSFJFU1VMVCBmZl9NRkNyZWF0ZUFsaWduZWRNZW1vcnlCdWZmZXIoRFdPUkQg Y2JNYXhMZW5ndGgsIERXT1JEIGNiQWxpZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJTUZNZWRpYUJ1ZmZlciAqKnBwQnVmZmVyKTsKK0hSRVNVTFQg ZmZfTUZTdGFydHVwKFVMT05HIFZlcnNpb24sIERXT1JEIGR3RmxhZ3MpOworSFJFU1VMVCBm Zl9NRlNodXRkb3duKHZvaWQpOworSFJFU1VMVCBmZl9NRkNyZWF0ZU1lZGlhVHlwZShJTUZN ZWRpYVR5cGUgKipwcE1GVHlwZSk7CisKKy8vIE1GVEVudW1FeCBpcyBtaXNzaW5nIGluIFdp bmRvd3MgVmlzdGEncyBtZnBsYXQuZGxsLgogSFJFU1VMVCBmZl9NRlRFbnVtRXgoR1VJRCBn dWlkQ2F0ZWdvcnksIFVJTlQzMiBGbGFncywKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IE1GVF9SRUdJU1RFUl9UWVBFX0lORk8gKnBJbnB1dFR5cGUsCiAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBNRlRfUkVHSVNURVJfVFlQRV9JTkZPICpwT3V0cHV0VHlwZSwKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvbWZlbmMuYyBiL2xpYmF2Y29kZWMvbWZlbmMuYwppbmRleCAy ODA5NDFjZjJlLi42MDgxNTQ1NWI3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21mZW5jLmMK KysrIGIvbGliYXZjb2RlYy9tZmVuYy5jCkBAIC03NzcsNyArNzc3LDcgQEAgc3RhdGljIGlu dCBtZl9jaG9vc2Vfb3V0cHV0X3R5cGUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGlm IChvdXRfdHlwZSkgewogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLCAi cGlja2luZyBvdXRwdXQgdHlwZSAlZC5cbiIsIG91dF90eXBlX2luZGV4KTsKICAgICB9IGVs c2UgewotICAgICAgICBociA9IE1GQ3JlYXRlTWVkaWFUeXBlKCZvdXRfdHlwZSk7CisgICAg ICAgIGhyID0gZmZfTUZDcmVhdGVNZWRpYVR5cGUoJm91dF90eXBlKTsKICAgICAgICAgaWYg KEZBSUxFRChocikpIHsKICAgICAgICAgICAgIHJldCA9IEFWRVJST1IoRU5PTUVNKTsKICAg ICAgICAgICAgIGdvdG8gZG9uZTsKQEAgLTEwMzQsNyArMTAzNCwxMSBAQCBzdGF0aWMgaW50 IG1mX2NyZWF0ZSh2b2lkICpsb2csIElNRlRyYW5zZm9ybSAqKm1mdCwgY29uc3QgQVZDb2Rl YyAqY29kZWMsIGludCB1cwogICAgIHJldHVybiAwOwogfQogCisjaWYgIUhBVkVfVVdQCitz dGF0aWMgaW50IG1mX2luaXRfZW5jb2RlcihBVkNvZGVjQ29udGV4dCAqYXZjdHgpCisjZWxz ZQogc3RhdGljIGludCBtZl9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKKyNlbmRpZgog ewogICAgIE1GQ29udGV4dCAqYyA9IGF2Y3R4LT5wcml2X2RhdGE7CiAgICAgSFJFU1VMVCBo cjsKQEAgLTExMzQsNiArMTEzOCwxMCBAQCBzdGF0aWMgaW50IG1mX2Nsb3NlKEFWQ29kZWND b250ZXh0ICphdmN0eCkKIAogICAgIGZmX2ZyZWVfbWYoJmMtPm1mdCk7CiAKKyNpZiAhSEFW RV9VV1AKKyAgICBmZl9tZl91bmxvYWRfbGlicmFyeSgpOworI2VuZGlmCisKICAgICBhdl9m cmFtZV9mcmVlKCZjLT5mcmFtZSk7CiAKICAgICBhdl9mcmVlcCgmYXZjdHgtPmV4dHJhZGF0 YSk7CkBAIC0xMTQyLDYgKzExNTAsMjEgQEAgc3RhdGljIGludCBtZl9jbG9zZShBVkNvZGVj Q29udGV4dCAqYXZjdHgpCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiAhSEFWRV9VV1AKK3N0 YXRpYyBpbnQgbWZfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgaW50IHJl dDsKKworICAgIGlmICgocmV0ID0gZmZfbWZfbG9hZF9saWJyYXJ5KGF2Y3R4KSkgPT0gMCkg eworICAgICAgICAgICBpZiAoKHJldCA9IG1mX2luaXRfZW5jb2RlcihhdmN0eCkpID09IDAp IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBt Zl9jbG9zZShhdmN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZgorCiAjZGVmaW5l IE9GRlNFVCh4KSBvZmZzZXRvZihNRkNvbnRleHQsIHgpCiAKICNkZWZpbmUgTUZfRU5DT0RF UihNRURJQVRZUEUsIE5BTUUsIElELCBPUFRTLCBFWFRSQSkgXAotLSAKMi4zNi4xCgo= --------------Eq0RhxSfWG0n5gkKzZcJVBfX 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". --------------Eq0RhxSfWG0n5gkKzZcJVBfX--