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 BB2384B47A for ; Sat, 6 Jul 2024 21:08:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5CD8968DBB7; Sun, 7 Jul 2024 00:08:33 +0300 (EEST) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9484268D8D6 for ; Sun, 7 Jul 2024 00:08:26 +0300 (EEST) X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.11.12] ([85.16.197.80]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MV67o-1ssHt92EkQ-00PNbN for ; Sat, 06 Jul 2024 23:08:25 +0200 Content-Type: multipart/mixed; boundary="------------vSgxfJgEUPE0h0dfBqxCsXdh" Message-ID: <8c6c11a6-bc55-41a0-9f98-262c60f63ec8@gmx.net> Date: Sat, 6 Jul 2024 23:08:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org Content-Language: de-DE, en-US X-Provags-ID: V03:K1:7ocT7KYdSyxAFOZ+oMILm/zphgj65wkh6P1ltl/J7WzuZm41BaX 5ubjMThPpPphciy0VrLBc3prJh9MWiHL+6Hw+q05pgHjY9R69+AbKpP7GNscVaPKBg2Rxnx /wPRG9Q3x1zzDrJw3LbPhjHASQtdzBM7yaS0CRjz+Lac/NU1z5TIiD7UoHG+evb+7E5Eamq 40A+Fn5039AdSHqczpTuA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:cbgmslOniec=;IpU9BtrRQy/k865KudkhQFvymow 3Xj0V6BUJx90klfqgH/fgyu3NRiebCM07aDsNP67RH5YUebeYB5Cl7LxygfxlI/iCS8xgzyUe /dR2ZrP84Kb8lGtXg3wzhWAPX1zbaTXBsq6LM0K1WWDI1zpxzWYWidY8qiyXWOvD3kpwg2Fc9 NWooil4ziokwN1N5eAYuen5gK0BwUuzhPupI16PTabh7+KbpuLwZULXXl6bBn3+9/+qdbkn2X XqU3mBtkByMpY0Jqmp/JZDIgknVkN5P5+EdLCRcgiqHGN9IlG0BWhg40AAqxo5i9I9GAe8WD0 K4v1rQveIBbyDBZtsQMxc/a+g6s+UORRDUMX8uuU1Juk/n98oiF3XAvo8mVgtIOwVf7NmfS33 zX1Xd47TVBfMi1QOkJr3ciW7RJHVFCB1gAOemc3CAqIYOG/Csq0u7I+Nx3kXLI6qyMebIT0Wu 4xwzrwefWU9gg1Be0t3J8LyWOiDlHe/JLCNzHME0ptN8bpdB48ufTs9Cbzs9JhIVYz63kQjUL NhJSl2Fips/YM/o34tXOGJC25EDRcHVSZU8bSoJ4JIByRRxGucFaHEtpmnvREGpOda+hf1vKY ULOsTRhej4hupixDnxYgoCUWCzPJCxVEYcHepsaBrbtOAdFCZjWL/RXDhJqE+wHmg7i36QXVC +HKMZ7hh8nSNBpQMUbCvBa9A+vl7AEIUNF0JjeHE+yRQPyGOXgbkwSsciMfzde+twkHaanVnb p6lrh+tiD3umorvkz1EerGiXmdImVJ8aKD9IeZW5TLRHlwaFF1ixm42++kdLG0uDQxgV+/S6J MtfPOdHwIJubKfY3hWyRpaUrsmYbyIZ2BlsC4WUXZV3eU= Subject: [FFmpeg-devel] [PATCH v2] libavformat/vapoursynth: Update to API version 4, load library at runtime 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: , From: Stefan Oltmanns via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Stefan Oltmanns 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. --------------vSgxfJgEUPE0h0dfBqxCsXdh Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hello, this is revised patch, to sum up the changes: The current VapourSynth implementation is rarely used, as it links the VapourSynth library at build time, making the resulting build unable to run when VapourSynth is not installed. Therefore barely anyone compiles with VapourSynth activated. I changed it, so that it loads the library at runtime when a VapourSynth script should be opened, just like AviSynth does. On Windows the DLL from VapourSynth is not installed in the system directory, but the location is stored in the Registry. Therefore I added some code to read that information from the registry. As the V4 API is designed with dynamic loading in mind (only a single import), I updated the implementation to V4 (changes are mostly superficial, no structural changes). The V4 API is already several years old, fully supported since R55 released in 2021. Changes from first patch: -Separated the Windows-specific function for getting the DLL location from the platform-specific includes -It is not enabled by default in configure -The header files are not included anymore I would like to include the header files for this reason: While most Linux distributions ship ffmpeg, only very few contain VapourSynth. Therefore ffmpeg won't be compiled with VapourSynth support by these distributions, because no VapourSynth headers. Including the headers in ffmpeg would mean they can compile with VapourSynth support and if a user decided to install VapourSynth from somewhere else or compile it by himself, ffmpeg support would be ready and no need for the user to install another ffmpeg or compile one. I'm not sure what the rules for shipping include files are, as there are a few 3rd-party include files in ffmpeg. License is not an issue (Vapourynth is LGPL v2.1 or later like ffmpeg). make fate runs without any issue. I tested VapourSynth input scripts with various color formats on different platforms: Ubuntu 22.04 macOS 13 (x86_64) macOS 13 (arm64) Windows 10 (msys2/gcc) It compiles on these platforms without any warning and runs without any issues. Best regards Stefan --------------vSgxfJgEUPE0h0dfBqxCsXdh Content-Type: text/x-patch; charset=UTF-8; name="0001-avformat-vapoursynth-Update-to-API-version-4-load-li.patch" Content-Disposition: attachment; filename*0="0001-avformat-vapoursynth-Update-to-API-version-4-load-li.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3NTliMDk3ODY1OTUzZWU2Njk0OWVjYmNkYWRiZWJmYWQ2MjNjMjlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gT2x0bWFubnMgPHN0ZWZhbi1vbHRtYW5u c0BnbXgubmV0PgpEYXRlOiBTYXQsIDYgSnVsIDIwMjQgMjI6NTY6NTMgKzAyMDAKU3ViamVj dDogW1BBVENIXSBhdmZvcm1hdC92YXBvdXJzeW50aDogVXBkYXRlIHRvIEFQSSB2ZXJzaW9u IDQsIGxvYWQgbGlicmFyeQogYXQgcnVudGltZQoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE9s dG1hbm5zIDxzdGVmYW4tb2x0bWFubnNAZ214Lm5ldD4KLS0tCiBjb25maWd1cmUgICAgICAg ICAgICAgICAgIHwgICAzICstCiBsaWJhdmZvcm1hdC92YXBvdXJzeW50aC5jIHwgMTcxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDEzNiBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25m aWd1cmUgYi9jb25maWd1cmUKaW5kZXggYjI4MjIxZjI1OC4uZTQzZjM4MjdlYyAxMDA3NTUK LS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMzU3NSw2ICszNTc1LDcgQEAg bGlieGV2ZF9kZWNvZGVyX2RlcHM9ImxpYnhldmQiCiBsaWJ4ZXZlX2VuY29kZXJfZGVwcz0i bGlieGV2ZSIKIGxpYnh2aWRfZW5jb2Rlcl9kZXBzPSJsaWJ4dmlkIgogbGlienZiaV90ZWxl dGV4dF9kZWNvZGVyX2RlcHM9ImxpYnp2YmkiCit2YXBvdXJzeW50aF9kZXBzX2FueT0ibGli ZGwgTG9hZExpYnJhcnkiCiB2YXBvdXJzeW50aF9kZW11eGVyX2RlcHM9InZhcG91cnN5bnRo IgogdmlkZW90b29sYm94X3N1Z2dlc3Q9ImNvcmVzZXJ2aWNlcyIKIHZpZGVvdG9vbGJveF9k ZXBzPSJjb3JlZm91bmRhdGlvbiBjb3JlbWVkaWEgY29yZXZpZGVvIgpAQCAtNzA4MCw3ICs3 MDgxLDcgQEAgZW5hYmxlZCBya21wcCAgICAgICAgICAgICAmJiB7IHJlcXVpcmVfcGtnX2Nv bmZpZyBya21wcCByb2NrY2hpcF9tcHAgIHJvY2tjaGlwL3IKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7IGVuYWJsZWQgbGliZHJtIHx8CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkaWUgIkVSUk9SOiBya21wcCByZXF1aXJlcyAtLWVuYWJsZS1saWJk cm0iOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLWVuYWJsZWQgdmFwb3Vy c3ludGggICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIHZhcG91cnN5bnRoICJ2YXBvdXJz eW50aC1zY3JpcHQgPj0gNDIiIFZTU2NyaXB0LmggdnNzY3JpcHRfaW5pdAorZW5hYmxlZCB2 YXBvdXJzeW50aCAgICAgICAmJiByZXF1aXJlX2hlYWRlcnMgInZhcG91cnN5bnRoL1ZTU2Ny aXB0NC5oIHZhcG91cnN5bnRoL1ZhcG91clN5bnRoNC5oIgogCiAKIGlmIGVuYWJsZWQgZ2Ny eXB0OyB0aGVuCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC92YXBvdXJzeW50aC5jIGIvbGli YXZmb3JtYXQvdmFwb3Vyc3ludGguYwppbmRleCA4YTI1MTllMTlhLi45YzgyZjhmM2I4IDEw MDY0NAotLS0gYS9saWJhdmZvcm1hdC92YXBvdXJzeW50aC5jCisrKyBiL2xpYmF2Zm9ybWF0 L3ZhcG91cnN5bnRoLmMKQEAgLTI1LDkgKzI1LDYgQEAKIAogI2luY2x1ZGUgPGxpbWl0cy5o PgogCi0jaW5jbHVkZSA8VmFwb3VyU3ludGguaD4KLSNpbmNsdWRlIDxWU1NjcmlwdC5oPgot CiAjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGls L2F2c3RyaW5nLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2V2YWwuaCIKQEAgLTQwLDE5ICsz Nyw0NiBAQAogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIAor LyogUGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0aXZlcy4gKi8KKyNpZmRlZiBfV0lOMzIKKyAg I2luY2x1ZGUgPHdpbmRvd3MuaD4KKyAgI2luY2x1ZGUgImNvbXBhdC93MzJkbGZjbi5oIgor ICAjaW5jbHVkZSAibGliYXZ1dGlsL3djaGFyX2ZpbGVuYW1lLmgiCisgICN1bmRlZiBFWFRF Uk5fQworICAjZGVmaW5lIFZTU0NSSVBUX0xJQiAiVlNTY3JpcHQuZGxsIgorICAjZGVmaW5l IFZTX0RMT1BFTigpICh7IHZvaWQgKmhhbmRsZSA9IE5VTEw7IFwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGNoYXIgKmRsbF9uYW1lID0gZ2V0X3ZzX3NjcmlwdF9kbGxfbmFtZSgpOyBc CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGUgPSBkbG9wZW4oZGxsX25hbWUsIFJU TERfTk9XIHwgUlRMRF9HTE9CQUwpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICBhdl9m cmVlKGRsbF9uYW1lKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlOyB9KQor I2Vsc2UKKyAgI2luY2x1ZGUgPGRsZmNuLmg+CisgICNkZWZpbmUgVlNTQ1JJUFRfTkFNRSAi bGlidmFwb3Vyc3ludGgtc2NyaXB0IgorICAjZGVmaW5lIFZTU0NSSVBUX0xJQiBWU1NDUklQ VF9OQU1FIFNMSUJTVUYKKyAgI2RlZmluZSBWU19ETE9QRU4oKSBkbG9wZW4oVlNTQ1JJUFRf TElCLCBSVExEX05PVyB8IFJUTERfR0xPQkFMKQorI2VuZGlmCisKKyNpbmNsdWRlIDx2YXBv dXJzeW50aC9WU1NjcmlwdDQuaD4KKwogc3RydWN0IFZTU3RhdGUgewogICAgIFZTU2NyaXB0 ICp2c3M7CiB9OwogCit0eXBlZGVmIGNvbnN0IFZTU0NSSVBUQVBJICooKlZTU2NyaXB0R2V0 QVBJRnVuYykoaW50IHZlcnNpb24pOworCit0eXBlZGVmIHN0cnVjdCBWU1NjcmlwdExpYnJh cnkgeworICAgIHZvaWQgKmxpYnJhcnk7CisgICAgY29uc3QgVlNTQ1JJUFRBUEkgKnZzc2Fw aTsKK30gVlNTY3JpcHRMaWJyYXJ5OworCiB0eXBlZGVmIHN0cnVjdCBWU0NvbnRleHQgewog ICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNzOwogCiAgICAgQVZCdWZmZXJSZWYgKnZzc19zdGF0 ZTsKIAogICAgIGNvbnN0IFZTQVBJICp2c2FwaTsKLSAgICBWU0NvcmUgKnZzY29yZTsKIAot ICAgIFZTTm9kZVJlZiAqb3V0bm9kZTsKKyAgICBWU05vZGUgKm91dG5vZGU7CiAgICAgaW50 IGlzX2NmcjsKICAgICBpbnQgY3VycmVudF9mcmFtZTsKIApAQCAtNzAsMTkgKzk0LDcyIEBA IHN0YXRpYyBjb25zdCBBVk9wdGlvbiBvcHRpb25zW10gPSB7CiAgICAge05VTEx9CiB9Owog CitzdGF0aWMgVlNTY3JpcHRMaWJyYXJ5IHZzX3NjcmlwdF9saWJyYXJ5OworCitzdGF0aWMg aW50IHZzX2F0ZXhpdF9jYWxsZWQgPSAwOworCitzdGF0aWMgYXZfY29sZCB2b2lkIHZzX2F0 ZXhpdF9oYW5kbGVyKHZvaWQpOworCisjaWZkZWYgX1dJTjMyCitzdGF0aWMgYXZfY29sZCBj aGFyKiBnZXRfdnNfc2NyaXB0X2RsbF9uYW1lKHZvaWQpIHsKKyAgICAgTE9ORyByOworICAg ICBXQ0hBUiB2c3NfcGF0aFs1MTJdOworICAgICBjaGFyICp2c3NfcGF0aF91dGY4OworICAg ICBEV09SRCBidWZfc2l6ZSA9IHNpemVvZih2c3NfcGF0aCkgLSAyOworICAgICByID0gUmVn R2V0VmFsdWVXKEhLRVlfQ1VSUkVOVF9VU0VSLCBMIlNPRlRXQVJFXFxWYXBvdXJTeW50aCIs CisgICAgICAgICAgICAgICAgICAgICAgTCJWU1NjcmlwdERMTCIsIFJSRl9SVF9SRUdfU1os IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgJnZzc19wYXRoLCAmYnVmX3NpemUpOwor ICAgICBpZiAociA9PSBFUlJPUl9TVUNDRVNTICYmIHdjaGFydG91dGY4KHZzc19wYXRoLCAm dnNzX3BhdGhfdXRmOCkgPT0gMCkKKyAgICAgICAgIHJldHVybiB2c3NfcGF0aF91dGY4Owor ICAgICByID0gUmVnR2V0VmFsdWVXKEhLRVlfTE9DQUxfTUFDSElORSwgTCJTT0ZUV0FSRVxc VmFwb3VyU3ludGgiLAorICAgICAgICAgICAgICAgICAgICAgIEwiVlNTY3JpcHRETEwiLCBS UkZfUlRfUkVHX1NaLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICZ2c3NfcGF0aCwg JmJ1Zl9zaXplKTsKKyAgICAgaWYgKHIgPT0gRVJST1JfU1VDQ0VTUyAmJiB3Y2hhcnRvdXRm OCh2c3NfcGF0aCwgJnZzc19wYXRoX3V0ZjgpID09IDApCisgICAgICAgICByZXR1cm4gdnNz X3BhdGhfdXRmODsKKyAgICAgaWYgKHdjaGFydG91dGY4KEwiVlNTY3JpcHQuZGxsIiwgJnZz c19wYXRoX3V0ZjgpID09IDApCisgICAgICAgICByZXR1cm4gdnNzX3BhdGhfdXRmODsKKyAg ICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworc3RhdGljIGF2X2NvbGQgaW50IHZzX2xvYWRf bGlicmFyeSh2b2lkKQoreworICAgIFZTU2NyaXB0R2V0QVBJRnVuYyBnZXRfdnNfc2NyaXB0 X2FwaTsKKyAgICB2c19zY3JpcHRfbGlicmFyeS5saWJyYXJ5ID0gVlNfRExPUEVOKCk7Cisg ICAgaWYgKCF2c19zY3JpcHRfbGlicmFyeS5saWJyYXJ5KQorICAgICAgICByZXR1cm4gLTE7 CisgICAgZ2V0X3ZzX3NjcmlwdF9hcGkgPSAoVlNTY3JpcHRHZXRBUElGdW5jKWRsc3ltKHZz X3NjcmlwdF9saWJyYXJ5LmxpYnJhcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJnZXRWU1NjcmlwdEFQSSIpOworICAgIGlmICghZ2V0 X3ZzX3NjcmlwdF9hcGkpIHsKKyAgICAgICAgZGxjbG9zZSh2c19zY3JpcHRfbGlicmFyeS5s aWJyYXJ5KTsKKyAgICAgICAgcmV0dXJuIC0yOworICAgIH0KKyAgICB2c19zY3JpcHRfbGli cmFyeS52c3NhcGkgPSBnZXRfdnNfc2NyaXB0X2FwaShWU1NDUklQVF9BUElfVkVSU0lPTik7 CisgICAgaWYgKCF2c19zY3JpcHRfbGlicmFyeS52c3NhcGkpIHsKKyAgICAgICAgZGxjbG9z ZSh2c19zY3JpcHRfbGlicmFyeS5saWJyYXJ5KTsKKyAgICAgICAgcmV0dXJuIC0zOworICAg IH0KKyAgICBhdGV4aXQodnNfYXRleGl0X2hhbmRsZXIpOworICAgIHJldHVybiAwOworfQor CiBzdGF0aWMgdm9pZCBmcmVlX3Zzc19zdGF0ZSh2b2lkICpvcGFxdWUsIHVpbnQ4X3QgKmRh dGEpCiB7CiAgICAgc3RydWN0IFZTU3RhdGUgKnZzcyA9IG9wYXF1ZTsKIAogICAgIGlmICh2 c3MtPnZzcykgewotICAgICAgICB2c3NjcmlwdF9mcmVlU2NyaXB0KHZzcy0+dnNzKTsKLSAg ICAgICAgdnNzY3JpcHRfZmluYWxpemUoKTsKKyAgICAgICAgdnNfc2NyaXB0X2xpYnJhcnku dnNzYXBpLT5mcmVlU2NyaXB0KHZzcy0+dnNzKTsKICAgICB9CiB9CiAKIHN0YXRpYyBhdl9j b2xkIGludCByZWFkX2Nsb3NlX3ZzKEFWRm9ybWF0Q29udGV4dCAqcykKIHsKLSAgICBWU0Nv bnRleHQgKnZzID0gcy0+cHJpdl9kYXRhOworICAgIFZTQ29udGV4dCAqdnM7CisKKyAgICBp ZiAodnNfYXRleGl0X2NhbGxlZCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICB2cyA9IHMt PnByaXZfZGF0YTsKIAogICAgIGlmICh2cy0+b3V0bm9kZSkKICAgICAgICAgdnMtPnZzYXBp LT5mcmVlTm9kZSh2cy0+b3V0bm9kZSk7CkBAIC05MCwxMiArMTY3LDE3IEBAIHN0YXRpYyBh dl9jb2xkIGludCByZWFkX2Nsb3NlX3ZzKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICBhdl9i dWZmZXJfdW5yZWYoJnZzLT52c3Nfc3RhdGUpOwogCiAgICAgdnMtPnZzYXBpID0gTlVMTDsK LSAgICB2cy0+dnNjb3JlID0gTlVMTDsKICAgICB2cy0+b3V0bm9kZSA9IE5VTEw7CiAKICAg ICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGF2X2NvbGQgdm9pZCB2c19hdGV4aXRfaGFuZGxl cih2b2lkKQoreworICAgIGRsY2xvc2UodnNfc2NyaXB0X2xpYnJhcnkubGlicmFyeSk7Cisg ICAgdnNfYXRleGl0X2NhbGxlZCA9IDE7Cit9CisKIHN0YXRpYyBhdl9jb2xkIGludCBpc19u YXRpdmVfZW5kaWFuKGVudW0gQVZQaXhlbEZvcm1hdCBwaXhmbXQpCiB7CiAgICAgZW51bSBB VlBpeGVsRm9ybWF0IG90aGVyID0gYXZfcGl4X2ZtdF9zd2FwX2VuZGlhbm5lc3MocGl4Zm10 KTsKQEAgLTEwNiw3ICsxODgsNyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgaXNfbmF0aXZlX2Vu ZGlhbihlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4Zm10KQogICAgIHJldHVybiBwZCAmJiAoISFI QVZFX0JJR0VORElBTiA9PSAhIShwZC0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfQkUpKTsK IH0KIAotc3RhdGljIGF2X2NvbGQgZW51bSBBVlBpeGVsRm9ybWF0IG1hdGNoX3BpeGZtdChj b25zdCBWU0Zvcm1hdCAqdnNmLCBpbnQgY19vcmRlcls0XSkKK3N0YXRpYyBhdl9jb2xkIGVu dW0gQVZQaXhlbEZvcm1hdCBtYXRjaF9waXhmbXQoY29uc3QgVlNWaWRlb0Zvcm1hdCAqdnNm LCBpbnQgY19vcmRlcls0XSkKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHl1dl9vcmRlcls0 XSA9IHswLCAxLCAyLCAwfTsKICAgICBzdGF0aWMgY29uc3QgaW50IHJnYl9vcmRlcls0XSA9 IHsxLCAyLCAwLCAwfTsKQEAgLTEyOCwxMyArMjEwLDEyIEBAIHN0YXRpYyBhdl9jb2xkIGVu dW0gQVZQaXhlbEZvcm1hdCBtYXRjaF9waXhmbXQoY29uc3QgVlNGb3JtYXQgKnZzZiwgaW50 IGNfb3JkZXJbCiAgICAgICAgICAgICBwZC0+bG9nMl9jaHJvbWFfaCAhPSB2c2YtPnN1YlNh bXBsaW5nSCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlzX3JnYiA9IHZz Zi0+Y29sb3JGYW1pbHkgPT0gY21SR0I7CisgICAgICAgIGlzX3JnYiA9IHZzZi0+Y29sb3JG YW1pbHkgPT0gY2ZSR0I7CiAgICAgICAgIGlmIChpc19yZ2IgIT0gISEocGQtPmZsYWdzICYg QVZfUElYX0ZNVF9GTEFHX1JHQikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg ICBpc195dXYgPSB2c2YtPmNvbG9yRmFtaWx5ID09IGNtWVVWIHx8Ci0gICAgICAgICAgICAg ICAgIHZzZi0+Y29sb3JGYW1pbHkgPT0gY21ZQ29DZyB8fAotICAgICAgICAgICAgICAgICB2 c2YtPmNvbG9yRmFtaWx5ID09IGNtR3JheTsKKyAgICAgICAgaXNfeXV2ID0gdnNmLT5jb2xv ckZhbWlseSA9PSBjZllVViB8fAorICAgICAgICAgICAgICAgICB2c2YtPmNvbG9yRmFtaWx5 ID09IGNmR3JheTsKICAgICAgICAgaWYgKCFpc19yZ2IgJiYgIWlzX3l1dikKICAgICAgICAg ICAgIGNvbnRpbnVlOwogCkBAIC0xNzYsNiArMjU3LDcgQEAgc3RhdGljIGF2X2NvbGQgaW50 IHJlYWRfaGVhZGVyX3ZzKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICBpbnQ2NF90IHN6ID0g YXZpb19zaXplKHBiKTsKICAgICBjaGFyICpidWYgPSBOVUxMOwogICAgIGNoYXIgZHVtbXk7 CisgICAgY2hhciB2c2ZtdFszMl07CiAgICAgY29uc3QgVlNWaWRlb0luZm8gKmluZm87CiAg ICAgc3RydWN0IFZTU3RhdGUgKnZzc19zdGF0ZTsKICAgICBpbnQgZXJyID0gMDsKQEAgLTE5 MywxNiArMjc1LDMwIEBAIHN0YXRpYyBhdl9jb2xkIGludCByZWFkX2hlYWRlcl92cyhBVkZv cm1hdENvbnRleHQgKnMpCiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKLSAgICBpZiAo IXZzc2NyaXB0X2luaXQoKSkgewotICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAi RmFpbGVkIHRvIGluaXRpYWxpemUgVlNTY3JpcHQgKHBvc3NpYmx5IFBZVEhPTlBBVEggbm90 IHNldCkuXG4iKTsKKyAgICBpZiAoZXJyID0gdnNfbG9hZF9saWJyYXJ5KCkpIHsKKyAgICAg ICAgaWYgKGVyciA9PSAtMSkgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBv cGVuICIgVlNTQ1JJUFRfTElCCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBD aGVjayBWYXBvdXJTeW50aCBpbnN0YWxsYXRpb24uXG4iKTsKKyAgICAgICAgZWxzZSBpZiAo ZXJyID09IC0yKSBhdl9sb2cocywgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGxvYWQgVmFwb3VyU3ludGggbGlicmFyeS4g IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFwb3VyU3ludGggaW5z dGFsbGF0aW9uIG1heSBiZSBvdXRkYXRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJvciBicm9rZW4uXG4iKTsKKyAgICAgICAgZWxzZSBpZiAoZXJyID09IC0z KSBhdl9sb2cocywgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRmFpbGVkIHRvIGluaXRpYWxpemUgVlNTY3JpcHQgIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiKHBvc3NpYmx5IFBZVEhPTlBBVEggbm90IHNldCku XG4iKTsKICAgICAgICAgZXJyID0gQVZFUlJPUl9FWFRFUk5BTDsKICAgICAgICAgZ290byBk b25lOwogICAgIH0KIAotICAgIGlmICh2c3NjcmlwdF9jcmVhdGVTY3JpcHQoJnZzc19zdGF0 ZS0+dnNzKSkgeworICAgIGlmICghKHZzLT52c2FwaSA9IHZzX3NjcmlwdF9saWJyYXJ5LnZz c2FwaS0+Z2V0VlNBUEkoVkFQT1VSU1lOVEhfQVBJX1ZFUlNJT04pKSkgeworICAgICAgICBh dl9sb2cocywgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IGdldCBWU0FQSS4gIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hlY2sgVmFwb3VyU3ludGggaW5zdGFsbGF0 aW9uLlxuIik7CisgICAgICAgIGVyciA9IEFWRVJST1JfRVhURVJOQUw7CisgICAgICAgIGdv dG8gZG9uZTsKKyAgICB9CisKKyAgICBpZiAoISh2c3Nfc3RhdGUtPnZzcyA9IHZzX3Njcmlw dF9saWJyYXJ5LnZzc2FwaS0+Y3JlYXRlU2NyaXB0KE5VTEwpKSkgewogICAgICAgICBhdl9s b2cocywgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGNyZWF0ZSBzY3JpcHQgaW5zdGFuY2Uu XG4iKTsKICAgICAgICAgZXJyID0gQVZFUlJPUl9FWFRFUk5BTDsKLSAgICAgICAgdnNzY3Jp cHRfZmluYWxpemUoKTsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KIApAQCAtMjM1LDE3 ICszMzEsMTQgQEAgc3RhdGljIGF2X2NvbGQgaW50IHJlYWRfaGVhZGVyX3ZzKEFWRm9ybWF0 Q29udGV4dCAqcykKICAgICB9CiAKICAgICBidWZbc3pdID0gJ1wwJzsKLSAgICBpZiAodnNz Y3JpcHRfZXZhbHVhdGVTY3JpcHQoJnZzc19zdGF0ZS0+dnNzLCBidWYsIHMtPnVybCwgMCkp IHsKLSAgICAgICAgY29uc3QgY2hhciAqbXNnID0gdnNzY3JpcHRfZ2V0RXJyb3IodnNzX3N0 YXRlLT52c3MpOworICAgIGlmICh2c19zY3JpcHRfbGlicmFyeS52c3NhcGktPmV2YWx1YXRl QnVmZmVyKHZzc19zdGF0ZS0+dnNzLCBidWYsIHMtPnVybCkpIHsKKyAgICAgICAgY29uc3Qg Y2hhciAqbXNnID0gdnNfc2NyaXB0X2xpYnJhcnkudnNzYXBpLT5nZXRFcnJvcih2c3Nfc3Rh dGUtPnZzcyk7CiAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8g cGFyc2Ugc2NyaXB0OiAlc1xuIiwgbXNnID8gbXNnIDogIih1bmtub3duKSIpOwogICAgICAg ICBlcnIgPSBBVkVSUk9SX0VYVEVSTkFMOwogICAgICAgICBnb3RvIGRvbmU7CiAgICAgfQog Ci0gICAgdnMtPnZzYXBpID0gdnNzY3JpcHRfZ2V0VlNBcGkoKTsKLSAgICB2cy0+dnNjb3Jl ID0gdnNzY3JpcHRfZ2V0Q29yZSh2c3Nfc3RhdGUtPnZzcyk7Ci0KLSAgICB2cy0+b3V0bm9k ZSA9IHZzc2NyaXB0X2dldE91dHB1dCh2c3Nfc3RhdGUtPnZzcywgMCk7CisgICAgdnMtPm91 dG5vZGUgPSB2c19zY3JpcHRfbGlicmFyeS52c3NhcGktPmdldE91dHB1dE5vZGUodnNzX3N0 YXRlLT52c3MsIDApOwogICAgIGlmICghdnMtPm91dG5vZGUpIHsKICAgICAgICAgYXZfbG9n KHMsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBnZXQgc2NyaXB0IG91dHB1dCBub2RlLlxu Iik7CiAgICAgICAgIGVyciA9IEFWRVJST1JfRVhURVJOQUw7CkBAIC0yNjAsNyArMzUzLDcg QEAgc3RhdGljIGF2X2NvbGQgaW50IHJlYWRfaGVhZGVyX3ZzKEFWRm9ybWF0Q29udGV4dCAq cykKIAogICAgIGluZm8gPSB2cy0+dnNhcGktPmdldFZpZGVvSW5mbyh2cy0+b3V0bm9kZSk7 CiAKLSAgICBpZiAoIWluZm8tPmZvcm1hdCB8fCAhaW5mby0+d2lkdGggfHwgIWluZm8tPmhl aWdodCkgeworICAgIGlmICghaW5mby0+Zm9ybWF0LmNvbG9yRmFtaWx5IHx8ICFpbmZvLT53 aWR0aCB8fCAhaW5mby0+aGVpZ2h0KSB7CiAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJS T1IsICJOb24tY29uc3RhbnQgaW5wdXQgZm9ybWF0IG5vdCBzdXBwb3J0ZWQuXG4iKTsKICAg ICAgICAgZXJyID0gQVZFUlJPUl9QQVRDSFdFTENPTUU7CiAgICAgICAgIGdvdG8gZG9uZTsK QEAgLTI4MCwxOCArMzczLDIyIEBAIHN0YXRpYyBhdl9jb2xkIGludCByZWFkX2hlYWRlcl92 cyhBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9IEFW X0NPREVDX0lEX1dSQVBQRURfQVZGUkFNRTsKICAgICBzdC0+Y29kZWNwYXItPndpZHRoID0g aW5mby0+d2lkdGg7CiAgICAgc3QtPmNvZGVjcGFyLT5oZWlnaHQgPSBpbmZvLT5oZWlnaHQ7 Ci0gICAgc3QtPmNvZGVjcGFyLT5mb3JtYXQgPSBtYXRjaF9waXhmbXQoaW5mby0+Zm9ybWF0 LCB2cy0+Y19vcmRlcik7CisgICAgc3QtPmNvZGVjcGFyLT5mb3JtYXQgPSBtYXRjaF9waXhm bXQoJmluZm8tPmZvcm1hdCwgdnMtPmNfb3JkZXIpOwogCiAgICAgaWYgKHN0LT5jb2RlY3Bh ci0+Zm9ybWF0ID09IEFWX1BJWF9GTVRfTk9ORSkgewotICAgICAgICBhdl9sb2cocywgQVZf TE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgVlMgcGl4ZWwgZm9ybWF0ICVzXG4iLCBpbmZvLT5m b3JtYXQtPm5hbWUpOworICAgICAgICBpZih2cy0+dnNhcGktPmdldFZpZGVvRm9ybWF0TmFt ZSgmaW5mby0+Zm9ybWF0LCB2c2ZtdCkpCisgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9H X0VSUk9SLCAiVW5zdXBwb3J0ZWQgVlMgcGl4ZWwgZm9ybWF0ICVzXG4iLCB2c2ZtdCk7Cisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJVbnN1 cHBvcnRlZCBWUyBwaXhlbCBmb3JtYXRcbiIpOwogICAgICAgICBlcnIgPSBBVkVSUk9SX0VY VEVSTkFMOwogICAgICAgICBnb3RvIGRvbmU7CiAgICAgfQotICAgIGF2X2xvZyhzLCBBVl9M T0dfVkVSQk9TRSwgIlZTIGZvcm1hdCAlcyAtPiBwaXhmbXQgJXNcbiIsIGluZm8tPmZvcm1h dC0+bmFtZSwKLSAgICAgICAgICAgYXZfZ2V0X3BpeF9mbXRfbmFtZShzdC0+Y29kZWNwYXIt PmZvcm1hdCkpOwotCi0gICAgaWYgKGluZm8tPmZvcm1hdC0+Y29sb3JGYW1pbHkgPT0gY21Z Q29DZykKLSAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2xvcl9zcGFjZSA9IEFWQ09MX1NQQ19Z Q0dDTzsKKyAgICBpZiAodnMtPnZzYXBpLT5nZXRWaWRlb0Zvcm1hdE5hbWUoJmluZm8tPmZv cm1hdCwgdnNmbXQpKQorICAgICAgICBhdl9sb2cocywgQVZfTE9HX1ZFUkJPU0UsICJWUyBm b3JtYXQgJXMgLT4gcGl4Zm10ICVzXG4iLAorICAgICAgICAgICAgICAgdnNmbXQsIGF2X2dl dF9waXhfZm10X25hbWUoc3QtPmNvZGVjcGFyLT5mb3JtYXQpKTsKKyAgICBlbHNlCisgICAg ICAgIGF2X2xvZyhzLCBBVl9MT0dfVkVSQk9TRSwgIlZTIGZvcm1hdCAtPiBwaXhmbXQgJXNc biIsCisgICAgICAgICAgICAgICBhdl9nZXRfcGl4X2ZtdF9uYW1lKHN0LT5jb2RlY3Bhci0+ Zm9ybWF0KSk7CiAKIGRvbmU6CiAgICAgYXZfZnJlZShidWYpOwpAQCAtMzExLDEzICs0MDgs MTMgQEAgc3RhdGljIGludCBnZXRfdnNfcHJvcF9pbnQoQVZGb3JtYXRDb250ZXh0ICpzLCBj b25zdCBWU01hcCAqbWFwLCBjb25zdCBjaGFyICpuYW0KICAgICBpbnQ2NF90IHJlczsKICAg ICBpbnQgZXJyID0gMTsKIAotICAgIHJlcyA9IHZzLT52c2FwaS0+cHJvcEdldEludChtYXAs IG5hbWUsIDAsICZlcnIpOworICAgIHJlcyA9IHZzLT52c2FwaS0+bWFwR2V0SW50KG1hcCwg bmFtZSwgMCwgJmVycik7CiAgICAgcmV0dXJuIGVyciB8fCByZXMgPCBJTlRfTUlOIHx8IHJl cyA+IElOVF9NQVggPyBkZWYgOiByZXM7CiB9CiAKIHN0cnVjdCB2c2ZyYW1lX3JlZl9kYXRh IHsKICAgICBjb25zdCBWU0FQSSAqdnNhcGk7Ci0gICAgY29uc3QgVlNGcmFtZVJlZiAqZnJh bWU7CisgICAgY29uc3QgVlNGcmFtZSAqZnJhbWU7CiAgICAgQVZCdWZmZXJSZWYgKnZzc19z dGF0ZTsKIH07CiAKQEAgLTMzOSw3ICs0MzYsNyBAQCBzdGF0aWMgaW50IHJlYWRfcGFja2V0 X3ZzKEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICBBVlN0cmVhbSAq c3QgPSBzLT5zdHJlYW1zWzBdOwogICAgIEFWRnJhbWUgKmZyYW1lID0gTlVMTDsKICAgICBj aGFyIHZzZXJyWzgwXTsKLSAgICBjb25zdCBWU0ZyYW1lUmVmICp2c2ZyYW1lOworICAgIGNv bnN0IFZTRnJhbWUgKnZzZnJhbWU7CiAgICAgY29uc3QgVlNWaWRlb0luZm8gKmluZm8gPSB2 cy0+dnNhcGktPmdldFZpZGVvSW5mbyh2cy0+b3V0bm9kZSk7CiAgICAgY29uc3QgVlNNYXAg KnByb3BzOwogICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYzsKQEAgLTM4MSw3 ICs0NzgsNyBAQCBzdGF0aWMgaW50IHJlYWRfcGFja2V0X3ZzKEFWRm9ybWF0Q29udGV4dCAq cywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgZ290byBlbmQ7CiAgICAgfQogCi0gICAgcHJv cHMgPSB2cy0+dnNhcGktPmdldEZyYW1lUHJvcHNSTyh2c2ZyYW1lKTsKKyAgICBwcm9wcyA9 IHZzLT52c2FwaS0+Z2V0RnJhbWVQcm9wZXJ0aWVzUk8odnNmcmFtZSk7CiAKICAgICBmcmFt ZSA9IGF2X2ZyYW1lX2FsbG9jKCk7CiAgICAgaWYgKCFmcmFtZSkgewpAQCAtNDEwLDcgKzUw Nyw3IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXRfdnMoQVZGb3JtYXRDb250ZXh0ICpzLCBB VlBhY2tldCAqcGt0KQogCiAgICAgZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoZnJhbWUt PmZvcm1hdCk7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgaW5mby0+Zm9ybWF0LT5udW1QbGFu ZXM7IGkrKykgeworICAgIGZvciAoaSA9IDA7IGkgPCBpbmZvLT5mb3JtYXQubnVtUGxhbmVz OyBpKyspIHsKICAgICAgICAgaW50IHAgPSB2cy0+Y19vcmRlcltpXTsKICAgICAgICAgcHRy ZGlmZl90IHBsYW5lX2ggPSBmcmFtZS0+aGVpZ2h0OwogCi0tIAoyLjM0LjEKCg== --------------vSgxfJgEUPE0h0dfBqxCsXdh 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". --------------vSgxfJgEUPE0h0dfBqxCsXdh--