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 AB3DD421DA for ; Sat, 26 Feb 2022 00:54:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A732268A6E0; Sat, 26 Feb 2022 02:54:51 +0200 (EET) Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 01DA068A380 for ; Sat, 26 Feb 2022 02:54:45 +0200 (EET) Received: by mail-il1-f182.google.com with SMTP id 9so5618016ily.11 for ; Fri, 25 Feb 2022 16:54:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language :from:to:references:in-reply-to; bh=X7UBE0MKp52wbixNe19LdM0TUh0prLS0o38X3VbOL0c=; b=AwT2gvbvNefwCtaYJAE4FnFnF7pzBXz24Y5h7KfdLjW6anVi/3Gwvu7zGfagSBJk05 SRWJmATt+SOGRPJ0BsKpiN93NfmsEb24BF3Alzzy2Cjw9IFwZSYOEu6WXC8nd+QiXDHd ci/X8HLBxPiWHxGSCUX/r+IZPeXGQsyIXPcZu3oB5Z1lv33E5HA3yWWi8mhTdg2oRPKn zPZ/Z38w/R4VKNUwOXBvDA/j40JKIYkmB3QdGL/8QX62kpcA3UF4qTlNqOa5Lf5kBAHf yfphhTuplpEUJCUW4Fc9NwZ9D4qX0aiMDAlGbLy8tQTx7P+DuTXAkDPjJ0g4+BDIJUzs Yc4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:from:to:references:in-reply-to; bh=X7UBE0MKp52wbixNe19LdM0TUh0prLS0o38X3VbOL0c=; b=HAPwkKGpbpaXOQFdGZDX+pHLBxj0ukX9+gRaUM7sDTTmsfsoCsY/T7T3PvL7SQBFZS 7Yn6PKZC15mUj6lnDwg45+WLIMrSBZhFnb9JLLyF5gLiclIhqDjcLyRo/iXYyWWGMGwF RjRGEqLLiL3Vu6QBV+f8ikcSWfb8sNJS6wQQ8SIotSWGGTU3n4xLXURIhEBHAiHI0VUp MkPx3+lKhhTICHXP7dRwCPaWrg4hwmVojCfb+kS0TPzchlvijxZqZ8Vi3kUM9d02D6cq pHwSROGH1sFxwvET0wKT6vCzURsuhtR9OjpSIfAi7vsfT9EKZJiRZgCrubMpliBzHyD+ kIhA== X-Gm-Message-State: AOAM532NWQDjKB/QP/wck95jgQYshlBERAIMnngYtOEK5XuhTLse8Jwt nvcRr40bkkL5agCGvXhB8HW1Vz6YafCqPg== X-Google-Smtp-Source: ABdhPJyabmQYY291dXNZ2htFP8/VBpN6XXmifCAEhsOGExo/h9qErEZSImf8ga4UIYzjb4rOnCOJpg== X-Received: by 2002:a05:6e02:1581:b0:2c2:5aef:db32 with SMTP id m1-20020a056e02158100b002c25aefdb32mr9084020ilu.158.1645836883398; Fri, 25 Feb 2022 16:54:43 -0800 (PST) Received: from [192.168.7.86] (c-68-40-205-18.hsd1.mi.comcast.net. [68.40.205.18]) by smtp.gmail.com with ESMTPSA id r185-20020a6b2bc2000000b006449e0bf491sm654753ior.38.2022.02.25.16.54.42 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Feb 2022 16:54:42 -0800 (PST) Content-Type: multipart/mixed; boundary="------------Ro6FNTTP5FYx3HhEgc6xNYcv" Message-ID: <40de0745-2f99-207c-f683-f57f728b1b22@gmail.com> Date: Fri, 25 Feb 2022 19:54:41 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: en-US From: Jack Bruienne To: ffmpeg-devel@ffmpeg.org References: In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] libavcodec: Added DFPWM1a codec 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. --------------Ro6FNTTP5FYx3HhEgc6xNYcv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sorry, I forgot to run make fate on the split patches, and I used the wrong capabilities for the decoder. I have attached a modified patch that removes AV_CODEC_CAP_VARIABLE_FRAME_SIZE from the decoder capabilities. Let me know if you'd like a full v3 patch email instead. On 2/25/22 18:43, Jack Bruienne wrote: > > From the wiki page (https://wiki.vexatos.com/dfpwm): >> DFPWM (Dynamic Filter Pulse Width Modulation) is an audio codec >> created by Ben “GreaseMonkey” Russell in 2012, originally to be used >> as a voice codec for asiekierka's pixmess, a C remake of 64pixels. >> It is a 1-bit-per-sample codec which uses a dynamic-strength one-pole >> low-pass filter as a predictor. Due to the fact that a raw DPFWM >> decoding >> creates a high-pitched whine, it is often followed by some >> post-processing >> filters to make the stream more listenable. > > It has recently gained popularity through the ComputerCraft mod for > Minecraft, which added support for audio through this codec, as well as > the Computronics expansion which preceeded the official support. These > both implement the slightly adjusted 1a version of the codec, which is > the version I have chosen for this patch. > > This patch adds a new codec (with encoding and decoding) for DFPWM1a. > > The codec sources are pretty simple: they use the reference codec with > a basic wrapper to connect it to the FFmpeg AVCodec system. > > This patch will be highly useful to ComputerCraft developers who are > working with audio, as it is the standard format for audio, and there > are few user-friendly encoders out there. It will streamline the process > for importing audio, replacing the need to write code or use tools that > require very specific input formats. > > You may use the CraftOS-PC program (https://www.craftos-pc.cc) to test > out DFPWM playback. To use it, run the program and type this command: > "attach left speaker" Then run "speaker play " for each file. > The app runs in a sandbox, so files have to be transferred in first; > the easiest way to do this is to simply drag the file on the window. > (Or copy files to the folder at https://www.craftos-pc.cc/docs/saves.) > > Sample DFPWM files can be generated with an online tool at > https://music.madefor.cc. This is the current best way to encode DFPWM > files. Simply drag an audio file onto the page, and it will encode it, > giving a download link on the page. > > I've made sure to update all of the docs as per Developer§7, and I've > tested it as per section 8. Test files encoded to DFPWM play correctly > in ComputerCraft, and other files that work in CC are correctly decoded. > I have also verified that corrupt files do not crash the decoder - this > should theoretically not be an issue as the result size is constant with > respect to the input size. > > Signed-off-by: Jack Bruienne > --- >  Changelog                 |   1 + >  MAINTAINERS               |   1 + >  doc/general_contents.texi |   1 + >  libavcodec/Makefile       |   2 + >  libavcodec/allcodecs.c    |   2 + >  libavcodec/codec_desc.c   |   7 +++ >  libavcodec/codec_id.h     |   1 + >  libavcodec/dfpwmdec.c     | 129 ++++++++++++++++++++++++++++++++++++++ >  libavcodec/dfpwmenc.c     | 123 ++++++++++++++++++++++++++++++++++++ >  libavcodec/utils.c        |   2 + >  libavcodec/version.h      |   2 +- >  11 files changed, 270 insertions(+), 1 deletion(-) >  create mode 100644 libavcodec/dfpwmdec.c >  create mode 100644 libavcodec/dfpwmenc.c > --------------Ro6FNTTP5FYx3HhEgc6xNYcv Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-libavcodec-Added-DFPWM1a-codec.patch" Content-Disposition: attachment; filename="v2-0001-libavcodec-Added-DFPWM1a-codec.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwppbmRleCA1YWQyY2VmLi41MTcw YTZhIDEwMDY0NAotLS0gYS9DaGFuZ2Vsb2cKKysrIGIvQ2hhbmdlbG9nCkBAIC00LDYgKzQs NyBAQCByZWxlYXNlcyBhcmUgc29ydGVkIGZyb20geW91bmdlc3QgdG8gb2xkZXN0LgogdmVy c2lvbiA1LjE6CiAtIGRpYWxvZ3VlIGVuaGFuY2UgYXVkaW8gZmlsdGVyCiAtIGRyb3BwZWQg b2Jzb2xldGUgWHZNQyBod2FjY2VsCistIERGUFdNIGF1ZGlvIGVuY29kZXIvZGVjb2Rlcgog CiAKIHZlcnNpb24gNS4wOgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVS UwppbmRleCBmMzNjY2JkLi41N2I2ZjMzIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysg Yi9NQUlOVEFJTkVSUwpAQCAtMTYxLDYgKzE2MSw3IEBAIENvZGVjczoKICAgY3NjZC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWltYXIgRG9lZmZpbmdlcgogICBjdXZp ZGRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbW8gUm90aGVucGllbGVyCiAg IGRjYSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vODYKKyAgZGZwd20q ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKYWNrIEJydWllbm5lCiAgIGRpcmFj KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zdGlzbGF2IFBlaGxpdmFub3YK ICAgZG54aGQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXB0aXN0ZSBDb3Vk dXJpZXIKICAgZG9sYnlfZSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb284Ngpk aWZmIC0tZ2l0IGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2Nv bnRlbnRzLnRleGkKaW5kZXggZGYxNjkyYy4uMTRhZWFlZCAxMDA2NDQKLS0tIGEvZG9jL2dl bmVyYWxfY29udGVudHMudGV4aQorKysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCkBA IC0xMTk0LDYgKzExOTQsNyBAQCBmb2xsb3dpbmcgaW1hZ2UgZm9ybWF0cyBhcmUgc3VwcG9y dGVkOgogQGl0ZW0gQ1JJIEhDQSAgICAgICAgICAgICAgICBAdGFiICAgICBAdGFiIFgKIEBp dGVtIERlbHBoaW5lIFNvZnR3YXJlIEludGVybmF0aW9uYWwgQ0lOIGF1ZGlvICBAdGFiICAg ICBAdGFiICBYCiAgICAgQHRhYiBDb2RlYyB1c2VkIGluIERlbHBoaW5lIFNvZnR3YXJlIElu dGVybmF0aW9uYWwgZ2FtZXMuCitAaXRlbSBERlBXTSAgICAgICAgICAgICAgICAgIEB0YWIg IFggIEB0YWIgIFgKIEBpdGVtIERpZ2l0YWwgU3BlZWNoIFN0YW5kYXJkIC0gU3RhbmRhcmQg UGxheSBtb2RlIChEU1MgU1ApIEB0YWIgICAgIEB0YWIgIFgKIEBpdGVtIERpc2N3b3JsZCBJ SSBCTVYgQXVkaW8gQHRhYiAgICAgQHRhYiAgWAogQGl0ZW0gQ09PSyAgICAgICAgICAgICAg ICAgICBAdGFiICAgICBAdGFiICBYCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxl IGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCA2MDc2YjRhLi43NDc0MjIwIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKQEAg LTI4OSw2ICsyODksOCBAQCBPQkpTLSQoQ09ORklHX0RFUkZfRFBDTV9ERUNPREVSKSAgICAg ICArPSBkcGNtLm8KIE9CSlMtJChDT05GSUdfRElSQUNfREVDT0RFUikgICAgICAgICAgICs9 IGRpcmFjZGVjLm8gZGlyYWMubyBkaXJhY2RzcC5vIGRpcmFjdGFiLm8gXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyYWNfYXJpdGgubyBkaXJhY19k d3QubyBkaXJhY192bGMubwogT0JKUy0kKENPTkZJR19ERkFfREVDT0RFUikgICAgICAgICAg ICAgKz0gZGZhLm8KK09CSlMtJChDT05GSUdfREZQV01fREVDT0RFUikgICAgICAgICAgICs9 IGRmcHdtZGVjLm8KK09CSlMtJChDT05GSUdfREZQV01fRU5DT0RFUikgICAgICAgICAgICs9 IGRmcHdtZW5jLm8KIE9CSlMtJChDT05GSUdfRE5YSERfREVDT0RFUikgICAgICAgICAgICs9 IGRueGhkZGVjLm8gZG54aGRkYXRhLm8KIE9CSlMtJChDT05GSUdfRE5YSERfRU5DT0RFUikg ICAgICAgICAgICs9IGRueGhkZW5jLm8gZG54aGRkYXRhLm8KIE9CSlMtJChDT05GSUdfRE9M QllfRV9ERUNPREVSKSAgICAgICAgICs9IGRvbGJ5X2UubyBkb2xieV9lX3BhcnNlLm8ga2Jk d2luLm8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJhdmNvZGVj L2FsbGNvZGVjcy5jCmluZGV4IGQxZTEwMTkuLmMzYTBjMjYgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvYWxsY29kZWNzLmMKKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwpAQCAtNDM3 LDYgKzQzNyw4IEBAIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Jtdl9hdWRpb19kZWNvZGVy OwogZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfY29va19kZWNvZGVyOwogZXh0ZXJuIGNvbnN0 IEFWQ29kZWMgZmZfZGNhX2VuY29kZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kY2Ff ZGVjb2RlcjsKK2V4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2VuY29kZXI7CitleHRl cm4gY29uc3QgQVZDb2RlYyBmZl9kZnB3bV9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEFWQ29k ZWMgZmZfZG9sYnlfZV9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZHNkX2xz YmZfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RzZF9tc2JmX2RlY29kZXI7 CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyBiL2xpYmF2Y29kZWMvY29k ZWNfZGVzYy5jCmluZGV4IDcyNWM2ODcuLjgxZjNiM2MgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvY29kZWNfZGVzYy5jCisrKyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCkBAIC0zMjM3 LDYgKzMyMzcsMTMgQEAgc3RhdGljIGNvbnN0IEFWQ29kZWNEZXNjcmlwdG9yIGNvZGVjX2Rl c2NyaXB0b3JzW10gPSB7CiAgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJR19T TUFMTCgiTVNOIFNpcmVuIiksCiAgICAgICAgIC5wcm9wcyAgICAgPSBBVl9DT0RFQ19QUk9Q X0lOVFJBX09OTFkgfCBBVl9DT0RFQ19QUk9QX0xPU1NZLAogICAgIH0sCisgICAgeworICAg ICAgICAuaWQgICAgICAgID0gQVZfQ09ERUNfSURfREZQV00sCisgICAgICAgIC50eXBlICAg ICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCisgICAgICAgIC5uYW1lICAgICAgPSAiZGZwd20i LAorICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkRGUFdNIChE eW5hbWljIEZpbHRlciBQdWxzZSBXaWR0aCBNb2R1bGF0aW9uKSIpLAorICAgICAgICAucHJv cHMgICAgID0gQVZfQ09ERUNfUFJPUF9MT1NTWSwKKyAgICB9LAogCiAgICAgLyogc3VidGl0 bGUgY29kZWNzICovCiAgICAgewpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jb2RlY19pZC5o IGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCmluZGV4IGFiMjY1ZWMuLjNmZmI5YmQgMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaAorKysgYi9saWJhdmNvZGVjL2NvZGVjX2lk LmgKQEAgLTUxNiw2ICs1MTYsNyBAQCBlbnVtIEFWQ29kZWNJRCB7CiAgICAgQVZfQ09ERUNf SURfSENBLAogICAgIEFWX0NPREVDX0lEX0ZBU1RBVURJTywKICAgICBBVl9DT0RFQ19JRF9N U05TSVJFTiwKKyAgICBBVl9DT0RFQ19JRF9ERlBXTSwKIAogICAgIC8qIHN1YnRpdGxlIGNv ZGVjcyAqLwogICAgIEFWX0NPREVDX0lEX0ZJUlNUX1NVQlRJVExFID0gMHgxNzAwMCwgICAg ICAgICAgLy8vPCBBIGR1bW15IElEIHBvaW50aW5nIGF0IHRoZSBzdGFydCBvZiBzdWJ0aXRs ZSBjb2RlY3MuCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2RmcHdtZGVjLmMgYi9saWJhdmNv ZGVjL2RmcHdtZGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE1 NzE0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Y29kZWMvZGZwd21kZWMuYwpAQCAtMCww ICsxLDEyOSBAQAorLyoKKyAqIERGUFdNIGRlY29kZXIKKyAqIENvcHlyaWdodCAoYykgMjAy MiBKYWNrIEJydWllbm5lCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTYgQmVuICJHcmVh c2VNb25rZXkiIFJ1c3NlbGwKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcu CisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg KiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl IFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworLyoqCisgKiBA ZmlsZQorICogREZQV00xYSBkZWNvZGVyCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9p bnRlcm5hbC5oIgorI2luY2x1ZGUgImF2Y29kZWMuaCIKKyNpbmNsdWRlICJjb2RlY19pZC5o IgorI2luY2x1ZGUgImludGVybmFsLmgiCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbnQg ZnEsIHEsIHMsIGx0OworfSBERlBXTVN0YXRlOworCisvLyBERlBXTSBjb2RlYyBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhyZWFkL2RmcHdtL2Jsb2IvbWFzdGVyLzFhLworLy8g TGljZW5zZWQgaW4gdGhlIHB1YmxpYyBkb21haW4KKworI2lmbmRlZiBDT05TVF9QUkVDCisj ZGVmaW5lIENPTlNUX1BSRUMgMTAKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBhdV9kZWNvbXBy ZXNzKERGUFdNU3RhdGUgKnN0YXRlLCBpbnQgZnMsIGludCBsZW4sIHVpbnQ4X3QgKm91dGJ1 ZiwgdWludDhfdCAqaW5idWYpCit7CisgICAgaW50IGksIGo7CisgICAgdWludDhfdCBkOwor ICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAvLyBnZXQgYml0cwor ICAgICAgICBkID0gKihpbmJ1ZisrKTsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDg7IGor KykgeworICAgICAgICAgICAgaW50IG5xLCBscSwgc3QsIG5zLCBvdjsKKyAgICAgICAgICAg IC8vIHNldCB0YXJnZXQKKyAgICAgICAgICAgIGludCB0ID0gKChkJjEpID8gMTI3IDogLTEy OCk7CisgICAgICAgICAgICBkID4+PSAxOworCisgICAgICAgICAgICAvLyBhZGp1c3QgY2hh cmdlCisgICAgICAgICAgICBucSA9IHN0YXRlLT5xICsgKChzdGF0ZS0+cyAqICh0LXN0YXRl LT5xKSArICgxPDwoQ09OU1RfUFJFQy0xKSkpPj5DT05TVF9QUkVDKTsKKyAgICAgICAgICAg IGlmKG5xID09IHN0YXRlLT5xICYmIG5xICE9IHQpCisgICAgICAgICAgICAgICAgc3RhdGUt PnEgKz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKKyAgICAgICAgICAgIGxxID0gc3RhdGUtPnE7 CisgICAgICAgICAgICBzdGF0ZS0+cSA9IG5xOworCisgICAgICAgICAgICAvLyBhZGp1c3Qg c3RyZW5ndGgKKyAgICAgICAgICAgIHN0ID0gKHQgIT0gc3RhdGUtPmx0ID8gMCA6ICgxPDxD T05TVF9QUkVDKS0xKTsKKyAgICAgICAgICAgIG5zID0gc3RhdGUtPnM7CisgICAgICAgICAg ICBpZihucyAhPSBzdCkKKyAgICAgICAgICAgICAgICBucyArPSAoc3QgIT0gMCA/IDEgOiAt MSk7CisjaWYgQ09OU1RfUFJFQyA+IDgKKyAgICAgICAgICAgIGlmKG5zIDwgMSsoMTw8KENP TlNUX1BSRUMtOCkpKSBucyA9IDErKDE8PChDT05TVF9QUkVDLTgpKTsKKyNlbmRpZgorICAg ICAgICAgICAgc3RhdGUtPnMgPSBuczsKKworICAgICAgICAgICAgLy8gRklMVEVSOiBwZXJm b3JtIGFudGlqZXJrCisgICAgICAgICAgICBvdiA9ICh0ICE9IHN0YXRlLT5sdCA/IChucSts cSk+PjEgOiBucSk7CisKKyAgICAgICAgICAgIC8vIEZJTFRFUjogcGVyZm9ybSBMUEYKKyAg ICAgICAgICAgIHN0YXRlLT5mcSArPSAoKGZzKihvdi1zdGF0ZS0+ZnEpICsgMHg4MCk+Pjgp OworICAgICAgICAgICAgb3YgPSBzdGF0ZS0+ZnE7CisKKyAgICAgICAgICAgIC8vIG91dHB1 dCBzYW1wbGUKKyAgICAgICAgICAgICoob3V0YnVmKyspID0gb3YgKyAxMjg7CisKKyAgICAg ICAgICAgIHN0YXRlLT5sdCA9IHQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBh dl9jb2xkIGludCBkZnB3bV9kZWNfaW5pdChzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0eCkK K3sKKyAgICBERlBXTVN0YXRlICpzdGF0ZSA9IGN0eC0+cHJpdl9kYXRhOworCisgICAgc3Rh dGUtPmZxID0gMDsKKyAgICBzdGF0ZS0+cSA9IDA7CisgICAgc3RhdGUtPnMgPSAwOworICAg IHN0YXRlLT5sdCA9IC0xMjg7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBk ZnB3bV9kZWNfZnJhbWUoc3RydWN0IEFWQ29kZWNDb250ZXh0ICpjdHgsIHZvaWQgKmRhdGEs CisgICAgaW50ICpnb3RfZnJhbWUsIHN0cnVjdCBBVlBhY2tldCAqcGFja2V0KQoreworICAg IERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7CisgICAgQVZGcmFtZSAqZnJh bWUgPSBkYXRhOworCisgICAgZnJhbWUtPmZvcm1hdCA9IEFWX1NBTVBMRV9GTVRfVTg7Cisg ICAgZnJhbWUtPm5iX3NhbXBsZXMgPSBwYWNrZXQtPnNpemUgKiA4OworICAgIGZyYW1lLT5j aGFubmVsX2xheW91dCA9IEFWX0NIX0xBWU9VVF9NT05POworCisgICAgZmZfZ2V0X2J1ZmZl cihjdHgsIGZyYW1lLCAwKTsKKworICAgIGF1X2RlY29tcHJlc3Moc3RhdGUsIDEwMCwgcGFj a2V0LT5zaXplLCBmcmFtZS0+ZGF0YVswXSwgcGFja2V0LT5kYXRhKTsKKworICAgIGlmIChn b3RfZnJhbWUpICpnb3RfZnJhbWUgPSAxOworICAgIHJldHVybiBwYWNrZXQtPnNpemU7Cit9 CisKK2NvbnN0IEFWQ29kZWMgZmZfZGZwd21fZGVjb2RlciA9IHsKKyAgICAubmFtZSAgICAg ICAgICAgPSAiZGZwd20iLAorICAgIC5sb25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklH X1NNQUxMKCJERlBXTTFhIGF1ZGlvIiksCisgICAgLnR5cGUgICAgICAgICAgID0gQVZNRURJ QV9UWVBFX0FVRElPLAorICAgIC5pZCAgICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RGUFdN LAorICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihERlBXTVN0YXRlKSwKKyAgICAuaW5p dCAgICAgICAgICAgPSBkZnB3bV9kZWNfaW5pdCwKKyAgICAuZGVjb2RlICAgICAgICAgPSBk ZnB3bV9kZWNfZnJhbWUsCisgICAgLmNhcGFiaWxpdGllcyAgID0gQVZfQ09ERUNfQ0FQX0RS MSwKKyAgICAuY2Fwc19pbnRlcm5hbCAgPSBGRl9DT0RFQ19DQVBfSU5JVF9USFJFQURTQUZF LAorfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2RmcHdtZW5jLmMgYi9saWJhdmNvZGVjL2RmcHdtZW5jLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNWZjYzBjMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2 Y29kZWMvZGZwd21lbmMuYwpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIERGUFdNIGVuY29k ZXIKKyAqIENvcHlyaWdodCAoYykgMjAyMiBKYWNrIEJydWllbm5lCisgKiBDb3B5cmlnaHQg KGMpIDIwMTIsIDIwMTYgQmVuICJHcmVhc2VNb25rZXkiIFJ1c3NlbGwKKyAqCisgKiBUaGlz IGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEgVVNBCisgKi8KKworLyoqCisgKiBAZmlsZQorICogREZQV00xYSBlbmNvZGVyCisgKi8K KworI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImF2Y29kZWMu aCIKKyNpbmNsdWRlICJjb2RlY19pZC5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisKK3R5 cGVkZWYgc3RydWN0IHsKKyAgICBpbnQgZnEsIHEsIHMsIGx0OworfSBERlBXTVN0YXRlOwor CisvLyBERlBXTSBjb2RlYyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhyZWFkL2Rm cHdtL2Jsb2IvbWFzdGVyLzFhLworLy8gTGljZW5zZWQgaW4gdGhlIHB1YmxpYyBkb21haW4K KworI2lmbmRlZiBDT05TVF9QUkVDCisjZGVmaW5lIENPTlNUX1BSRUMgMTAKKyNlbmRpZgor CisvLyBub3RlLCBsZW4gZGVub3RlcyBob3cgbWFueSBjb21wcmVzc2VkIGJ5dGVzIHRoZXJl IGFyZSAodW5jb21wcmVzc2VkIGJ5dGVzIC8gOCkuCitzdGF0aWMgdm9pZCBhdV9jb21wcmVz cyhERlBXTVN0YXRlICpzdGF0ZSwgaW50IGxlbiwgdWludDhfdCAqb3V0YnVmLCB1aW50OF90 ICppbmJ1ZikKK3sKKyAgICBpbnQgaSwgajsKKyAgICB1aW50OF90IGQgPSAwOworICAgIGZv ciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICBmb3IgKGogPSAwOyBqIDwgODsg aisrKSB7CisgICAgICAgICAgICBpbnQgbnEsIHN0LCBuczsKKyAgICAgICAgICAgIC8vIGdl dCBzYW1wbGUKKyAgICAgICAgICAgIGludCB2ID0gKihpbmJ1ZisrKSAtIDEyODsKKyAgICAg ICAgICAgIC8vIHNldCBiaXQgLyB0YXJnZXQKKyAgICAgICAgICAgIGludCB0ID0gKHYgPCBz dGF0ZS0+cSB8fCB2ID09IC0xMjggPyAtMTI4IDogMTI3KTsKKyAgICAgICAgICAgIGQgPj49 IDE7CisgICAgICAgICAgICBpZih0ID4gMCkKKyAgICAgICAgICAgICAgICBkIHw9IDB4ODA7 CisKKyAgICAgICAgICAgIC8vIGFkanVzdCBjaGFyZ2UKKyAgICAgICAgICAgIG5xID0gc3Rh dGUtPnEgKyAoKHN0YXRlLT5zICogKHQtc3RhdGUtPnEpICsgKDE8PChDT05TVF9QUkVDLTEp KSk+PkNPTlNUX1BSRUMpOworICAgICAgICAgICAgaWYobnEgPT0gc3RhdGUtPnEgJiYgbnEg IT0gdCkKKyAgICAgICAgICAgICAgICBucSArPSAodCA9PSAxMjcgPyAxIDogLTEpOworICAg ICAgICAgICAgc3RhdGUtPnEgPSBucTsKKworICAgICAgICAgICAgLy8gYWRqdXN0IHN0cmVu Z3RoCisgICAgICAgICAgICBzdCA9ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAoMTw8Q09OU1Rf UFJFQyktMSk7CisgICAgICAgICAgICBucyA9IHN0YXRlLT5zOworICAgICAgICAgICAgaWYo bnMgIT0gc3QpCisgICAgICAgICAgICAgICAgbnMgKz0gKHN0ICE9IDAgPyAxIDogLTEpOwor I2lmIENPTlNUX1BSRUMgPiA4CisgICAgICAgICAgICBpZihucyA8IDErKDE8PChDT05TVF9Q UkVDLTgpKSkgbnMgPSAxKygxPDwoQ09OU1RfUFJFQy04KSk7CisjZW5kaWYKKyAgICAgICAg ICAgIHN0YXRlLT5zID0gbnM7CisKKyAgICAgICAgICAgIHN0YXRlLT5sdCA9IHQ7CisgICAg ICAgIH0KKworICAgICAgICAvLyBvdXRwdXQgYml0cworICAgICAgICAqKG91dGJ1ZisrKSA9 IGQ7CisgICAgfQorfQorCitzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2luaXQoc3Ry dWN0IEFWQ29kZWNDb250ZXh0ICpjdHgpCit7CisgICAgREZQV01TdGF0ZSAqc3RhdGUgPSBj dHgtPnByaXZfZGF0YTsKKworICAgIHN0YXRlLT5mcSA9IDA7CisgICAgc3RhdGUtPnEgPSAw OworICAgIHN0YXRlLT5zID0gMDsKKyAgICBzdGF0ZS0+bHQgPSAtMTI4OworCisgICAgcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGZwd21fZW5jX2ZyYW1lKHN0cnVjdCBBVkNvZGVj Q29udGV4dCAqY3R4LCBzdHJ1Y3QgQVZQYWNrZXQgKnBhY2tldCwKKyAgICBjb25zdCBzdHJ1 Y3QgQVZGcmFtZSAqZnJhbWUsIGludCAqZ290X3BhY2tldCkKK3sKKyAgICBERlBXTVN0YXRl ICpzdGF0ZSA9IGN0eC0+cHJpdl9kYXRhOworICAgIGludCBzaXplID0gZnJhbWUtPm5iX3Nh bXBsZXMgLyA4ICsgKGZyYW1lLT5uYl9zYW1wbGVzICUgOCA+IDAgPyAxIDogMCk7CisKKyAg ICBpZiAocGFja2V0LT5zaXplIDwgc2l6ZSkgYXZfZ3Jvd19wYWNrZXQocGFja2V0LCBzaXpl IC0gcGFja2V0LT5zaXplKTsKKyAgICBlbHNlIGlmIChwYWNrZXQtPnNpemUgPiBzaXplKSBh dl9zaHJpbmtfcGFja2V0KHBhY2tldCwgc2l6ZSk7CisKKyAgICBhdV9jb21wcmVzcyhzdGF0 ZSwgc2l6ZSwgcGFja2V0LT5kYXRhLCBmcmFtZS0+ZGF0YVswXSk7CisKKyAgICBpZiAoZ290 X3BhY2tldCkgKmdvdF9wYWNrZXQgPSAxOworICAgIHJldHVybiAwOworfQorCitjb25zdCBB VkNvZGVjIGZmX2RmcHdtX2VuY29kZXIgPSB7CisgICAgLm5hbWUgICAgICAgICAgICA9ICJk ZnB3bSIsCisgICAgLmxvbmdfbmFtZSAgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJE RlBXTTFhIGF1ZGlvIiksCisgICAgLnR5cGUgICAgICAgICAgICA9IEFWTUVESUFfVFlQRV9B VURJTywKKyAgICAuaWQgICAgICAgICAgICAgID0gQVZfQ09ERUNfSURfREZQV00sCisgICAg LnByaXZfZGF0YV9zaXplICA9IHNpemVvZihERlBXTVN0YXRlKSwKKyAgICAuaW5pdCAgICAg ICAgICAgID0gZGZwd21fZW5jX2luaXQsCisgICAgLmVuY29kZTIgICAgICAgICA9IGRmcHdt X2VuY19mcmFtZSwKKyAgICAuc2FtcGxlX2ZtdHMgICAgID0gKGNvbnN0IGVudW0gQVZTYW1w bGVGb3JtYXRbXSl7QVZfU0FNUExFX0ZNVF9VOCwgQVZfU0FNUExFX0ZNVF9OT05FfSwKKyAg ICAuY2hhbm5lbF9sYXlvdXRzID0gKGNvbnN0IHVpbnQ2NF90W10pe0FWX0NIX0xBWU9VVF9N T05PLCAwfSwKKyAgICAuY2FwYWJpbGl0aWVzICAgID0gQVZfQ09ERUNfQ0FQX1ZBUklBQkxF X0ZSQU1FX1NJWkUsCisgICAgLmNhcHNfaW50ZXJuYWwgICA9IEZGX0NPREVDX0NBUF9JTklU X1RIUkVBRFNBRkUsCit9OwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy91dGlscy5jIGIvbGli YXZjb2RlYy91dGlscy5jCmluZGV4IDZmOWQ5MGEuLjA2NmRhNzYgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvdXRpbHMuYworKysgYi9saWJhdmNvZGVjL3V0aWxzLmMKQEAgLTU3Nyw2ICs1 NzcsOCBAQCBlbnVtIEFWQ29kZWNJRCBhdl9nZXRfcGNtX2NvZGVjKGVudW0gQVZTYW1wbGVG b3JtYXQgZm10LCBpbnQgYmUpCiBpbnQgYXZfZ2V0X2JpdHNfcGVyX3NhbXBsZShlbnVtIEFW Q29kZWNJRCBjb2RlY19pZCkKIHsKICAgICBzd2l0Y2ggKGNvZGVjX2lkKSB7CisgICAgY2Fz ZSBBVl9DT0RFQ19JRF9ERlBXTToKKyAgICAgICAgcmV0dXJuIDE7CiAgICAgY2FzZSBBVl9D T0RFQ19JRF9BRFBDTV9TQlBST18yOgogICAgICAgICByZXR1cm4gMjsKICAgICBjYXNlIEFW X0NPREVDX0lEX0FEUENNX1NCUFJPXzM6CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZlcnNp b24uaCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCmluZGV4IGQ5MDA1MDMuLjg0ZjM5NzkgMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdmVyc2lvbi5oCisrKyBiL2xpYmF2Y29kZWMvdmVyc2lv bi5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL3ZlcnNpb24uaCIK IAogI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgIDU5Ci0jZGVmaW5lIExJQkFW Q09ERUNfVkVSU0lPTl9NSU5PUiAgMjEKKyNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01J Tk9SICAyMgogI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNkZWZp bmUgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCAgQVZfVkVSU0lPTl9JTlQoTElCQVZDT0RFQ19W RVJTSU9OX01BSk9SLCBcCg== --------------Ro6FNTTP5FYx3HhEgc6xNYcv 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". --------------Ro6FNTTP5FYx3HhEgc6xNYcv--