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 055C242839 for ; Sun, 1 May 2022 23:05:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BCFFE68AE7E; Mon, 2 May 2022 02:05:51 +0300 (EEST) Received: from avasout-ptp-002.plus.net (avasout-ptp-002.plus.net [84.93.230.235]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 44A1A68AB71 for ; Mon, 2 May 2022 02:05:45 +0300 (EEST) Received: from sparrow.collectfair.co.uk ([80.229.167.224]) by smtp with SMTP id lId5n2NcCO2rilId7nVSf9; Mon, 02 May 2022 00:05:41 +0100 X-Clacks-Overhead: "GNU Terry Pratchett" X-CM-Score: 0.00 X-CNFS-Analysis: v=2.4 cv=Zs/+lv3G c=1 sm=1 tr=0 ts=626f1245 a=kGmXhoCkr3jB6KbzR35ddQ==:117 a=kGmXhoCkr3jB6KbzR35ddQ==:17 a=oZkIemNP1mAA:10 a=dUtWRZAB1rDCoh9MlMwA:9 a=emhf11hzAAAA:8 a=JeY4nRuWAAAA:8 a=KavMEPUI6GMiPvdm-CwA:9 a=wPNLvfGTeEIA:10 a=0L1b--ArBeoA:10 a=fHJYd22vZ_cA:10 a=Ta6bD5CYB-9pRL1bp3UA:9 a=B2y7HmGcmWMA:10 a=HLUCug_QN4oeKp6PugZw:22 a=3mYD0m367-DnXB0HWSkl:22 Received: (qmail 14839 invoked from network); 1 May 2022 23:04:24 -0000 Received: from localhost (HELO webmail.megapico.co.uk) (127.0.0.1) by sparrow.collectfair.co.uk with SMTP; 1 May 2022 23:04:24 -0000 Received: from 192.168.0.1 (auth. user dif@localhost) by webmail.megapico.co.uk with HTTP; Sun, 01 May 2022 23:04:24 +0000 To: ffmpeg-devel@ffmpeg.org Date: Sun, 01 May 2022 23:04:24 +0000 X-Mailer: IlohaMail/0.8.14 Message-ID: <16i8qcLq.1651446264.7842020.dif@localhost> From: "David Fletcher" Bounce-To: "David Fletcher" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="RWP_PART_dif1651446264" X-CMAE-Envelope: MS4xfPAiz5VRUtndoxDL5UPBN7pvQ52htkcMm/omfQiySnKrTbbq49Mev7VV6Ne3oOKSbzWqXJEt+vhQS+TQWG8SSj20GqZ+l2oUVyIIVYzR0kes9rxWB4LQ D3WCkrkRsocsKTFgY6JX/squsxW1geAKtv1piyWSU//Qd89kB5/6J3BaJMKp+imHvQj595qVSsHPbQ0waEqEXgyKZ5Sdg3Sm6/Y= Subject: [FFmpeg-devel] PATCH - wolfSSL TLS support 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 message is in MIME format. --RWP_PART_dif1651446264 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Please find attached a patch adding support for wolfSSL as a TLS backend. This is against release ffmpeg-5.0.1, and is working well with wolfSSL 5.1.1 (January 2022 release). This is based on a patch previously submitted in 2018 which never made it into the mail codebase, but now updated for ffmpeg-5.0.1. The previous version by samsamsam is at https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2018-August/233802.html. Does this look useful? I developed this after identifying wolfSSL as most suitable for adding TLS capability to very resource limited hardware (Reciva internet radios, based around an ARMv4 CPU and just 32MB RAM, for context more info about this application here: http://www.megapico.co.uk/sharpfin/mediaserver.html). Best regards, David. --RWP_PART_dif1651446264 Content-Type: text/x-patch; name="wolfssl.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wolfssl.patch" ZGlmZiAtTnVyIC4vZmZtcGVnLTUuMC4xL2NvbmZpZ3VyZSAuL2ZmbXBlZy01LjAuMS13b2xmc3Ns L2NvbmZpZ3VyZQotLS0gLi9mZm1wZWctNS4wLjEvY29uZmlndXJlCTIwMjItMDQtMDQgMTU6NDA6 MjIuMDAwMDAwMDAwICswMTAwCisrKyAuL2ZmbXBlZy01LjAuMS13b2xmc3NsL2NvbmZpZ3VyZQky MDIyLTA1LTAxIDIyOjU4OjU1LjY3MjQ0OTUyNyArMDEwMApAQCAtMjEyLDcgKzIxMiw3IEBACiAg IC0tZW5hYmxlLWdtcCAgICAgICAgICAgICBlbmFibGUgZ21wLCBuZWVkZWQgZm9yIHJ0bXAodCll IHN1cHBvcnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9wZW5zc2wgb3IgbGlicnRt cCBpcyBub3QgdXNlZCBbbm9dCiAgIC0tZW5hYmxlLWdudXRscyAgICAgICAgICBlbmFibGUgZ251 dGxzLCBuZWVkZWQgZm9yIGh0dHBzIHN1cHBvcnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIG9wZW5zc2wsIGxpYnRscyBvciBtYmVkdGxzIGlzIG5vdCB1c2VkIFtub10KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG9wZW5zc2wsIGxpYnRscywgd29sZnNzbCBvciBtYmVkdGxz IGlzIG5vdCB1c2VkIFtub10KICAgLS1kaXNhYmxlLWljb252ICAgICAgICAgIGRpc2FibGUgaWNv bnYgW2F1dG9kZXRlY3RdCiAgIC0tZW5hYmxlLWpuaSAgICAgICAgICAgICBlbmFibGUgSk5JIHN1 cHBvcnQgW25vXQogICAtLWVuYWJsZS1sYWRzcGEgICAgICAgICAgZW5hYmxlIExBRFNQQSBhdWRp byBmaWx0ZXJpbmcgW25vXQpAQCAtMjc2LDcgKzI3Niw3IEBACiAgIC0tZW5hYmxlLWxpYnRlc3Nl cmFjdCAgICBlbmFibGUgVGVzc2VyYWN0LCBuZWVkZWQgZm9yIG9jciBmaWx0ZXIgW25vXQogICAt LWVuYWJsZS1saWJ0aGVvcmEgICAgICAgZW5hYmxlIFRoZW9yYSBlbmNvZGluZyB2aWEgbGlidGhl b3JhIFtub10KICAgLS1lbmFibGUtbGlidGxzICAgICAgICAgIGVuYWJsZSBMaWJyZVNTTCAodmlh IGxpYnRscyksIG5lZWRlZCBmb3IgaHR0cHMgc3VwcG9ydAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgb3BlbnNzbCwgZ251dGxzIG9yIG1iZWR0bHMgaXMgbm90IHVzZWQgW25vXQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgb3BlbnNzbCwgZ251dGxzLCB3b2xmc3NsIG9yIG1i ZWR0bHMgaXMgbm90IHVzZWQgW25vXQogICAtLWVuYWJsZS1saWJ0d29sYW1lICAgICAgZW5hYmxl IE1QMiBlbmNvZGluZyB2aWEgbGlidHdvbGFtZSBbbm9dCiAgIC0tZW5hYmxlLWxpYnVhdnMzZCAg ICAgICBlbmFibGUgQVZTMyBkZWNvZGluZyB2aWEgbGlidWF2czNkIFtub10KICAgLS1lbmFibGUt bGlidjRsMiAgICAgICAgIGVuYWJsZSBsaWJ2NGwyL3Y0bC11dGlscyBbbm9dCkBAIC0yODcsNiAr Mjg3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZSBpbXBsZW1lbnRhdGlv biBleGlzdHMgW25vXQogICAtLWVuYWJsZS1saWJ2cHggICAgICAgICAgZW5hYmxlIFZQOCBhbmQg VlA5IGRlL2VuY29kaW5nIHZpYSBsaWJ2cHggW25vXQogICAtLWVuYWJsZS1saWJ3ZWJwICAgICAg ICAgZW5hYmxlIFdlYlAgZW5jb2RpbmcgdmlhIGxpYndlYnAgW25vXQorICAtLWVuYWJsZS13b2xm c3NsICAgICAgICAgZW5hYmxlIFdvbGZTU0wpLCBuZWVkZWQgZm9yIGh0dHBzIHN1cHBvcnQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9wZW5zc2wsIGdudXRscywgbGlidGxzIG9yIG1i ZWR0bHMgaXMgbm90IHVzZWQgW25vXQogICAtLWVuYWJsZS1saWJ4MjY0ICAgICAgICAgZW5hYmxl IEguMjY0IGVuY29kaW5nIHZpYSB4MjY0IFtub10KICAgLS1lbmFibGUtbGlieDI2NSAgICAgICAg IGVuYWJsZSBIRVZDIGVuY29kaW5nIHZpYSB4MjY1IFtub10KICAgLS1lbmFibGUtbGlieGF2cyAg ICAgICAgIGVuYWJsZSBBVlMgZW5jb2RpbmcgdmlhIHhhdnMgW25vXQpAQCAtMzE1LDcgKzMxNyw3 IEBACiAgIC0tZW5hYmxlLW9wZW5jbCAgICAgICAgICBlbmFibGUgT3BlbkNMIHByb2Nlc3Npbmcg W25vXQogICAtLWVuYWJsZS1vcGVuZ2wgICAgICAgICAgZW5hYmxlIE9wZW5HTCByZW5kZXJpbmcg W25vXQogICAtLWVuYWJsZS1vcGVuc3NsICAgICAgICAgZW5hYmxlIG9wZW5zc2wsIG5lZWRlZCBm b3IgaHR0cHMgc3VwcG9ydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZ251dGxzLCBs aWJ0bHMgb3IgbWJlZHRscyBpcyBub3QgdXNlZCBbbm9dCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBnbnV0bHMsIGxpYnRscywgd29sZnNzbCBvciBtYmVkdGxzIGlzIG5vdCB1c2VkIFtu b10KICAgLS1lbmFibGUtcG9ja2V0c3BoaW54ICAgIGVuYWJsZSBQb2NrZXRTcGhpbngsIG5lZWRl ZCBmb3IgYXNyIGZpbHRlciBbbm9dCiAgIC0tZGlzYWJsZS1zbmRpbyAgICAgICAgICBkaXNhYmxl IHNuZGlvIHN1cHBvcnQgW2F1dG9kZXRlY3RdCiAgIC0tZGlzYWJsZS1zY2hhbm5lbCAgICAgICBk aXNhYmxlIFNDaGFubmVsIFNTUCwgbmVlZGVkIGZvciBUTFMgc3VwcG9ydCBvbgpAQCAtMTg4MCw2 ICsxODgyLDcgQEAKICAgICBvcGVuc3NsCiAgICAgcG9ja2V0c3BoaW54CiAgICAgdmFwb3Vyc3lu dGgKKyAgICB3b2xmc3NsCiAiCiAKIEhXQUNDRUxfQVVUT0RFVEVDVF9MSUJSQVJZX0xJU1Q9IgpA QCAtMzU3Niw3ICszNTc5LDcgQEAKIHNlY3VyZXRyYW5zcG9ydF9jb25mbGljdD0ib3BlbnNzbCBn bnV0bHMgbGlidGxzIG1iZWR0bHMiCiBzcnRwX3Byb3RvY29sX3NlbGVjdD0icnRwX3Byb3RvY29s IHNydHAiCiB0Y3BfcHJvdG9jb2xfc2VsZWN0PSJuZXR3b3JrIgotdGxzX3Byb3RvY29sX2RlcHNf YW55PSJnbnV0bHMgb3BlbnNzbCBzY2hhbm5lbCBzZWN1cmV0cmFuc3BvcnQgbGlidGxzIG1iZWR0 bHMiCit0bHNfcHJvdG9jb2xfZGVwc19hbnk9ImdudXRscyBvcGVuc3NsIHNjaGFubmVsIHNlY3Vy ZXRyYW5zcG9ydCBsaWJ0bHMgbWJlZHRscyB3b2xmc3NsIgogdGxzX3Byb3RvY29sX3NlbGVjdD0i dGNwX3Byb3RvY29sIgogdWRwX3Byb3RvY29sX3NlbGVjdD0ibmV0d29yayIKIHVkcGxpdGVfcHJv dG9jb2xfc2VsZWN0PSJuZXR3b3JrIgpAQCAtNjUxMiw2ICs2NTE1LDcgQEAKIGVuYWJsZWQgZnJl aTByICAgICAgICAgICAgJiYgcmVxdWlyZV9oZWFkZXJzICJmcmVpMHIuaCIKIGVuYWJsZWQgZ21w ICAgICAgICAgICAgICAgJiYgcmVxdWlyZSBnbXAgZ21wLmggbXB6X2V4cG9ydCAtbGdtcAogZW5h YmxlZCBnbnV0bHMgICAgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgZ251dGxzIGdudXRs cyBnbnV0bHMvZ251dGxzLmggZ251dGxzX2dsb2JhbF9pbml0CitlbmFibGVkIHdvbGZzc2wgICAg ICAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyB3b2xmc3NsIHdvbGZzc2wgd29sZnNzbC9zc2wu aCB3b2xmU1NMX2xpYnJhcnlfaW5pdAogZW5hYmxlZCBqbmkgICAgICAgICAgICAgICAmJiB7IFsg JHRhcmdldF9vcyA9ICJhbmRyb2lkIiBdICYmIGNoZWNrX2hlYWRlcnMgam5pLmggJiYgZW5hYmxl ZCBwdGhyZWFkcyB8fCBkaWUgIkVSUk9SOiBqbmkgbm90IGZvdW5kIjsgfQogZW5hYmxlZCBsYWRz cGEgICAgICAgICAgICAmJiByZXF1aXJlX2hlYWRlcnMgImxhZHNwYS5oIGRsZmNuLmgiCiBlbmFi bGVkIGxpYmFvbSAgICAgICAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJhb20gImFvbSA+ PSAxLjAuMCIgYW9tL2FvbV9jb2RlYy5oIGFvbV9jb2RlY192ZXJzaW9uCmRpZmYgLU51ciAuL2Zm bXBlZy01LjAuMS9saWJhdmZvcm1hdC9NYWtlZmlsZSAuL2ZmbXBlZy01LjAuMS13b2xmc3NsL2xp YmF2Zm9ybWF0L01ha2VmaWxlCi0tLSAuL2ZmbXBlZy01LjAuMS9saWJhdmZvcm1hdC9NYWtlZmls ZQkyMDIyLTAxLTE0IDE4OjQ1OjQwLjAwMDAwMDAwMCArMDAwMAorKysgLi9mZm1wZWctNS4wLjEt d29sZnNzbC9saWJhdmZvcm1hdC9NYWtlZmlsZQkyMDIyLTA0LTA1IDIxOjUzOjAzLjAwMDAwMDAw MCArMDEwMApAQCAtNjYwLDYgKzY2MCw3IEBACiBUTFMtT0JKUy0kKENPTkZJR19MSUJUTFMpICAg ICAgICAgICAgICAgICs9IHRsc19saWJ0bHMubwogVExTLU9CSlMtJChDT05GSUdfTUJFRFRMUykg ICAgICAgICAgICAgICArPSB0bHNfbWJlZHRscy5vCiBUTFMtT0JKUy0kKENPTkZJR19PUEVOU1NM KSAgICAgICAgICAgICAgICs9IHRsc19vcGVuc3NsLm8KK1RMUy1PQkpTLSQoQ09ORklHX1dPTEZT U0wpICAgICAgICAgICAgICAgKz0gdGxzX3dvbGZzc2wubwogVExTLU9CSlMtJChDT05GSUdfU0VD VVJFVFJBTlNQT1JUKSAgICAgICArPSB0bHNfc2VjdXJldHJhbnNwb3J0Lm8KIFRMUy1PQkpTLSQo Q09ORklHX1NDSEFOTkVMKSAgICAgICAgICAgICAgKz0gdGxzX3NjaGFubmVsLm8KIE9CSlMtJChD T05GSUdfVExTX1BST1RPQ09MKSAgICAgICAgICAgICAgKz0gdGxzLm8gJChUTFMtT0JKUy15ZXMp CmRpZmYgLU51ciAuL2ZmbXBlZy01LjAuMS9saWJhdmZvcm1hdC9uZXR3b3JrLmMgLi9mZm1wZWct NS4wLjEtd29sZnNzbC9saWJhdmZvcm1hdC9uZXR3b3JrLmMKLS0tIC4vZmZtcGVnLTUuMC4xL2xp YmF2Zm9ybWF0L25ldHdvcmsuYwkyMDIxLTEwLTIxIDE4OjA2OjM1LjAwMDAwMDAwMCArMDEwMAor KysgLi9mZm1wZWctNS4wLjEtd29sZnNzbC9saWJhdmZvcm1hdC9uZXR3b3JrLmMJMjAyMi0wNC0w NSAyMTo1MDo0Mi4wMDAwMDAwMDAgKzAxMDAKQEAgLTM5LDYgKzM5LDkgQEAKICNpZiBDT05GSUdf R05VVExTCiAgICAgZmZfZ251dGxzX2luaXQoKTsKICNlbmRpZgorI2lmIENPTkZJR19XT0xGU1NM CisgICAgZmZfd29sZnNzbF9pbml0KCk7CisjZW5kaWYKICNlbmRpZgogICAgIHJldHVybiAwOwog fQpAQCAtNTIsNiArNTUsOSBAQAogI2lmIENPTkZJR19HTlVUTFMKICAgICBmZl9nbnV0bHNfZGVp bml0KCk7CiAjZW5kaWYKKyNpZiBDT05GSUdfV09MRlNTTAorICAgIGZmX3dvbGZzc2xfZGVpbml0 KCk7CisjZW5kaWYKICNlbmRpZgogfQogCmRpZmYgLU51ciAuL2ZmbXBlZy01LjAuMS9saWJhdmZv cm1hdC90bHMuaCAuL2ZmbXBlZy01LjAuMS13b2xmc3NsL2xpYmF2Zm9ybWF0L3Rscy5oCi0tLSAu L2ZmbXBlZy01LjAuMS9saWJhdmZvcm1hdC90bHMuaAkyMDIxLTEwLTI0IDIxOjQ3OjA3LjAwMDAw MDAwMCArMDEwMAorKysgLi9mZm1wZWctNS4wLjEtd29sZnNzbC9saWJhdmZvcm1hdC90bHMuaAky MDIyLTA0LTA1IDIxOjQ2OjMyLjAwMDAwMDAwMCArMDEwMApAQCAtNTUsNiArNTUsOSBAQAogCiBp bnQgZmZfdGxzX29wZW5fdW5kZXJseWluZyhUTFNTaGFyZWQgKmMsIFVSTENvbnRleHQgKnBhcmVu dCwgY29uc3QgY2hhciAqdXJpLCBBVkRpY3Rpb25hcnkgKipvcHRpb25zKTsKIAordm9pZCBmZl93 b2xmc3NsX2luaXQodm9pZCk7Cit2b2lkIGZmX3dvbGZzc2xfZGVpbml0KHZvaWQpOworCiB2b2lk IGZmX2dudXRsc19pbml0KHZvaWQpOwogdm9pZCBmZl9nbnV0bHNfZGVpbml0KHZvaWQpOwogCmRp ZmYgLU51ciAuL2ZmbXBlZy01LjAuMS9saWJhdmZvcm1hdC90bHNfd29sZnNzbC5jIC4vZmZtcGVn LTUuMC4xLXdvbGZzc2wvbGliYXZmb3JtYXQvdGxzX3dvbGZzc2wuYwotLS0gLi9mZm1wZWctNS4w LjEvbGliYXZmb3JtYXQvdGxzX3dvbGZzc2wuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysgLi9mZm1wZWctNS4wLjEtd29sZnNzbC9saWJhdmZvcm1hdC90bHNfd29sZnNz bC5jCTIwMjItMDQtMTIgMTU6NTY6MzguMDAwMDAwMDAwICswMTAwCkBAIC0wLDAgKzEsMjQ4IEBA CisvKgorICogVExTL1NTTCBQcm90b2NvbAorICogQ29weXJpZ2h0IChjKSAyMDExIE1hcnRpbiBT dG9yc2pvCisgKiBDb3B5cmlnaHQgKGMpIDIwMTggc2Ftc2Ftc2FtQG8yLnBsCisgKgorICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5j bHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJpbnRlcm5hbC5oIgorI2luY2x1ZGUgIm5ldHdv cmsuaCIKKyNpbmNsdWRlICJvc19zdXBwb3J0LmgiCisjaW5jbHVkZSAidXJsLmgiCisjaW5jbHVk ZSAidGxzLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImxp YmF2dXRpbC9hdnN0cmluZy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKKyNpbmNsdWRl ICJsaWJhdnV0aWwvcGFyc2V1dGlscy5oIgorCisgCisKKyNpbmNsdWRlIDx3b2xmc3NsL29wdGlv bnMuaD4KKyNpbmNsdWRlIDx3b2xmc3NsL3NzbC5oPgorCit0eXBlZGVmIHN0cnVjdCBUTFNDb250 ZXh0IHsKKyAgICBjb25zdCBBVkNsYXNzICpjbGFzczsKKyAgICBUTFNTaGFyZWQgdGxzX3NoYXJl ZDsKKyAgICBXT0xGU1NMX0NUWCAqY3R4OworICAgIFdPTEZTU0wgKnNzbDsKK30gVExTQ29udGV4 dDsKKworc3RhdGljIGludCB3b2xmc3NsX2luaXQ7CisKK3ZvaWQgZmZfd29sZnNzbF9pbml0KHZv aWQpCit7CisgICAgZmZfbG9ja19hdmZvcm1hdCgpOworICAgIGlmICghd29sZnNzbF9pbml0KSB7 CisgICAgICAgIHdvbGZTU0xfSW5pdCgpOworICAgIH0KKyAgICB3b2xmc3NsX2luaXQrKzsKKyAg ICBmZl91bmxvY2tfYXZmb3JtYXQoKTsKK30KKwordm9pZCBmZl93b2xmc3NsX2RlaW5pdCh2b2lk KQoreworICAgIGZmX2xvY2tfYXZmb3JtYXQoKTsKKyAgICB3b2xmc3NsX2luaXQtLTsKKyAgICBp ZiAoIXdvbGZzc2xfaW5pdCkgeworICAgICAgICB3b2xmU1NMX0NsZWFudXAoKTsKKyAgICB9Cisg ICAgZmZfdW5sb2NrX2F2Zm9ybWF0KCk7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfdGxzX2Vycm9y KFVSTENvbnRleHQgKmgsIGludCByZXQsIFdPTEZTU0wgKnNzbCkKK3sKKyAgICBjaGFyIGVycm9y X2J1ZmZlcltXT0xGU1NMX01BWF9FUlJPUl9TWl07CisgICAgYXZfbG9nKGgsIEFWX0xPR19FUlJP UiwgIiVpIC0+ICVzXG4iLCB3b2xmU1NMX2dldF9lcnJvcihzc2wsMCksIHdvbGZTU0xfRVJSX2Vy cm9yX3N0cmluZyh3b2xmU1NMX2dldF9lcnJvcihzc2wsMCksIGVycm9yX2J1ZmZlcikpOworICAg IHJldHVybiBBVkVSUk9SKEVJTyk7Cit9CisKK3N0YXRpYyBpbnQgdGxzX2Nsb3NlKFVSTENvbnRl eHQgKmgpCit7CisgICAgVExTQ29udGV4dCAqYyA9IGgtPnByaXZfZGF0YTsKKyAgICBpZiAoYy0+ c3NsKSB7CisgICAgICAgIHdvbGZTU0xfc2h1dGRvd24oYy0+c3NsKTsKKyAgICAgICAgd29sZlNT TF9mcmVlKGMtPnNzbCk7CisgICAgfQorICAgIGlmIChjLT5jdHgpCisgICAgICAgIHdvbGZTU0xf Q1RYX2ZyZWUoYy0+Y3R4KTsKKyAgICBpZiAoYy0+dGxzX3NoYXJlZC50Y3ApCisgICAgICAgIGZm dXJsX2Nsb3NlKGMtPnRsc19zaGFyZWQudGNwKTsKKyAgICAvL2ZmX3dvbGZzc2xfZGVpbml0KCk7 CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd29sZnNzbF9yZWN2X2NhbGxiYWNrKFdP TEZTU0wqIHNzbCwgY2hhciogYnVmLCBpbnQgc3osIHZvaWQqIGN0eCkKK3sKKyAgICBVUkxDb250 ZXh0ICpoID0gKFVSTENvbnRleHQqKSBjdHg7CisgICAgaW50IHJldCA9IGZmdXJsX3JlYWQoaCwg YnVmLCBzeik7CisgICAgaWYgKHJldCA+PSAwKQorICAgICAgICByZXR1cm4gcmV0OworICAgIGlm IChyZXQgPT0gQVZFUlJPUl9FWElUKQorICAgICAgICByZXR1cm4gV09MRlNTTF9DQklPX0VSUl9H RU5FUkFMOworICAgIGVycm5vID0gRUlPOworICAgIHJldHVybiBXT0xGU1NMX0NCSU9fRVJSX0dF TkVSQUw7Cit9CisKK3N0YXRpYyBpbnQgd29sZnNzbF9zZW5kX2NhbGxiYWNrKFdPTEZTU0wqIHNz bCwgY2hhciogYnVmLCBpbnQgc3osIHZvaWQqIGN0eCkKK3sKKyAgICBVUkxDb250ZXh0ICpoID0g KFVSTENvbnRleHQqKSBjdHg7CisgICAgaW50IHJldCA9IGZmdXJsX3dyaXRlKGgsIGJ1Ziwgc3op OworICAgIGlmIChyZXQgPj0gMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICBpZiAocmV0ID09 IEFWRVJST1JfRVhJVCkKKyAgICAgICAgcmV0dXJuIFdPTEZTU0xfQ0JJT19FUlJfR0VORVJBTDsK KyAgICBlcnJubyA9IEVJTzsKKyAgICByZXR1cm4gV09MRlNTTF9DQklPX0VSUl9HRU5FUkFMOwor fQorCitzdGF0aWMgaW50IHRsc19vcGVuKFVSTENvbnRleHQgKmgsIGNvbnN0IGNoYXIgKnVyaSwg aW50IGZsYWdzLCBBVkRpY3Rpb25hcnkgKipvcHRpb25zKQoreworICAgIGNoYXIgZXJyb3JfYnVm ZmVyW1dPTEZTU0xfTUFYX0VSUk9SX1NaXTsKKyAgICBUTFNDb250ZXh0ICpwID0gaC0+cHJpdl9k YXRhOworICAgIFRMU1NoYXJlZCAqYyA9ICZwLT50bHNfc2hhcmVkOworICAgIGludCByZXQ7CisK KyAgICAvL2ZmX3dvbGZzc2xfaW5pdCgpOworCisgICAgaWYgKChyZXQgPSBmZl90bHNfb3Blbl91 bmRlcmx5aW5nKGMsIGgsIHVyaSwgb3B0aW9ucykpIDwgMCkKKyAgICAgICAgZ290byBmYWlsOwor ICAgICAvLyBNb2RpZmllZCB0byBjb21waWxlIHdpdGggbWluaW1hbCB3b2xmU1NMIGxpYnJhcnkg d2hpY2ggb25seSBoYXMgY2xpZW50IG1ldGhvZHMKKyAgICAgLy9wLT5jdHggPSB3b2xmU1NMX0NU WF9uZXcoYy0+bGlzdGVuID8gd29sZlNTTHYyM19zZXJ2ZXJfbWV0aG9kKCkgOiB3b2xmU1NMdjIz X2NsaWVudF9tZXRob2QoKSk7IC8vIHdvbGZUTFN2MV8xX2NsaWVudF9tZXRob2QKKyAgICAgcC0+ Y3R4ID0gd29sZlNTTF9DVFhfbmV3KHdvbGZTU0x2MjNfY2xpZW50X21ldGhvZCgpKTsKKyNpZm5k ZWYgTk9fRklMRVNZU1RFTQorICAgIGlmICghcC0+Y3R4KSB7CisgICAgICBhdl9sb2coaCwgQVZf TE9HX0VSUk9SLCAiJXNcbiIsIHdvbGZTU0xfRVJSX2Vycm9yX3N0cmluZyh3b2xmU1NMX2dldF9l cnJvcihwLT5zc2wsMCksIGVycm9yX2J1ZmZlcikpOworICAgICAgICByZXQgPSBBVkVSUk9SKEVJ Tyk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgaWYgKGMtPmNhX2ZpbGUpIHsKKyAg ICAgICAgaWYgKCF3b2xmU1NMX0NUWF9sb2FkX3ZlcmlmeV9sb2NhdGlvbnMocC0+Y3R4LCBjLT5j YV9maWxlLCBOVUxMKSkKKwkgIGF2X2xvZyhoLCBBVl9MT0dfRVJST1IsICJ3b2xmU1NMX0NUWF9s b2FkX3ZlcmlmeV9sb2NhdGlvbnMgJXNcbiIsIHdvbGZTU0xfRVJSX2Vycm9yX3N0cmluZyh3b2xm U1NMX2dldF9lcnJvcihwLT5zc2wsMCksIGVycm9yX2J1ZmZlcikpOworICAgIH0KKyAgICBpZiAo Yy0+Y2VydF9maWxlICYmICF3b2xmU1NMX0NUWF91c2VfY2VydGlmaWNhdGVfY2hhaW5fZmlsZShw LT5jdHgsIGMtPmNlcnRfZmlsZSkpIHsKKyAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19FUlJPUiwg IlVuYWJsZSB0byBsb2FkIGNlcnQgZmlsZSAlczogJXNcbiIsCisgICAgICAgICAgICAgICBjLT5j ZXJ0X2ZpbGUsIHdvbGZTU0xfRVJSX2Vycm9yX3N0cmluZyh3b2xmU1NMX2dldF9lcnJvcihwLT5z c2wsMCksIGVycm9yX2J1ZmZlcikpOworICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAg ICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgaWYgKGMtPmtleV9maWxlICYmICF3b2xmU1NMX0NU WF91c2VfUHJpdmF0ZUtleV9maWxlKHAtPmN0eCwgYy0+a2V5X2ZpbGUsIFdPTEZTU0xfRklMRVRZ UEVfUEVNKSkgeworICAgICAgICBhdl9sb2coaCwgQVZfTE9HX0VSUk9SLCAiVW5hYmxlIHRvIGxv YWQga2V5IGZpbGUgJXM6ICVzXG4iLAorICAgICAgICAgICAgICAgYy0+a2V5X2ZpbGUsIHdvbGZT U0xfRVJSX2Vycm9yX3N0cmluZyh3b2xmU1NMX2dldF9lcnJvcihwLT5zc2wsMCksIGVycm9yX2J1 ZmZlcikpOworICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgIGdvdG8gZmFpbDsK KyAgICB9CisjZW5kaWYKKyAgICAKKyAgICB3b2xmU1NMX0NUWF9zZXRfdmVyaWZ5KHAtPmN0eCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPnZlcmlmeSA/IFdPTEZTU0xfVkVSSUZZX1BF RVIgfCBXT0xGU1NMX1ZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVCA6IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV09MRlNTTF9WRVJJRllfTk9ORSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIAorI2lmZGVmIEhBVkVfU05JCisgICAgaWYg KCFjLT5saXN0ZW4gJiYgIWMtPm51bWVyaWNob3N0ICYmICF3b2xmU1NMX0NUWF9Vc2VTTkkocC0+ Y3R4LCBXT0xGU1NMX1NOSV9IT1NUX05BTUUsIGMtPmhvc3QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICh1bnNpZ25lZCBzaG9ydClzdHJsZW4oYy0+aG9zdCkpKSB7CisgICAgICAgIGF2X2xv ZyhoLCBBVl9MT0dfRVJST1IsICJmYWlsZWQgdG8gY29uZmlndXJlIHNlcnZlciBuYW1lIGluZGlj YXRpb24gKFNOSSkgJXM6ICVsZCAtPiAlc1xuIiwKKwkgICAgICAgYy0+aG9zdCwgd29sZlNTTF9n ZXRfZXJyb3IocC0+c3NsLDApLCB3b2xmU1NMX0VSUl9lcnJvcl9zdHJpbmcod29sZlNTTF9nZXRf ZXJyb3IocC0+c3NsLDApLCBlcnJvcl9idWZmZXIpKTsKKyAgICB9CisjZW5kaWYKKworICAgIHdv bGZTU0xfQ1RYX1NldElPUmVjdihwLT5jdHgsIHdvbGZzc2xfcmVjdl9jYWxsYmFjayk7CisgICAg d29sZlNTTF9DVFhfU2V0SU9TZW5kKHAtPmN0eCwgd29sZnNzbF9zZW5kX2NhbGxiYWNrKTsKKyAg ICAKKyAgICBwLT5zc2wgPSB3b2xmU1NMX25ldyhwLT5jdHgpOworICAgIGlmICghcC0+c3NsKSB7 CisgICAgICBhdl9sb2coaCwgQVZfTE9HX0VSUk9SLCAiJXNcbiIsIHdvbGZTU0xfRVJSX2Vycm9y X3N0cmluZyh3b2xmU1NMX2dldF9lcnJvcihwLT5zc2wsMCksIGVycm9yX2J1ZmZlcikpOworICAg ICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAg CisgICAgd29sZlNTTF9TZXRJT1JlYWRDdHgocC0+c3NsLCBjLT50Y3ApOworICAgIHdvbGZTU0xf U2V0SU9Xcml0ZUN0eChwLT5zc2wsIGMtPnRjcCk7IAorICAgIAorICAgIC8vIE1vZGlmaWVkIHRv IGNvbXBpbGUgd2l0aCBtaW5pbWFsIHdvbGZTU0wgbGlicmFyeSB3aGljaCBvbmx5IGhhcyBjbGll bnQgbWV0aG9kcworICAgIC8vcmV0ID0gYy0+bGlzdGVuID8gd29sZlNTTF9hY2NlcHQocC0+c3Ns KSA6IHdvbGZTU0xfY29ubmVjdChwLT5zc2wpOworICAgIHJldCA9IHdvbGZTU0xfY29ubmVjdChw LT5zc2wpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICBhdl9sb2coaCwgQVZfTE9HX0VS Uk9SLCAiVW5hYmxlIHRvIG5lZ290aWF0ZSBUTFMvU1NMIHNlc3Npb25cbiIpOworICAgICAgICBy ZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9IGVsc2UgaWYgKHJl dCA8IDApIHsKKyAgICAgICAgcmV0ID0gcHJpbnRfdGxzX2Vycm9yKGgsIHJldCwgcC0+c3NsKTsK KyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gMDsKK2ZhaWw6Cisg ICAgdGxzX2Nsb3NlKGgpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdGxzX3Jl YWQoVVJMQ29udGV4dCAqaCwgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3sKKyAgICBUTFNDb250 ZXh0ICpjID0gaC0+cHJpdl9kYXRhOworICAgIGludCByZXQgPSB3b2xmU1NMX3JlYWQoYy0+c3Ns LCBidWYsIHNpemUpOworICAgIGlmIChyZXQgPiAwKQorICAgICAgICByZXR1cm4gcmV0OworICAg IGlmIChyZXQgPT0gMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOworICAgIHJldHVybiBw cmludF90bHNfZXJyb3IoaCwgcmV0LCBjLT5zc2wpOworfQorCitzdGF0aWMgaW50IHRsc193cml0 ZShVUkxDb250ZXh0ICpoLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQoreworICAgIFRM U0NvbnRleHQgKmMgPSBoLT5wcml2X2RhdGE7CisgICAgaW50IHJldCA9IHdvbGZTU0xfd3JpdGUo Yy0+c3NsLCBidWYsIHNpemUpOworICAgIGlmIChyZXQgPiAwKQorICAgICAgICByZXR1cm4gcmV0 OworICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOworICAgIHJl dHVybiBwcmludF90bHNfZXJyb3IoaCwgcmV0LCBjLT5zc2wpOworfQorCitzdGF0aWMgaW50IHRs c19nZXRfZmlsZV9oYW5kbGUoVVJMQ29udGV4dCAqaCkKK3sKKyAgICBUTFNDb250ZXh0ICpjID0g aC0+cHJpdl9kYXRhOworICAgIHJldHVybiBmZnVybF9nZXRfZmlsZV9oYW5kbGUoYy0+dGxzX3No YXJlZC50Y3ApOworfQorCitzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0aW9uc1tdID0geworICAg IFRMU19DT01NT05fT1BUSU9OUyhUTFNDb250ZXh0LCB0bHNfc2hhcmVkKSwKKyAgICB7IE5VTEwg fQorfTsKKworc3RhdGljIGNvbnN0IEFWQ2xhc3MgdGxzX2NsYXNzID0geworICAgIC5jbGFzc19u YW1lID0gInRscyIsCisgICAgLml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKKyAg ICAub3B0aW9uICAgICA9IG9wdGlvbnMsCisgICAgLnZlcnNpb24gICAgPSBMSUJBVlVUSUxfVkVS U0lPTl9JTlQsCit9OworCitjb25zdCBVUkxQcm90b2NvbCBmZl90bHNfcHJvdG9jb2wgPSB7Cisg ICAgLm5hbWUgICAgICAgICAgID0gInRscyIsCisgICAgLnVybF9vcGVuMiAgICAgID0gdGxzX29w ZW4sCisgICAgLnVybF9yZWFkICAgICAgID0gdGxzX3JlYWQsCisgICAgLnVybF93cml0ZSAgICAg ID0gdGxzX3dyaXRlLAorICAgIC51cmxfY2xvc2UgICAgICA9IHRsc19jbG9zZSwKKyAgICAudXJs X2dldF9maWxlX2hhbmRsZSA9IHRsc19nZXRfZmlsZV9oYW5kbGUsCisgICAgLnByaXZfZGF0YV9z aXplID0gc2l6ZW9mKFRMU0NvbnRleHQpLAorICAgIC5mbGFncyAgICAgICAgICA9IFVSTF9QUk9U T0NPTF9GTEFHX05FVFdPUkssCisgICAgLnByaXZfZGF0YV9jbGFzcyA9ICZ0bHNfY2xhc3MsCit9 Owo= --RWP_PART_dif1651446264 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". --RWP_PART_dif1651446264--