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 B394642BE3 for ; Sun, 1 May 2022 23:17:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D3C1E68B234; Mon, 2 May 2022 02:17:27 +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 8313368AE7E for ; Mon, 2 May 2022 02:17:20 +0300 (EEST) Received: from sparrow.collectfair.co.uk ([80.229.167.224]) by smtp with SMTP id lIoYn2PS3O2rilIoZnVSlX; Mon, 02 May 2022 00:17:20 +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=626f1500 a=kGmXhoCkr3jB6KbzR35ddQ==:117 a=kGmXhoCkr3jB6KbzR35ddQ==:17 a=oZkIemNP1mAA:10 a=dUtWRZAB1rDCoh9MlMwA:9 a=JeY4nRuWAAAA:8 a=wcOQnT_eH2YsDj3zZLgA:9 a=wPNLvfGTeEIA:10 a=fHJYd22vZ_cA:10 a=oXpFOLvHeOhgG0KdW9kA:9 a=B2y7HmGcmWMA:10 a=3mYD0m367-DnXB0HWSkl:22 Received: (qmail 15579 invoked from network); 1 May 2022 23:16:16 -0000 Received: from localhost (HELO webmail.megapico.co.uk) (127.0.0.1) by sparrow.collectfair.co.uk with SMTP; 1 May 2022 23:16:16 -0000 Received: from 192.168.0.1 (auth. user dif@localhost) by webmail.megapico.co.uk with HTTP; Sun, 01 May 2022 23:16:16 +0000 To: ffmpeg-devel@ffmpeg.org Date: Sun, 01 May 2022 23:16:16 +0000 X-Mailer: IlohaMail/0.8.14 Message-ID: <5HQI8uvv.1651446976.2498880.dif@localhost> From: "David Fletcher" Bounce-To: "David Fletcher" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="RWP_PART_dif1651446976" X-CMAE-Envelope: MS4xfBbxOMxMsb4PQn4VJeoA3XQ2/+vJ5PUVovo6tDPN1DxJBXTIbN82V1kVqFO+DXqrqF12BlOiU+Jr4kFt40GH6H2B+O95TpTWMfN6KhcUfWl2WGSDNlmo PWQpNhzxE3uqnPUyjivNU+ezcnWVLtgZc9iWsvw6RE5YjiNLfov987c1Y8TK/yzrj5Mm+sy9x3gqn1YNH2UAqx/Hol0vihrHqLM= Subject: [FFmpeg-devel] PATCH - libmad MP3 decoding 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_dif1651446976 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Please find attached a patch adding support for MP3 decoding using libmad. This is against release ffmpeg-5.0.1, and works for libmad 0.15.1b (the most recent available). I hope that this is useful. Some context - I found the FFmpeg inbuild fixed point MP3 decoder produced very distorted audio for low bitrate streams (56k/s and lower). This was on an ARMv4 CPU for which I needed to make some adaptation to the fixed point maths routines which currently target more recent CPUs. I was not able to resolve the distortion issue and it was easier to integrate libmad decoding which is already optimised for very fast decoding on the ARMv4 CPU. More info about this application here: http://www.megapico.co.uk/sharpfin/mediaserver.html. Best regards, David. --RWP_PART_dif1651446976 Content-Type: text/x-patch; name="libmad.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libmad.patch" ZGlmZiAtTnVyIC4vZmZtcGVnLTUuMC4xL2NvbmZpZ3VyZSAuL2ZmbXBlZy01LjAuMS1tYWQvY29u ZmlndXJlCi0tLSAuL2ZmbXBlZy01LjAuMS9jb25maWd1cmUJMjAyMi0wNC0wNCAxNTo0MDoyMi4w MDAwMDAwMDAgKzAxMDAKKysrIC4vZmZtcGVnLTUuMC4xLW1hZC9jb25maWd1cmUJMjAyMi0wNS0w MSAyMjo1MDowMS40MzU0MzI0MzEgKzAxMDAKQEAgLTI0NCw2ICsyNDQsNyBAQAogICAtLWVuYWJs ZS1saWJrbHZhbmMgICAgICAgZW5hYmxlIEtlcm5lbCBMYWJzIFZBTkMgcHJvY2Vzc2luZyBbbm9d CiAgIC0tZW5hYmxlLWxpYmt2YXphYXIgICAgICBlbmFibGUgSEVWQyBlbmNvZGluZyB2aWEgbGli a3ZhemFhciBbbm9dCiAgIC0tZW5hYmxlLWxpYmxlbnNmdW4gICAgICBlbmFibGUgbGVuc2Z1biBs ZW5zIGNvcnJlY3Rpb24gW25vXQorICAtLWVuYWJsZS1saWJtYWQgICAgICAgICAgZW5hYmxlIE1Q MyBkZWNvZGluZyB2aWEgbGlibWFkIFtub10KICAgLS1lbmFibGUtbGlibW9kcGx1ZyAgICAgIGVu YWJsZSBNb2RQbHVnIHZpYSBsaWJtb2RwbHVnIFtub10KICAgLS1lbmFibGUtbGlibXAzbGFtZSAg ICAgIGVuYWJsZSBNUDMgZW5jb2RpbmcgdmlhIGxpYm1wM2xhbWUgW25vXQogICAtLWVuYWJsZS1s aWJvcGVuY29yZS1hbXJuYiBlbmFibGUgQU1SLU5CIGRlL2VuY29kaW5nIHZpYSBsaWJvcGVuY29y ZS1hbXJuYiBbbm9dCkBAIC0xNzcyLDYgKzE3NzMsNyBAQAogICAgIGZyZWkwcgogICAgIGxpYmNk aW8KICAgICBsaWJkYXZzMgorICAgIGxpYm1hZAogICAgIGxpYnJ1YmJlcmJhbmQKICAgICBsaWJ2 aWRzdGFiCiAgICAgbGlieDI2NApAQCAtMzMzNCw2ICszMzM2LDcgQEAKIGxpYmlsYmNfZW5jb2Rl cl9kZXBzPSJsaWJpbGJjIgogbGlia3ZhemFhcl9lbmNvZGVyX2RlcHM9ImxpYmt2YXphYXIiCiBs aWJtb2RwbHVnX2RlbXV4ZXJfZGVwcz0ibGlibW9kcGx1ZyIKK2xpYm1hZF9kZWNvZGVyX2RlcHM9 ImxpYm1hZCIKIGxpYm1wM2xhbWVfZW5jb2Rlcl9kZXBzPSJsaWJtcDNsYW1lIgogbGlibXAzbGFt ZV9lbmNvZGVyX3NlbGVjdD0iYXVkaW9fZnJhbWVfcXVldWUgbXBlZ2F1ZGlvaGVhZGVyIgogbGli b3BlbmNvcmVfYW1ybmJfZGVjb2Rlcl9kZXBzPSJsaWJvcGVuY29yZV9hbXJuYiIKQEAgLTY1Njks NiArNjU3Miw3IEBACiBmaQogCiBlbmFibGVkIGxpYm1vZHBsdWcgICAgICAgICYmIHJlcXVpcmVf cGtnX2NvbmZpZyBsaWJtb2RwbHVnIGxpYm1vZHBsdWcgbGlibW9kcGx1Zy9tb2RwbHVnLmggTW9k UGx1Z19Mb2FkCitlbmFibGVkIGxpYm1hZCAgICAgICAgICAgICYmIHJlcXVpcmUgbGlibWFkICJt YWQuaCIgbWFkX2RlY29kZXJfaW5pdCAtbG1hZAogZW5hYmxlZCBsaWJtcDNsYW1lICAgICAgICAm JiByZXF1aXJlICJsaWJtcDNsYW1lID49IDMuOTguMyIgbGFtZS9sYW1lLmggbGFtZV9zZXRfVkJS X3F1YWxpdHkgLWxtcDNsYW1lICRsaWJtX2V4dHJhbGlicwogZW5hYmxlZCBsaWJteXNvZmEgICAg ICAgICAmJiB7IGNoZWNrX3BrZ19jb25maWcgbGlibXlzb2ZhIGxpYm15c29mYSBteXNvZmEuaCBt eXNvZmFfbmVpZ2hib3Job29kX2luaXRfd2l0aHN0ZXBkZWZpbmUgfHwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXF1aXJlIGxpYm15c29mYSBteXNvZmEuaCBteXNvZmFfbmVpZ2hi b3Job29kX2luaXRfd2l0aHN0ZXBkZWZpbmUgLWxteXNvZmEgJHpsaWJfZXh0cmFsaWJzOyB9CmRp ZmYgLU51ciAuL2ZmbXBlZy01LjAuMS9saWJhdmNvZGVjL01ha2VmaWxlIC4vZmZtcGVnLTUuMC4x LW1hZC9saWJhdmNvZGVjL01ha2VmaWxlCi0tLSAuL2ZmbXBlZy01LjAuMS9saWJhdmNvZGVjL01h a2VmaWxlCTIwMjItMDEtMTQgMTg6NDU6MzkuMDAwMDAwMDAwICswMDAwCisrKyAuL2ZmbXBlZy01 LjAuMS1tYWQvbGliYXZjb2RlYy9NYWtlZmlsZQkyMDIyLTA0LTA2IDIyOjU2OjA2LjAwMDAwMDAw MCArMDEwMApAQCAtMTA1NCw2ICsxMDU0LDcgQEAKIE9CSlMtJChDT05GSUdfTElCSUxCQ19ERUNP REVSKSAgICAgICAgICAgICs9IGxpYmlsYmMubwogT0JKUy0kKENPTkZJR19MSUJJTEJDX0VOQ09E RVIpICAgICAgICAgICAgKz0gbGliaWxiYy5vCiBPQkpTLSQoQ09ORklHX0xJQktWQVpBQVJfRU5D T0RFUikgICAgICAgICArPSBsaWJrdmF6YWFyLm8KK09CSlMtJChDT05GSUdfTElCTUFEX0RFQ09E RVIpICAgICAgICAgICAgICs9IGxpYm1hZGRlYy5vCiBPQkpTLSQoQ09ORklHX0xJQk1QM0xBTUVf RU5DT0RFUikgICAgICAgICArPSBsaWJtcDNsYW1lLm8KIE9CSlMtJChDT05GSUdfTElCT1BFTkNP UkVfQU1STkJfREVDT0RFUikgICs9IGxpYm9wZW5jb3JlLWFtci5vCiBPQkpTLSQoQ09ORklHX0xJ Qk9QRU5DT1JFX0FNUk5CX0VOQ09ERVIpICArPSBsaWJvcGVuY29yZS1hbXIubwpkaWZmIC1OdXIg Li9mZm1wZWctNS4wLjEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYyAuL2ZmbXBlZy01LjAuMS1tYWQv bGliYXZjb2RlYy9hbGxjb2RlY3MuYwotLS0gLi9mZm1wZWctNS4wLjEvbGliYXZjb2RlYy9hbGxj b2RlY3MuYwkyMDIyLTAxLTE0IDE4OjQ1OjM5LjAwMDAwMDAwMCArMDAwMAorKysgLi9mZm1wZWct NS4wLjEtbWFkL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMJMjAyMi0wNC0wNiAyMjo1NDo0NS4wMDAw MDAwMDAgKzAxMDAKQEAgLTc0NCw2ICs3NDQsNyBAQAogZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZf bGliZ3NtX21zX2RlY29kZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9saWJpbGJjX2VuY29k ZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9saWJpbGJjX2RlY29kZXI7CitleHRlcm4gY29u c3QgQVZDb2RlYyBmZl9saWJtYWRfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2xp Ym1wM2xhbWVfZW5jb2RlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2xpYm9wZW5jb3JlX2Ft cm5iX2VuY29kZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9saWJvcGVuY29yZV9hbXJuYl9k ZWNvZGVyOwpkaWZmIC1OdXIgLi9mZm1wZWctNS4wLjEvbGliYXZjb2RlYy9jb2RlY19pZC5oIC4v ZmZtcGVnLTUuMC4xLW1hZC9saWJhdmNvZGVjL2NvZGVjX2lkLmgKLS0tIC4vZmZtcGVnLTUuMC4x L2xpYmF2Y29kZWMvY29kZWNfaWQuaAkyMDIyLTAxLTE0IDE4OjQ1OjM5LjAwMDAwMDAwMCArMDAw MAorKysgLi9mZm1wZWctNS4wLjEtbWFkL2xpYmF2Y29kZWMvY29kZWNfaWQuaAkyMDIyLTA0LTA2 IDIyOjUyOjE4LjAwMDAwMDAwMCArMDEwMApAQCAtNTE2LDYgKzUxNiw3IEBACiAgICAgQVZfQ09E RUNfSURfSENBLAogICAgIEFWX0NPREVDX0lEX0ZBU1RBVURJTywKICAgICBBVl9DT0RFQ19JRF9N U05TSVJFTiwKKyAgICBBVl9DT0RFQ19JRF9MSUJNQUQsCiAKICAgICAvKiBzdWJ0aXRsZSBjb2Rl Y3MgKi8KICAgICBBVl9DT0RFQ19JRF9GSVJTVF9TVUJUSVRMRSA9IDB4MTcwMDAsICAgICAgICAg IC8vLzwgQSBkdW1teSBJRCBwb2ludGluZyBhdCB0aGUgc3RhcnQgb2Ygc3VidGl0bGUgY29kZWNz LgpkaWZmIC1OdXIgLi9mZm1wZWctNS4wLjEvbGliYXZjb2RlYy9saWJtYWRkZWMuYyAuL2ZmbXBl Zy01LjAuMS1tYWQvbGliYXZjb2RlYy9saWJtYWRkZWMuYwotLS0gLi9mZm1wZWctNS4wLjEvbGli YXZjb2RlYy9saWJtYWRkZWMuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysgLi9mZm1wZWctNS4wLjEtbWFkL2xpYmF2Y29kZWMvbGlibWFkZGVjLmMJMjAyMi0wNC0xMiAx OTowMDoyMS4wMDAwMDAwMDAgKzAxMDAKQEAgLTAsMCArMSwxODEgQEAKKy8qCisgKiBNUDMgZGVj b2RlciB1c2luZyBsaWJtYWQKKyAqIENvcHlyaWdodCAoYykgMjAyMiBEYXZpZCBGbGV0Y2hlcgor ICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSA8bWFkLmg+ CisKKyNpbmNsdWRlICJsaWJhdnV0aWwvY2hhbm5lbF9sYXlvdXQuaCIKKyNpbmNsdWRlICJsaWJh dnV0aWwvY29tbW9uLmgiCisjaW5jbHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgImludGVybmFs LmgiCisjaW5jbHVkZSAiZGVjb2RlLmgiCisKKyNkZWZpbmUgTUFEX0JVRlNJWkUgKDMyICogMTAy NCkKKyNkZWZpbmUgTUlOKGEsIGIpICgoYSkgPCAoYikgPyAoYSkgOiAoYikpCisKK3R5cGVkZWYg c3RydWN0IGxpYm1hZF9jb250ZXh0IHsKKyAgdWludDhfdCBpbnB1dF9idWZmZXJbTUFEX0JVRlNJ WkUrTUFEX0JVRkZFUl9HVUFSRF07CisgIHN0cnVjdCBtYWRfc3ludGggIHN5bnRoOyAKKyAgc3Ry dWN0IG1hZF9zdHJlYW0gc3RyZWFtOworICBzdHJ1Y3QgbWFkX2ZyYW1lICBmcmFtZTsKKyAgc3Ry dWN0IG1hZF9oZWFkZXIgaGVhZGVyOworICBpbnQgZ290X2hlYWRlcjsKK31saWJtYWRfY29udGV4 dDsJCQorCisvKiB1dGlsaXR5IHRvIHNjYWxlIGFuZCByb3VuZCBzYW1wbGVzIHRvIDE2IGJpdHMg Ki8KK3N0YXRpYyBpbmxpbmUgc2lnbmVkIGludCBtYWRfc2NhbGUobWFkX2ZpeGVkX3Qgc2FtcGxl KQoreworICAvKiByb3VuZCAqLworICBzYW1wbGUgKz0gKDFMIDw8IChNQURfRl9GUkFDQklUUyAt IDE2KSk7CisgIAorICAvKiBjbGlwICovCisgIGlmIChzYW1wbGUgPj0gTUFEX0ZfT05FKQorICAg IHNhbXBsZSA9IE1BRF9GX09ORSAtIDE7CisgIGVsc2UgaWYgKHNhbXBsZSA8IC1NQURfRl9PTkUp CisgICAgc2FtcGxlID0gLU1BRF9GX09ORTsKKyAgCisgIC8qIHF1YW50aXplICovCisgIHJldHVy biBzYW1wbGUgPj4gKE1BRF9GX0ZSQUNCSVRTICsgMSAtIDE2KTsKK30KKworc3RhdGljIGF2X2Nv bGQgaW50IGxpYm1hZF9kZWNvZGVfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjKQoreworICAgIGxp Ym1hZF9jb250ZXh0ICptYWQgPSBhdmMtPnByaXZfZGF0YTsKKworICAgIG1hZF9zeW50aF9pbml0 ICAoJm1hZC0+c3ludGgpOworICAgIG1hZF9zdHJlYW1faW5pdCAoJm1hZC0+c3RyZWFtKTsKKyAg ICBtYWRfZnJhbWVfaW5pdCAgKCZtYWQtPmZyYW1lKTsKKyAgICBtYWQtPmdvdF9oZWFkZXIgPSAw OworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBhdl9jb2xkIGludCBsaWJtYWRfZGVjb2Rl X2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmMpCit7CisgICAgbGlibWFkX2NvbnRleHQgKm1hZCA9 IGF2Yy0+cHJpdl9kYXRhOworCisgICAgbWFkX3N5bnRoX2ZpbmlzaCgmbWFkLT5zeW50aCk7Cisg ICAgbWFkX2ZyYW1lX2ZpbmlzaCgmbWFkLT5mcmFtZSk7CisgICAgbWFkX3N0cmVhbV9maW5pc2go Jm1hZC0+c3RyZWFtKTsKKworICAgIG1hZCA9IE5VTEw7CisgICAgCisgICAgcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbnQgbGlibWFkX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjLCB2 b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmdvdF9mcmFtZV9wdHIs IEFWUGFja2V0ICpwa3QpCit7CisgIEFWRnJhbWUgKmZyYW1lID0gZGF0YTsKKyAgbGlibWFkX2Nv bnRleHQgKm1hZCA9IGF2Yy0+cHJpdl9kYXRhOworICBzdHJ1Y3QgbWFkX3BjbSAqcGNtOworICBt YWRfZml4ZWRfdCBjb25zdCAqbGVmdF9jaDsKKyAgbWFkX2ZpeGVkX3QgY29uc3QgKnJpZ2h0X2No OworICBpbnQxNl90ICpvdXRwdXQ7CisgIGludCBuc2FtcGxlczsKKyAgaW50IG5jaGFubmVsczsK KyAgc2l6ZV90IGJ5dGVzX3JlYWQgPSAwOworICBzaXplX3QgcmVtYWluaW5nID0gMDsKKyAgCisg IGlmICghYXZjKQorICAgIHJldHVybiAwOworICAgIAorICBpZiAoIW1hZCkKKyAgICByZXR1cm4g MDsKKyAgICAgIAorICByZW1haW5pbmcgPSBtYWQtPnN0cmVhbS5idWZlbmQgLSBtYWQtPnN0cmVh bS5uZXh0X2ZyYW1lOworICBtZW1tb3ZlKG1hZC0+aW5wdXRfYnVmZmVyLCBtYWQtPnN0cmVhbS5u ZXh0X2ZyYW1lLCByZW1haW5pbmcpOworICBieXRlc19yZWFkID0gTUlOKHBrdC0+c2l6ZSwgTUFE X0JVRlNJWkUgLSByZW1haW5pbmcpOworICBtZW1jcHkobWFkLT5pbnB1dF9idWZmZXIrcmVtYWlu aW5nLCBwa3QtPmRhdGEsIGJ5dGVzX3JlYWQpOworICAKKyAgaWYgKGJ5dGVzX3JlYWQgPT0gMCl7 CisgICAgKmdvdF9mcmFtZV9wdHIgPSAwOworICAgIHJldHVybiAwOworICB9CisgIAorICBtYWRf c3RyZWFtX2J1ZmZlcigmbWFkLT5zdHJlYW0sIG1hZC0+aW5wdXRfYnVmZmVyLCByZW1haW5pbmcg KyBieXRlc19yZWFkKTsKKyAgbWFkLT5zdHJlYW0uZXJyb3IgPSAwOworICAKKyAgaWYoIW1hZC0+ Z290X2hlYWRlcil7CisgICAgbWFkX2hlYWRlcl9kZWNvZGUoJm1hZC0+aGVhZGVyLCAmbWFkLT5z dHJlYW0pOworICAgIG1hZC0+Z290X2hlYWRlciA9IDE7CisgICAgYXZjLT5mcmFtZV9zaXplID0g MzIgKiAobWFkLT5oZWFkZXIubGF5ZXIgPT0gTUFEX0xBWUVSX0kgPyAxMiA6CVwKKwkJCSAgICAo KG1hZC0+aGVhZGVyLmxheWVyID09IE1BRF9MQVlFUl9JSUkgJiYJXAorCQkJICAgICAgKG1hZC0+ aGVhZGVyLmZsYWdzICYgTUFEX0ZMQUdfTFNGX0VYVCkpID8gMTggOiAzNikpOworICAgIGF2Yy0+ c2FtcGxlX2ZtdCA9IEFWX1NBTVBMRV9GTVRfUzE2OworICAgIGlmKG1hZC0+aGVhZGVyLm1vZGUg PT0gTUFEX01PREVfU0lOR0xFX0NIQU5ORUwpeworICAgICAgYXZjLT5jaGFubmVsX2xheW91dCA9 IEFWX0NIX0xBWU9VVF9NT05POworICAgICAgYXZjLT5jaGFubmVscyA9IDE7CisgICAgfWVsc2V7 CisgICAgICBhdmMtPmNoYW5uZWxfbGF5b3V0ID0gQVZfQ0hfTEFZT1VUX1NURVJFTzsKKyAgICAg IGF2Yy0+Y2hhbm5lbHMgPSAyOworICAgIH0KKyAgfQorCisgIGZyYW1lLT5jaGFubmVsX2xheW91 dCA9IGF2Yy0+Y2hhbm5lbF9sYXlvdXQ7CisgIGZyYW1lLT5mb3JtYXQgPSBhdmMtPnNhbXBsZV9m bXQ7CisgIGZyYW1lLT5jaGFubmVscyA9IGF2Yy0+Y2hhbm5lbHM7CisgIGZyYW1lLT5uYl9zYW1w bGVzID0gYXZjLT5mcmFtZV9zaXplOyAKKyAgICAKKyAgaWYgKChmZl9nZXRfYnVmZmVyKGF2Yywg ZnJhbWUsIDApKSA8IDApCisgICAgcmV0dXJuIDA7CisgCisgIGlmIChtYWRfZnJhbWVfZGVjb2Rl KCZtYWQtPmZyYW1lLCAmbWFkLT5zdHJlYW0pID09IC0xKSB7CisgICAgKmdvdF9mcmFtZV9wdHIg PSAwOworICAgIHJldHVybiBtYWQtPnN0cmVhbS5idWZlbmQgLSBtYWQtPnN0cmVhbS5uZXh0X2Zy YW1lOworICB9CisKKyAgbWFkX3N5bnRoX2ZyYW1lICgmbWFkLT5zeW50aCwgJm1hZC0+ZnJhbWUp OworICAKKyAgcGNtID0gJm1hZC0+c3ludGgucGNtOworICBvdXRwdXQgPSAoaW50MTZfdCAqKWZy YW1lLT5kYXRhWzBdOworICBuc2FtcGxlcyA9IHBjbS0+bGVuZ3RoOworICBuY2hhbm5lbHMgPSBw Y20tPmNoYW5uZWxzOworICBsZWZ0X2NoID0gcGNtLT5zYW1wbGVzWzBdOworICByaWdodF9jaCA9 IHBjbS0+c2FtcGxlc1sxXTsKKyAgd2hpbGUgKG5zYW1wbGVzLS0pIHsKKyAgICAqb3V0cHV0Kysg PSBtYWRfc2NhbGUoKihsZWZ0X2NoKyspKTsKKyAgICBpZiAobmNoYW5uZWxzID09IDIpIHsKKyAg ICAgICpvdXRwdXQrKyA9IG1hZF9zY2FsZSgqKHJpZ2h0X2NoKyspKTsKKyAgICB9CisgICAgLy9Q bGF5ZXJzIHNob3VsZCByZWNvZ25pc2UgbW9ubyBhbmQgcGxheSB0aHJvdWdoIGJvdGggY2hhbm5l bHMKKyAgICAvL1dyaXRpbmcgdGhlIHNhbWUgdGhpbmcgdG8gYm90aCBsZWZ0IGFuZCByaWdodCBj aGFubmVscyBoZXJlIGNhdXNlcworICAgIC8vbWVtb3J5IGlzc3VlcyBhcyBpdCBjcmVhdGVzIGRv dWJsZSB0aGUgbnVtYmVyIG9mIHNhbXBsZXMgYWxsb2NhdGVkLgorICB9CisgIAorICAqZ290X2Zy YW1lX3B0ciA9IDE7CisgCisgIHJldHVybiBtYWQtPnN0cmVhbS5idWZlbmQgLSBtYWQtPnN0cmVh bS5uZXh0X2ZyYW1lOworfQorCitBVkNvZGVjIGZmX2xpYm1hZF9kZWNvZGVyID0geworICAgIC5u YW1lICAgICAgICAgICA9ICJsaWJtYWQiLAorICAgIC5sb25nX25hbWUgICAgICA9IE5VTExfSUZf Q09ORklHX1NNQUxMKCJsaWJtYWQgTVAzIGRlY29kZXIiKSwKKyAgICAud3JhcHBlcl9uYW1lICAg PSAibGlibWFkIiwKKyAgICAudHlwZSAgICAgICAgICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCisg ICAgLmlkICAgICAgICAgICAgID0gQVZfQ09ERUNfSURfTVAzLAorICAgIC5zYW1wbGVfZm10cyAg ICA9IChjb25zdCBlbnVtIEFWU2FtcGxlRm9ybWF0W10pIHsgQVZfU0FNUExFX0ZNVF9TMTYsIEFW X1NBTVBMRV9GTVRfTk9ORSB9LAorICAgIC5jYXBhYmlsaXRpZXMgICA9IEFWX0NPREVDX0NBUF9E UjEgfCBBVl9DT0RFQ19DQVBfQ0hBTk5FTF9DT05GLAorICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNp emVvZihsaWJtYWRfY29udGV4dCksCisgICAgLmluaXQgICAgICAgICAgID0gbGlibWFkX2RlY29k ZV9pbml0LAorICAgIC5jbG9zZSAgICAgICAgICA9IGxpYm1hZF9kZWNvZGVfY2xvc2UsCisgICAg LmRlY29kZSAgICAgICAgID0gbGlibWFkX2RlY29kZV9mcmFtZQorfTsKKwo= --RWP_PART_dif1651446976 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_dif1651446976--