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 B86FA44BE2 for ; Thu, 8 Jun 2023 17:39:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0517268C2E8; Thu, 8 Jun 2023 20:39:35 +0300 (EEST) Received: from mail-vk1-f177.google.com (mail-vk1-f177.google.com [209.85.221.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E8908680BF6 for ; Thu, 8 Jun 2023 20:39:27 +0300 (EEST) Received: by mail-vk1-f177.google.com with SMTP id 71dfb90a1353d-45eabad43c4so296798e0c.3 for ; Thu, 08 Jun 2023 10:39:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686245966; x=1688837966; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Ixyo2GN6tXadUvwwXNqHciabi2acmO3nhoNfr7LKP6w=; b=WEBBOAIe9rhmZULZTNolxmIBo0wbcoTr9APCFQ2CFuqrSqm7jir2QUVUdzp96sxMf9 0VfaHINcX8FPTltyWu+n8Um2O4jN0RJNyVyh1W0QlidaZLxly85HMktjA8x3cvT6Z2DZ saBIQTwhIlJWXauzB10OiuciZx4dXc4vpZImmZlawZxkLTBbhvXZbSJ70pac3E8ovw0d JVLedR7icuw1qVySKk7oMYL8fYoxb2AZHF6HjJ0dpa9kBwn9+OHpO6a4cb3JolLeMTg3 zXrGYj/MbbQ61sC79E7Y/j+0uzuyQBTKC1rM/7NR/iGbWbYcgITVS6DjKNGO+u6xPnBt 1QgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686245966; x=1688837966; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Ixyo2GN6tXadUvwwXNqHciabi2acmO3nhoNfr7LKP6w=; b=aXVIm5Cwmw/ypB7GCMT3GpKl7uXGjoLtodhqqyA7UgmsWVdXjTRkifqX4UzU56jff2 Kt7tI0VAzeaSKGbnwv9NoyS07Rp6hCQQ3+b+6asJTm6PLMBcll9e12gVhjpxz10a7jXl N+23S8CLhzRhd7jvcRBP/2vMexsdem39c7fMU67ulJ7AIs8iaOox6Vkc2TUPXM5CojwR jzIWqMS2AWQncLi93k8sdoO5Lxsl+IRf+jT0C3DTfWxaYPXJUiaE+v8FNK5HQk/CYPIz 5xY8Yp8Fo1knIXFisFsY9A5TbqGJSl4icAUhelDAW5kHJhxoMjidB3i/+PLuClr2jQs6 xwoA== X-Gm-Message-State: AC+VfDxzsLMPw8SbPXko+CK73fICEzECLlmspui/D4g54TXyDlE8140b t5nWHpQYeSVNyCBtJ1tgO/xNgCOb8i8ubGwILzHCKYYp X-Google-Smtp-Source: ACHHUZ7TOLuNA0r0LfioFU5KzEFKfmgFw0H1EP+gCg8DOqva5+jT5FIYV6qB+/OvO5Hl/ONyxYC7DxPnZO37pRt/O5s= X-Received: by 2002:a67:f793:0:b0:432:81e1:c296 with SMTP id j19-20020a67f793000000b0043281e1c296mr2942640vso.24.1686245965650; Thu, 08 Jun 2023 10:39:25 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Thu, 8 Jun 2023 19:39:08 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000c9adc105fda1bbc3" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec: add VMX1 decoder 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: --000000000000c9adc105fda1bbc3 Content-Type: text/plain; charset="UTF-8" Attached. --000000000000c9adc105fda1bbc3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-add-VMX1-decoder.patch" Content-Disposition: attachment; filename="0001-avcodec-add-VMX1-decoder.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_linfadb10 RnJvbSAyZTBiYmJjNzNhZmVhYzQzZThjYjdlMmQ1Yzc4NjQ3NzI1Yzc2NGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFN1biwgNCBKdW4gMjAyMyAyMDozMDo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGF2Y29kZWM6 IGFkZCBWTVgxIGRlY29kZXIKClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBNYWhvbCA8b25lbWRhQGdt YWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL01ha2VmaWxlICAgICB8ICAgMSArCiBsaWJhdmNvZGVj L2FsbGNvZGVjcy5jICB8ICAgMSArCiBsaWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyB8ICAgNyArCiBs aWJhdmNvZGVjL2NvZGVjX2lkLmggICB8ICAgMSArCiBsaWJhdmNvZGVjL3ZtaXhkZWMuYyAgICB8 IDI4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJhdmZvcm1h dC9yaWZmLmMgICAgICB8ICAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDI5OSBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy92bWl4ZGVjLmMKCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCA4N2E4YjkwMDM3 Li4yZWZhYjYwZDdkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xpYmF2 Y29kZWMvTWFrZWZpbGUKQEAgLTc1Myw2ICs3NTMsNyBAQCBPQkpTLSQoQ09ORklHX1ZDMl9FTkNP REVSKSAgICAgICAgICAgICArPSB2YzJlbmMubyB2YzJlbmNfZHd0Lm8gZGlyYWN0YWIubwogT0JK Uy0kKENPTkZJR19WQ1IxX0RFQ09ERVIpICAgICAgICAgICAgKz0gdmNyMS5vCiBPQkpTLSQoQ09O RklHX1ZNREFVRElPX0RFQ09ERVIpICAgICAgICArPSB2bWRhdWRpby5vCiBPQkpTLSQoQ09ORklH X1ZNRFZJREVPX0RFQ09ERVIpICAgICAgICArPSB2bWR2aWRlby5vCitPQkpTLSQoQ09ORklHX1ZN SVhfREVDT0RFUikgICAgICAgICAgICArPSB2bWl4ZGVjLm8KIE9CSlMtJChDT05GSUdfVk1OQ19E RUNPREVSKSAgICAgICAgICAgICs9IHZtbmMubwogT0JKUy0kKENPTkZJR19WTlVMTF9ERUNPREVS KSAgICAgICAgICAgKz0gbnVsbC5vCiBPQkpTLSQoQ09ORklHX1ZOVUxMX0VOQ09ERVIpICAgICAg ICAgICArPSBudWxsLm8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJh dmNvZGVjL2FsbGNvZGVjcy5jCmluZGV4IGE5OGMzMDBkYTQuLjExYzEzNmVmNTkgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwpA QCAtMzcwLDYgKzM3MCw3IEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3ZjMV92NGwybTJtX2Rl Y29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl92YzJfZW5jb2RlcjsKIGV4dGVybiBjb25z dCBGRkNvZGVjIGZmX3ZjcjFfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3ZtZHZp ZGVvX2RlY29kZXI7CitleHRlcm4gY29uc3QgRkZDb2RlYyBmZl92bWl4X2RlY29kZXI7CiBleHRl cm4gY29uc3QgRkZDb2RlYyBmZl92bW5jX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBm Zl92cDNfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3ZwNF9kZWNvZGVyOwpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2Mu YwppbmRleCA0MTI5M2E3OGRjLi4zZTMxYTFlZWQ2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2Nv ZGVjX2Rlc2MuYworKysgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwpAQCAtMTk1Myw2ICsxOTUz LDEzIEBAIHN0YXRpYyBjb25zdCBBVkNvZGVjRGVzY3JpcHRvciBjb2RlY19kZXNjcmlwdG9yc1td ID0gewogICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIlJUVjEgKFJp dmFUdW5lciBWaWRlbykiKSwKICAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BST1BfSU5U UkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ksCiAgICAgfSwKKyAgICB7CisgICAgICAgIC5p ZCAgICAgICAgPSBBVl9DT0RFQ19JRF9WTUlYLAorICAgICAgICAudHlwZSAgICAgID0gQVZNRURJ QV9UWVBFX1ZJREVPLAorICAgICAgICAubmFtZSAgICAgID0gInZtaXgiLAorICAgICAgICAubG9u Z19uYW1lID0gTlVMTF9JRl9DT05GSUdfU01BTEwoInZNaXggVmlkZW8iKSwKKyAgICAgICAgLnBy b3BzICAgICA9IEFWX0NPREVDX1BST1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ks CisgICAgfSwKIAogICAgIC8qIHZhcmlvdXMgUENNICJjb2RlY3MiICovCiAgICAgewpkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9jb2RlY19pZC5oIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCmluZGV4 IDlhNzhjZmFiZTIuLmQyMzU0OWQ3ZTAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY29kZWNfaWQu aAorKysgYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKQEAgLTMyMyw2ICszMjMsNyBAQCBlbnVtIEFW Q29kZWNJRCB7CiAgICAgQVZfQ09ERUNfSURfUERWLAogICAgIEFWX0NPREVDX0lEX0VWQywKICAg ICBBVl9DT0RFQ19JRF9SVFYxLAorICAgIEFWX0NPREVDX0lEX1ZNSVgsCiAKICAgICAvKiB2YXJp b3VzIFBDTSAiY29kZWNzIiAqLwogICAgIEFWX0NPREVDX0lEX0ZJUlNUX0FVRElPID0gMHgxMDAw MCwgICAgIC8vLzwgQSBkdW1teSBpZCBwb2ludGluZyBhdCB0aGUgc3RhcnQgb2YgYXVkaW8gY29k ZWNzCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZtaXhkZWMuYyBiL2xpYmF2Y29kZWMvdm1peGRl Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmE5Y2I3MDQ5NjQKLS0t IC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3ZtaXhkZWMuYwpAQCAtMCwwICsxLDI4OCBAQAor LyoKKyAqIHZNaXggZGVjb2RlcgorICogQ29weXJpZ2h0IChjKSAyMDIzIFBhdWwgQiBNYWhvbAor ICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSA8c3RkaW8u aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUg ImxpYmF2dXRpbC9hdmFzc2VydC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUu aCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvbWVtX2ludGVybmFsLmgiCisKKyNpbmNsdWRlICJhdmNv ZGVjLmgiCisjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJkZWNvZGUuaCIK KyNkZWZpbmUgQ0FDSEVEX0JJVFNUUkVBTV9SRUFERVIgIUFSQ0hfWDg2XzMyCisjaW5jbHVkZSAi Z29sb21iLmgiCisjaW5jbHVkZSAiZ2V0X2JpdHMuaCIKKyNpbmNsdWRlICJpZGN0ZHNwLmgiCisj aW5jbHVkZSAidGhyZWFkLmgiCisKK3R5cGVkZWYgc3RydWN0IFNsaWNlQ29udGV4dCB7CisgICAg Y29uc3QgdWludDhfdCAqZGNfcHRyOworICAgIGNvbnN0IHVpbnQ4X3QgKmFjX3B0cjsKKyAgICB1 bnNpZ25lZCBkY19zaXplOworICAgIHVuc2lnbmVkIGFjX3NpemU7Cit9IFNsaWNlQ29udGV4dDsK KwordHlwZWRlZiBzdHJ1Y3QgVk1JWENvbnRleHQgeworICAgIGludCBuYl9zbGljZXM7CisKKyAg ICBpbnQxNl90IGZhY3RvcnNbNjRdOworICAgIHVpbnQ4X3Qgc2Nhbls2NF07CisKKyAgICBTbGlj ZUNvbnRleHQgc2xpY2VzWzI1NV07CisKKyAgICBJRENURFNQQ29udGV4dCBpZHNwOworfSBWTUlY Q29udGV4dDsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgcXVhbGl0eVsyNV0gPSB7CisgICAgIDEs ICAyLCAgMywgIDQsICA1LCAgNiwgIDcsICA4LCAxMCwgMTIsIDE0LCAxNiwKKyAgICAxOCwgMjAs IDIyLCAyNCwgMjgsIDMyLCAzNiwgNDAsIDQ0LCA0OCwgNTIsIDU2LCA2NCwKK307CisKK3N0YXRp YyBjb25zdCB1aW50OF90IHF1YW50WzY0XSA9IHsKKyAgICAxNiwgMTYsIDE5LCAyMiwgMjIsIDI2 LCAyNiwgMjcsCisgICAgMTYsIDE2LCAyMiwgMjIsIDI2LCAyNywgMjcsIDI5LAorICAgIDE5LCAy MiwgMjYsIDI2LCAyNywgMjksIDI5LCAzNSwKKyAgICAyMiwgMjQsIDI3LCAyNywgMjksIDMyLCAz NCwgMzgsCisgICAgMjYsIDI3LCAyOSwgMjksIDMyLCAzNSwgMzgsIDQ2LAorICAgIDI3LCAyOSwg MzQsIDM0LCAzNSwgNDAsIDQ2LCA1NiwKKyAgICAyOSwgMzQsIDM0LCAzNywgNDAsIDQ4LCA1Niwg NjksCisgICAgMzQsIDM3LCAzOCwgNDAsIDQ4LCA1OCwgNjksIDgzLAorfTsKKworc3RhdGljIGF2 X2NvbGQgaW50IGRlY29kZV9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKK3sKKyAgICBWTUlY Q29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisKKyAgICBhdmN0eC0+Yml0c19wZXJfcmF3 X3NhbXBsZSA9IDg7CisgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1lVVjQyMlA7CisK KyAgICBhdmN0eC0+Y29kZWRfd2lkdGggPSBGRkFMSUdOKGF2Y3R4LT53aWR0aCwgMTYpOworICAg IGF2Y3R4LT5jb2RlZF9oZWlnaHQgPSBGRkFMSUdOKGF2Y3R4LT5oZWlnaHQsIDE2KTsKKworICAg IGZmX2lkY3Rkc3BfaW5pdCgmcy0+aWRzcCwgYXZjdHgpOworICAgIGZmX3Blcm11dGVfc2NhbnRh YmxlKHMtPnNjYW4sIGZmX3ppZ3phZ19kaXJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg cy0+aWRzcC5pZGN0X3Blcm11dGF0aW9uKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGlu bGluZSBpbnQgZ2V0X3NlX2dvbG9tYl92bWl4KEdldEJpdENvbnRleHQgKmdiKQoreworICAgIHVu c2lnbmVkIGludCBidWYgPSBnZXRfdWVfZ29sb21iX2xvbmcoZ2IpOworICAgIGludCBzaWduID0g KGJ1ZiAmIDEpIC0gMTsKKyAgICByZXR1cm4gKChidWYgPj4gMSkgXiAofnNpZ24pKTsKK30KKwor c3RhdGljIGludCBkZWNvZGVfZGNhYyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAg ICAgICAgICAgICAgIEdldEJpdENvbnRleHQgKmRjX2diLCBHZXRCaXRDb250ZXh0ICphY19nYiwK KyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKmRjcnVuLCB1bnNpZ25lZCAqYWNydW4s CisgICAgICAgICAgICAgICAgICAgICAgIEFWRnJhbWUgKmZyYW1lLCBpbnQgd2lkdGgsIGludCBi eSwgaW50IHBsYW5lKQoreworICAgIGNvbnN0IHB0cmRpZmZfdCBsaW5lc2l6ZSA9IGZyYW1lLT5s aW5lc2l6ZVtwbGFuZV07CisgICAgdWludDhfdCAqZHN0ID0gZnJhbWUtPmRhdGFbcGxhbmVdICsg YnkgKiBsaW5lc2l6ZTsKKyAgICB1bnNpZ25lZCBkY19ydW4gPSAqZGNydW4sIGFjX3J1biA9ICph Y3J1bjsKKyAgICBMT0NBTF9BTElHTkVEXzMyKGludDE2X3QsIGJsb2NrLCBbNjRdKTsKKyAgICBW TUlYQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgY29uc3QgaW50MTZfdCAqZmFj dG9ycyA9IHMtPmZhY3RvcnM7CisgICAgY29uc3QgdWludDhfdCAqc2NhbiA9IHMtPnNjYW47Cisg ICAgY29uc3QgaW50IGFkZCA9IHBsYW5lID8gMCA6IDEwMjQ7CisgICAgaW50IGksIGRjX3YgPSAw LCBhY192ID0gMCwgZGMgPSAwOworCisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCAyOyB5KyspIHsK KyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCArPSA4KSB7CisgICAgICAgICAg ICBtZW1zZXQoYmxvY2ssIDAsIHNpemVvZigqYmxvY2spKjY0KTsKKworICAgICAgICAgICAgaWYg KGRjX3J1biA+IDApIHsKKyAgICAgICAgICAgICAgICBkY19ydW4tLTsKKyAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgICAgZGNfdiA9IGdldF9zZV9nb2xvbWJfdm1peChkY19nYik7 CisgICAgICAgICAgICAgICAgZGMgKz0gZGNfdjsKKyAgICAgICAgICAgICAgICBpZiAoIWRjX3Yp CisgICAgICAgICAgICAgICAgICAgIGRjX3J1biA9IGdldF91ZV9nb2xvbWJfbG9uZyhkY19nYik7 CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgNjQ7IG4r KykgeworICAgICAgICAgICAgICAgIGlmIChhY19ydW4gPiAwKSB7CisgICAgICAgICAgICAgICAg ICAgIGFjX3J1bi0tOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg ICAgICB9CisKKyAgICAgICAgICAgICAgICBhY192ID0gZ2V0X3NlX2dvbG9tYl92bWl4KGFjX2di KTsKKyAgICAgICAgICAgICAgICBpID0gc2NhbltuXTsKKyAgICAgICAgICAgICAgICBibG9ja1tp XSA9IChhY192ICogZmFjdG9yc1tpXSkgPj4gNDsKKyAgICAgICAgICAgICAgICBpZiAoIWFjX3Yp CisgICAgICAgICAgICAgICAgICAgIGFjX3J1biA9IGdldF91ZV9nb2xvbWJfbG9uZyhhY19nYik7 CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJsb2NrWzBdID0gKChkYyArIGFkZCkgKiAx NikgPj4gNDsKKyAgICAgICAgICAgIHMtPmlkc3AuaWRjdF9wdXQoZHN0ICsgeCwgbGluZXNpemUs IGJsb2NrKTsKKyAgICAgICAgfQorCisgICAgICAgIGRzdCArPSA4ICogbGluZXNpemU7CisgICAg fQorCisgICAgKmRjcnVuID0gZGNfcnVuOworICAgICphY3J1biA9IGFjX3J1bjsKKworICAgIHJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGRlY29kZV9zbGljZShBVkNvZGVjQ29udGV4dCAqYXZj dHgsIEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf dCAqZGNfc3JjLCB1bnNpZ25lZCBkY19zbGljZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdWludDhfdCAqYWNfc3JjLCB1bnNpZ25lZCBhY19zbGljZV9zaXplLAorICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGJ5KQoreworICAgIHVuc2lnbmVkIGRjX3J1biA9IDAsIGFj X3J1biA9IDA7CisgICAgR2V0Qml0Q29udGV4dCBkY19nYiwgYWNfZ2I7CisgICAgaW50IHJldDsK KworICAgIHJldCA9IGluaXRfZ2V0X2JpdHM4KCZkY19nYiwgZGNfc3JjLCBkY19zbGljZV9zaXpl KTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldCA9IGlu aXRfZ2V0X2JpdHM4KCZhY19nYiwgYWNfc3JjLCBhY19zbGljZV9zaXplKTsKKyAgICBpZiAocmV0 IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIGZvciAoaW50IHAgPSAwOyBwIDwgMzsg cCsrKSB7CisgICAgICAgIGNvbnN0IGludCByc2hpZnQgPSAhIXA7CisgICAgICAgIHJldCA9IGRl Y29kZV9kY2FjKGF2Y3R4LCAmZGNfZ2IsICZhY19nYiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgJmRjX3J1biwgJmFjX3J1biwgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZy YW1lLT53aWR0aCA+PiByc2hpZnQsIGJ5LCBwKTsKKyAgICAgICAgaWYgKHJldCA8IDApCisgICAg ICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KCZkY19nYikg PCAwKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgICAgIGlm IChnZXRfYml0c19sZWZ0KCZhY19nYikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CisKKyAgICAgICAgYWxpZ25fZ2V0X2JpdHMoJmRjX2diKTsKKyAgICAgICAg YWxpZ25fZ2V0X2JpdHMoJmFjX2diKTsKKyAgICB9CisKKyAgICBpZiAoZ2V0X2JpdHNfbGVmdCgm ZGNfZ2IpID4gMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgaWYg KGdldF9iaXRzX2xlZnQoJmFjX2diKSA+IDApCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGVjb2RlX3NsaWNlcyhB VkNvZGVjQ29udGV4dCAqYXZjdHgsIHZvaWQgKmFyZywKKyAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbiwgaW50IHRocmVhZF9uYikKK3sKKyAgICBWTUlYQ29udGV4dCAqcyA9IGF2Y3R4LT5w cml2X2RhdGE7CisgICAgY29uc3QgdWludDhfdCAqZGNfc2xpY2VfcHRyID0gcy0+c2xpY2VzW25d LmRjX3B0cjsKKyAgICBjb25zdCB1aW50OF90ICphY19zbGljZV9wdHIgPSBzLT5zbGljZXNbbl0u YWNfcHRyOworICAgIHVuc2lnbmVkIGRjX3NsaWNlX3NpemUgPSBzLT5zbGljZXNbbl0uZGNfc2l6 ZTsKKyAgICB1bnNpZ25lZCBhY19zbGljZV9zaXplID0gcy0+c2xpY2VzW25dLmFjX3NpemU7Cisg ICAgQVZGcmFtZSAqZnJhbWUgPSBhcmc7CisKKyAgICByZXR1cm4gZGVjb2RlX3NsaWNlKGF2Y3R4 LCBmcmFtZSwgZGNfc2xpY2VfcHRyLCBkY19zbGljZV9zaXplLAorICAgICAgICAgICAgICAgICAg ICAgICAgYWNfc2xpY2VfcHRyLCBhY19zbGljZV9zaXplLCBuICogMTYpOworfQorCitzdGF0aWMg aW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAgICAg ICAgICAgICBBVkZyYW1lICpmcmFtZSwgaW50ICpnb3RfZnJhbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICBBVlBhY2tldCAqYXZwa3QpCit7CisgICAgVk1JWENvbnRleHQgKnMgPSBhdmN0eC0+ cHJpdl9kYXRhOworICAgIHVuc2lnbmVkIG9mZnNldCA9IDMsIHE7CisgICAgaW50IHJldDsKKwor ICAgIGlmIChhdnBrdC0+c2l6ZSA8PSA3KQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElE REFUQTsKKworICAgIGlmIChhdnBrdC0+ZGF0YVswXSAhPSAweDAxKQorICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIHEgPSBhdl9jbGlwKDk5IC0gYXZfY2xpcChhdnBr dC0+ZGF0YVsxXSwgMCwgOTkpLCAwLCBGRl9BUlJBWV9FTEVNUyhxdWFsaXR5KSAtIDEpOworICAg IGZvciAoaW50IG4gPSAwOyBuIDwgNjQ7IG4rKykKKyAgICAgICAgcy0+ZmFjdG9yc1tuXSA9IHF1 YW50W25dICogcXVhbGl0eVtxXTsKKworICAgIHMtPm5iX3NsaWNlcyA9IGF2cGt0LT5kYXRhWzJd OworICAgIGlmICghcy0+bmJfc2xpY2VzIHx8IHMtPm5iX3NsaWNlcyA+IChhdmN0eC0+aGVpZ2h0 ICsgMTUpIC8gMTYpCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAg cmV0ID0gZmZfdGhyZWFkX2dldF9idWZmZXIoYXZjdHgsIGZyYW1lLCAwKTsKKyAgICBpZiAocmV0 IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIGZvciAoaW50IG4gPSAwOyBuIDwgcy0+ bmJfc2xpY2VzOyBuKyspIHsKKyAgICAgICAgdW5zaWduZWQgc2xpY2Vfc2l6ZTsKKworICAgICAg ICBpZiAob2Zmc2V0ICsgNCA+IGF2cGt0LT5zaXplKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CisKKyAgICAgICAgc2xpY2Vfc2l6ZSA9IEFWX1JMMzIoYXZwa3QtPmRh dGEgKyBvZmZzZXQpOworICAgICAgICBpZiAoc2xpY2Vfc2l6ZSA+IGF2cGt0LT5zaXplKQorICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICAgICAgaWYgKGF2cGt0 LT5zaXplIC0gc2xpY2Vfc2l6ZSAtIDRMTCA8IG9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgICAgIHMtPnNsaWNlc1tuXS5kY19zaXplID0gc2xp Y2Vfc2l6ZTsKKyAgICAgICAgcy0+c2xpY2VzW25dLmRjX3B0ciA9IGF2cGt0LT5kYXRhICsgb2Zm c2V0ICsgNDsKKyAgICAgICAgb2Zmc2V0ICs9IHNsaWNlX3NpemUgKyA0OworICAgIH0KKworICAg IGZvciAoaW50IG4gPSAwOyBuIDwgcy0+bmJfc2xpY2VzOyBuKyspIHsKKyAgICAgICAgdW5zaWdu ZWQgc2xpY2Vfc2l6ZTsKKworICAgICAgICBpZiAob2Zmc2V0ICsgNCA+IGF2cGt0LT5zaXplKQor ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICAgICAgc2xpY2Vf c2l6ZSA9IEFWX1JMMzIoYXZwa3QtPmRhdGEgKyBvZmZzZXQpOworICAgICAgICBpZiAoc2xpY2Vf c2l6ZSA+IGF2cGt0LT5zaXplKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CisKKyAgICAgICAgaWYgKGF2cGt0LT5zaXplIC0gc2xpY2Vfc2l6ZSAtIDRMTCA8IG9mZnNl dCkKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgICAgIHMt PnNsaWNlc1tuXS5hY19zaXplID0gc2xpY2Vfc2l6ZTsKKyAgICAgICAgcy0+c2xpY2VzW25dLmFj X3B0ciA9IGF2cGt0LT5kYXRhICsgb2Zmc2V0ICsgNDsKKyAgICAgICAgb2Zmc2V0ICs9IHNsaWNl X3NpemUgKyA0OworICAgIH0KKworICAgIGF2Y3R4LT5leGVjdXRlMihhdmN0eCwgZGVjb2RlX3Ns aWNlcywgZnJhbWUsIE5VTEwsIHMtPm5iX3NsaWNlcyk7CisKKyAgICBmcmFtZS0+cGljdF90eXBl ID0gQVZfUElDVFVSRV9UWVBFX0k7CisgICAgZnJhbWUtPmZsYWdzIHw9IEFWX0ZSQU1FX0ZMQUdf S0VZOworCisgICAgKmdvdF9mcmFtZSA9IDE7CisKKyAgICByZXR1cm4gYXZwa3QtPnNpemU7Cit9 CisKK2NvbnN0IEZGQ29kZWMgZmZfdm1peF9kZWNvZGVyID0geworICAgIC5wLm5hbWUgICAgICAg ICAgID0gInZtaXgiLAorICAgIENPREVDX0xPTkdfTkFNRSgidk1peCBWaWRlbyIpLAorICAgIC5w LnR5cGUgICAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgIC5wLmlkICAgICAgICAg ICAgID0gQVZfQ09ERUNfSURfVk1JWCwKKyAgICAucHJpdl9kYXRhX3NpemUgICA9IHNpemVvZihW TUlYQ29udGV4dCksCisgICAgLmluaXQgICAgICAgICAgICAgPSBkZWNvZGVfaW5pdCwKKyAgICBG Rl9DT0RFQ19ERUNPREVfQ0IoZGVjb2RlX2ZyYW1lKSwKKyAgICAucC5jYXBhYmlsaXRpZXMgICA9 IEFWX0NPREVDX0NBUF9EUjEgfCBBVl9DT0RFQ19DQVBfRlJBTUVfVEhSRUFEUyB8CisgICAgICAg ICAgICAgICAgICAgICAgICBBVl9DT0RFQ19DQVBfU0xJQ0VfVEhSRUFEUywKK307CmRpZmYgLS1n aXQgYS9saWJhdmZvcm1hdC9yaWZmLmMgYi9saWJhdmZvcm1hdC9yaWZmLmMKaW5kZXggNDI3OTA3 MTE1OS4uOTc3MDhkZjZlMyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvcmlmZi5jCisrKyBiL2xp YmF2Zm9ybWF0L3JpZmYuYwpAQCAtNTAyLDYgKzUwMiw3IEBAIGNvbnN0IEFWQ29kZWNUYWcgZmZf Y29kZWNfYm1wX3RhZ3NbXSA9IHsKICAgICB7IEFWX0NPREVDX0lEX1ZRQywgICAgICAgICAgTUtU QUcoJ1YnLCAnUScsICdDJywgJzEnKSB9LAogICAgIHsgQVZfQ09ERUNfSURfVlFDLCAgICAgICAg ICBNS1RBRygnVicsICdRJywgJ0MnLCAnMicpIH0sCiAgICAgeyBBVl9DT0RFQ19JRF9SVFYxLCAg ICAgICAgIE1LVEFHKCdSJywgJ1QnLCAnVicsICcxJykgfSwKKyAgICB7IEFWX0NPREVDX0lEX1ZN SVgsICAgICAgICAgTUtUQUcoJ1YnLCAnTScsICdYJywgJzEnKSB9LAogICAgIHsgQVZfQ09ERUNf SURfTk9ORSwgICAgICAgICAwIH0KIH07CiAKLS0gCjIuMzkuMQoK --000000000000c9adc105fda1bbc3 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". --000000000000c9adc105fda1bbc3--