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 34992438AF for ; Tue, 2 Aug 2022 16:48:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C24AE68B9FF; Tue, 2 Aug 2022 19:48:22 +0300 (EEST) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3AAA668B85A for ; Tue, 2 Aug 2022 19:48:16 +0300 (EEST) Received: from postfix02.mail.de (postfix02.bt.mail.de [10.0.121.126]) by shout02.mail.de (Postfix) with ESMTP id 892CEA0CF4 for ; Tue, 2 Aug 2022 18:48:15 +0200 (CEST) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix02.mail.de (Postfix) with ESMTP id 708CEA03C2 for ; Tue, 2 Aug 2022 18:48:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1659458895; bh=pBlO6nDpUqe/02ZV318+L68wdqGtlsX3M0Qv0NhiOzU=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=oaUmyl5zBDk+fx/49QqRTHI3aF3So6FqgIvHWa+qZsWCnReK/Jsbuf+wc5Zpbub+y Yg0YjzGwpjDfvdMVLOP3qBpCjthSEpMTi6LM1CbhhgoVxs8YoQ2rY0rfcNe/+sZy19 kqrtMui3KVMjvCH2TntsWpRNDTd6w84rhJzQqq4oUW4CzYvXR2z7Z4oP84YkWRdvIF vF6GMVCCvpArI2q2CN00soG4xWiTMumYD74Ko9ekbJW9WAZC4wko3s2kDr4f2ARoJx wECfS42cVBqVw7TGOpqgZSnJ8lzikbx+s1E5QnqYfA/xZp2f+6AXpVimjIhJ+H1+6D n1KRlkx5N/lbg== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id 37A74A0668 for ; Tue, 2 Aug 2022 18:48:14 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------1tEgMQZ6tEjk6tYJPsNlC9Cw" Message-ID: Date: Tue, 2 Aug 2022 18:48:13 +0200 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220518180454.53301-1-jeebjp@gmail.com> <41dcff20-36db-c4e7-5d7f-36c4dc911a2c@gyani.pro> <64c6b7ce-671a-1a03-45e1-cad08a8cf04c@mail.de> <64edef9e-5052-d335-5dc3-97aa9e23f989@gyani.pro> From: Thilo Borgmann In-Reply-To: <64edef9e-5052-d335-5dc3-97aa9e23f989@gyani.pro> X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 22812 X-purgate-ID: 154282::1659458895-0000061A-0E0480D3/0/0 Subject: Re: [FFmpeg-devel] [PATCH 1/2] ffmpeg: add display_{rotation, hflip, vflip} options 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. --------------1tEgMQZ6tEjk6tYJPsNlC9Cw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, >>>>> On 2022-05-18 11:34 pm, Jan Ekström wrote: >>>>>> This enables overriding the rotation as well as horizontal/vertical >>>>>> flip state of a specific video stream on either the input or output >>>>>> side. >>>>> >>>>> Since rotation, flip and scale are stored in a single data structure, >>>>> how about a single option i.e. -display "rotate=90,flip=hv,scale=2" >>>> >>>> >>>> I did think about that, and I even implemented AVDict based options for ffmpeg.c in a branch. But then pretty much got tired of lack of AVOption automation (f.ex. for the flip flagging etc), and decided that since these are relatively basic and simple, the non-generic option for this could be just three options in the initial submission. >>> >>> In the end I did implement this with a single dict-based thing in a >>> branch but never got to posting it to this thread: >>> https://github.com/jeeb/ffmpeg/commits/ffmpeg_c_display_matrix_with_dicts >>> >>> So for the positive: Now it's all in a single option so it's clear >>> that it's defining a single structure. >>> And the negative: Needs a struct definition, struct, AVOption list, >>> AVClass and actually if you already made a dict out of the options >>> before, as the functions will free the original after usage and >>> generate a new one, it destroys the life time expectations of the dict >>> and thus it is just simpler to copy the dict when entering the >>> function (I think there is an arguments string based API which might >>> or might not actually be simpler for this case). >>> >>> So yea, not sure if I prefer this version. >> >> Ping. >> >> Did this stall for a reason? How can we iterate on it? > > Since the rotation/flip/scale hints are stored in a single data structure, I prefer a single user option to set those values. attached patch allows for printing the arguments of the new -display_rotation (or any) option. I wrote this in jeeb's github branch [1] where it applies on-top. Didn't test with FFmpeg/HEAD as this still needs cleanup anyways. Never touched this whole options thing before, I guess there's lot to complain about... -Thilo [1] https://github.com/jeeb/ffmpeg/commits/ffmpeg_c_display_matrix_with_dicts --------------1tEgMQZ6tEjk6tYJPsNlC9Cw Content-Type: text/plain; charset=UTF-8; name="0001-ffmpeg-Allow-printing-of-option-arguments-in-help-ou.patch" Content-Disposition: attachment; filename*0="0001-ffmpeg-Allow-printing-of-option-arguments-in-help-ou.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZmFlNTlkZTM4YzkzYTRjZGQwNzk1MzVjYzM2MzFmOWNjYWRjZWQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogVHVlLCAyIEF1ZyAyMDIyIDE4OjM5OjE4ICswMjAwClN1YmplY3Q6 IFtQQVRDSF0gZmZtcGVnOiBBbGxvdyBwcmludGluZyBvZiBvcHRpb24gYXJndW1lbnRzIGlu IGhlbHAgb3V0cHV0CgotLS0KIGZmdG9vbHMvY21kdXRpbHMuYyAgIHwgICA1ICsrCiBmZnRv b2xzL2NtZHV0aWxzLmggICB8ICAgMSArCiBmZnRvb2xzL2ZmbXBlZ19vcHQuYyB8ICA1NiAr KysrKystLS0tLS0KIGxpYmF2dXRpbC9vcHQuYyAgICAgIHwgMjA1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2dXRpbC9vcHQuaCAgICAgIHwg ICA3ICsrCiA1IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9mZnRvb2xzL2NtZHV0aWxzLmMgYi9mZnRvb2xzL2NtZHV0 aWxzLmMKaW5kZXggOWM0NzVhY2Y3Zi4uNzMzNjJlNWFmMiAxMDA2NDQKLS0tIGEvZmZ0b29s cy9jbWR1dGlscy5jCisrKyBiL2ZmdG9vbHMvY21kdXRpbHMuYwpAQCAtMTY5LDYgKzE2OSwx MSBAQCB2b2lkIHNob3dfaGVscF9vcHRpb25zKGNvbnN0IE9wdGlvbkRlZiAqb3B0aW9ucywg Y29uc3QgY2hhciAqbXNnLCBpbnQgcmVxX2ZsYWdzLAogICAgICAgICAgICAgYXZfc3RybGNh dChidWYsIHBvLT5hcmduYW1lLCBzaXplb2YoYnVmKSk7CiAgICAgICAgIH0KICAgICAgICAg cHJpbnRmKCItJS0xN3MgICVzXG4iLCBidWYsIHBvLT5oZWxwKTsKKworICAgICAgICBpZiAo cG8tPmFyZ3MpIHsKKyAgICAgICAgICAgIGNvbnN0IEFWQ2xhc3MgKnAgPSBwby0+YXJnczsK KyAgICAgICAgICAgIGF2X2FyZ19zaG93KCZwLCBOVUxMKTsKKyAgICAgICAgfQogICAgIH0K ICAgICBwcmludGYoIlxuIik7CiB9CmRpZmYgLS1naXQgYS9mZnRvb2xzL2NtZHV0aWxzLmgg Yi9mZnRvb2xzL2NtZHV0aWxzLmgKaW5kZXggNmE1MTljNjU0Ni4uZGY5MGNjNjk1OCAxMDA2 NDQKLS0tIGEvZmZ0b29scy9jbWR1dGlscy5oCisrKyBiL2ZmdG9vbHMvY21kdXRpbHMuaApA QCAtMTY2LDYgKzE2Niw3IEBAIHR5cGVkZWYgc3RydWN0IE9wdGlvbkRlZiB7CiAgICAgfSB1 OwogICAgIGNvbnN0IGNoYXIgKmhlbHA7CiAgICAgY29uc3QgY2hhciAqYXJnbmFtZTsKKyAg ICBjb25zdCBBVkNsYXNzICphcmdzOwogfSBPcHRpb25EZWY7CiAKIC8qKgpkaWZmIC0tZ2l0 IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwppbmRleCA4 ZGZmZTdjMjI1Li5kOGRiMGYwNjgxIDEwMDY0NAotLS0gYS9mZnRvb2xzL2ZmbXBlZ19vcHQu YworKysgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwpAQCAtMTE0LDYgKzExNCwzMiBAQCBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfdGltZV9iYXNlc1tdICAgICAgICAgICAg ICAgID0geyJ0aW1lX2Jhc2UiLCBOVQogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9u YW1lX2VuY190aW1lX2Jhc2VzW10gICAgICAgICAgICA9IHsiZW5jX3RpbWVfYmFzZSIsIE5V TEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2JpdHNfcGVyX3Jhd19z YW1wbGVbXSAgICAgICA9IHsiYml0c19wZXJfcmF3X3NhbXBsZSIsIE5VTEx9OwogCisvLyBY WFggdGhpcyBzaG91bGQgcHJvYmFibHkgZ28gaW50byBhIHNlcGVyYXRlIGZpbGUgPG5hbWU+ X2FyZ3MuYyBhbmQgI2luY2x1ZGVkIGhlcmUKKyAgICBzdHJ1Y3QgZGlzcGxheV9tYXRyaXhf cyB7CisgICAgICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNzOworICAgICAgICBkb3VibGUgIHJv dGF0aW9uOworICAgICAgICBpbnQgICAgIGhmbGlwOworICAgICAgICBpbnQgICAgIHZmbGlw OworICAgIH07CisjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihzdHJ1Y3QgZGlzcGxheV9t YXRyaXhfcywgeCkKKyAgICBzdGF0aWMgY29uc3QgQVZPcHRpb24gZGlzcGxheV9tYXRyaXhf YXJnc1tdID0geworICAgICAgICB7ICJyb3RhdGlvbiIsICJzZXQgcm90YXRpb24iLCBPRkZT RVQocm90YXRpb24pLCBBVl9PUFRfVFlQRV9ET1VCTEUsCisgICAgICAgICAgICB7IC5kYmwg PSBEQkxfTUFYIH0sIC0oREJMX01BWCksIERCTF9NQVggLSAxLjBmLCBBVl9PUFRfRkxBR19F WFBPUlR9LAorICAgICAgICB7ICJoZmxpcCIsICAgICJzZXQgaGZsaXAiLCBPRkZTRVQoaGZs aXApLCAgICBBVl9PUFRfVFlQRV9CT09MLAorICAgICAgICAgICAgeyAuaTY0ID0gLTEgfSwg MCwgMSwgQVZfT1BUX0ZMQUdfRVhQT1JUfSwKKyAgICAgICAgeyAidmZsaXAiLCAgICAic2V0 IHZmbGlwIiwgT0ZGU0VUKHZmbGlwKSwgICAgQVZfT1BUX1RZUEVfQk9PTCwKKyAgICAgICAg ICAgIHsgLmk2NCA9IC0xIH0sIDAsIDEsIEFWX09QVF9GTEFHX0VYUE9SVH0sCisgICAgICAg IHsgTlVMTCB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0IEFWQ2xhc3MgY2xhc3NfZGlz cGxheV9tYXRyaXhfYXJncyA9IHsKKyAgICAgICAgLmNsYXNzX25hbWUgPSAiZGlzcGxheV9t YXRyaXhfYXJncyIsCisgICAgICAgIC5pdGVtX25hbWUgID0gYXZfZGVmYXVsdF9pdGVtX25h bWUsCisgICAgICAgIC5vcHRpb24gICAgID0gZGlzcGxheV9tYXRyaXhfYXJncywKKyAgICAg ICAgLnZlcnNpb24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCisgICAgfTsKKyN1bmRl ZiBPRkZTRVQKKy8vIFhYWAorCiAjZGVmaW5lIFdBUk5fTVVMVElQTEVfT1BUX1VTQUdFKG5h bWUsIHR5cGUsIHNvLCBzdClcCiB7XAogICAgIGNoYXIgbmFtZXN0clsxMjhdID0gIiI7XApA QCAtNzU1LDM5ICs3ODEsMTUgQEAgc3RhdGljIGludCBvcHRfcmVjb3JkaW5nX3RpbWVzdGFt cCh2b2lkICpvcHRjdHgsIGNvbnN0IGNoYXIgKm9wdCwgY29uc3QgY2hhciAqYXIKIHN0YXRp YyB2b2lkIGFkZF9kaXNwbGF5X21hdHJpeF90b19zdHJlYW0oT3B0aW9uc0NvbnRleHQgKm8s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWRm9ybWF0Q29u dGV4dCAqY3R4LCBBVlN0cmVhbSAqc3QpCiB7Ci0gICAgc3RydWN0IERpc3BsYXlNYXRyaXhP cHRzIHsKLSAgICAgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7Ci0gICAgICAgIGRvdWJsZSAg cm90YXRpb247Ci0gICAgICAgIGludCAgICAgaGZsaXA7Ci0gICAgICAgIGludCAgICAgdmZs aXA7Ci0gICAgfTsKICAgICBpbnQgaGZsaXBfc2V0ID0gMCwgdmZsaXBfc2V0ID0gMCwgZGlz cGxheV9yb3RhdGlvbl9zZXQgPSAwOwogICAgIHVpbnQ4X3QgKmJ1ZiA9IE5VTEw7CiAKLSNk ZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9mKHN0cnVjdCBEaXNwbGF5TWF0cml4T3B0cywgeCkK LSAgICBzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0c1tdID0gewotICAgICAgICB7ICJyb3Rh dGlvbiIsIE5VTEwsIE9GRlNFVChyb3RhdGlvbiksIEFWX09QVF9UWVBFX0RPVUJMRSwKLSAg ICAgICAgICAgIHsgLmRibCA9IERCTF9NQVggfSwgLShEQkxfTUFYKSwgREJMX01BWCAtIDEu MGZ9LAotICAgICAgICB7ICJoZmxpcCIsICAgIE5VTEwsIE9GRlNFVChoZmxpcCksICAgIEFW X09QVF9UWVBFX0JPT0wsCi0gICAgICAgICAgICB7IC5pNjQgPSAtMSB9LCAwLCAxfSwKLSAg ICAgICAgeyAidmZsaXAiLCAgICBOVUxMLCBPRkZTRVQodmZsaXApLCAgICBBVl9PUFRfVFlQ RV9CT09MLAotICAgICAgICAgICAgeyAuaTY0ID0gLTEgfSwgMCwgMX0sCi0gICAgICAgIHsg TlVMTCB9LAotICAgIH07Ci0gICAgc3RhdGljIGNvbnN0IEFWQ2xhc3MgY2xhc3MgPSB7Ci0g ICAgICAgIC5jbGFzc19uYW1lID0gImZmbXBlZyIsCi0gICAgICAgIC5pdGVtX25hbWUgID0g YXZfZGVmYXVsdF9pdGVtX25hbWUsCi0gICAgICAgIC5vcHRpb24gICAgID0gb3B0cywKLSAg ICAgICAgLnZlcnNpb24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCi0gICAgfTsKLSAg ICBjb25zdCBBVkNsYXNzICpwY2xhc3MgPSAmY2xhc3M7Ci0gICAgc3RhdGljIHN0cnVjdCBE aXNwbGF5TWF0cml4T3B0cyB0ZXN0X2FyZ3MgPSB7Ci0gICAgICAgIC5jbGFzcyAgICA9ICZj bGFzcywKKyAgICBzdGF0aWMgc3RydWN0IGRpc3BsYXlfbWF0cml4X3MgdGVzdF9hcmdzID0g eworICAgICAgICAuY2xhc3MgICAgPSAmY2xhc3NfZGlzcGxheV9tYXRyaXhfYXJncywKICAg ICAgICAgLnJvdGF0aW9uID0gREJMX01BWCwKICAgICAgICAgLmhmbGlwICAgID0gLTEsCiAg ICAgICAgIC52ZmxpcCAgICA9IC0xLAogICAgIH07Ci0jdW5kZWYgT0ZGU0VUCiAKICAgICBB VkRpY3Rpb25hcnkgKmdsb2JhbF9hcmdzID0gTlVMTDsKICAgICBBVkRpY3Rpb25hcnkgKmxv Y2FsX2FyZ3MgID0gTlVMTDsKQEAgLTM4NTQsNyArMzg1Niw3IEBAIGNvbnN0IE9wdGlvbkRl ZiBvcHRpb25zW10gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBPUFRfT1VUUFVULCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC5vZmYgPSBP RkZTRVQoZGlzcGxheV9tYXRyaXhlcykgfSwKICAgICAgICAgImRlZmluZSBhIGRpc3BsYXkg bWF0cml4IHdpdGggcm90YXRpb24gYW5kL29yIGhvcml6b250YWwvdmVydGljYWwgIgogICAg ICAgICAiZmxpcCBmb3Igc3RyZWFtKHMpIiwKLSAgICAgICAgImFyZ3VtZW50cyIgfSwKKyAg ICAgICAgImFyZ3VtZW50cyIsICZjbGFzc19kaXNwbGF5X21hdHJpeF9hcmdzIH0sCiAgICAg eyAiZGlzcGxheV9yb3RhdGlvbiIsIE9QVF9WSURFTyB8IEhBU19BUkcgfCBPUFRfRE9VQkxF IHwgT1BUX1NQRUMgfCBPUFRfSU5QVVQgfAogICAgICAgICAgICAgICAgICAgICAgICAgICBP UFRfT1VUUFVULCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyAub2ZmID0gT0ZGU0VUKGRpc3BsYXlfcm90YXRpb25zKSB9LAogICAgICAgICAic2V0IHB1 cmUgY291bnRlci1jbG9ja3dpc2Ugcm90YXRpb24gaW4gZGVncmVlcyBmb3Igc3RyZWFtKHMp IiwKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9vcHQuYyBiL2xpYmF2dXRpbC9vcHQuYwppbmRl eCA4ZmZiMTA0NDliLi40MjhkYTIzMTlmIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvb3B0LmMK KysrIGIvbGliYXZ1dGlsL29wdC5jCkBAIC0xNDQzLDYgKzE0NDMsMjAxIEBAIEZGX0VOQUJM RV9ERVBSRUNBVElPTl9XQVJOSU5HUwogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgYXJnX2xp c3Qodm9pZCAqb2JqLCB2b2lkICphdl9sb2dfb2JqLCBjb25zdCBjaGFyICp1bml0LCBlbnVt IEFWT3B0aW9uVHlwZSBwYXJlbnRfdHlwZSkKK3sKKyAgICBjb25zdCBBVk9wdGlvbiAqb3B0 ID0gTlVMTDsKKyAgICBBVk9wdGlvblJhbmdlcyAqcjsKKyAgICBpbnQgaTsKKworICAgIHdo aWxlICgob3B0ID0gYXZfb3B0X25leHQob2JqLCBvcHQpKSkgeworICAgICAgICAvKiBEb24n dCBwcmludCBDT05TVCdzIG9uIGxldmVsIG9uZS4KKyAgICAgICAgICogRG9uJ3QgcHJpbnQg YW55dGhpbmcgYnV0IENPTlNUJ3Mgb24gbGV2ZWwgdHdvLgorICAgICAgICAgKiBPbmx5IHBy aW50IGl0ZW1zIGZyb20gdGhlIHJlcXVlc3RlZCB1bml0LgorICAgICAgICAgKi8KKyAgICAg ICAgaWYgKCF1bml0ICYmIG9wdC0+dHlwZSA9PSBBVl9PUFRfVFlQRV9DT05TVCkKKyAgICAg ICAgICAgIGNvbnRpbnVlOworICAgICAgICBlbHNlIGlmICh1bml0ICYmIG9wdC0+dHlwZSAh PSBBVl9PUFRfVFlQRV9DT05TVCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBl bHNlIGlmICh1bml0ICYmIG9wdC0+dHlwZSA9PSBBVl9PUFRfVFlQRV9DT05TVCAmJiBzdHJj bXAodW5pdCwgb3B0LT51bml0KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBl bHNlIGlmICh1bml0ICYmIG9wdC0+dHlwZSA9PSBBVl9PUFRfVFlQRV9DT05TVCkKKyAgICAg ICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiAgICAgJS0xNXMgIiwg b3B0LT5uYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19v YmosIEFWX0xPR19JTkZPLCAiICAgJS0xN3MgIiwgb3B0LT5uYW1lKTsKKworICAgICAgICBz d2l0Y2ggKG9wdC0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9GTEFH UzoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIl LTEycyAiLCAiPGZsYWdzPiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgY2FzZSBBVl9PUFRfVFlQRV9JTlQ6CisgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xv Z19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxpbnQ+Iik7CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0lOVDY0OgorICAgICAg ICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUtMTJzICIsICI8 aW50NjQ+Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFW X09QVF9UWVBFX1VJTlQ2NDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwg QVZfTE9HX0lORk8sICIlLTEycyAiLCAiPHVpbnQ2ND4iKTsKKyAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfRE9VQkxFOgorICAgICAgICAg ICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUtMTJzICIsICI8ZG91 YmxlPiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBVl9P UFRfVFlQRV9GTE9BVDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZf TE9HX0lORk8sICIlLTEycyAiLCAiPGZsb2F0PiIpOworICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9TVFJJTkc6CisgICAgICAgICAgICAg ICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxzdHJpbmc+ Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9U WVBFX1JBVElPTkFMOgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9M T0dfSU5GTywgIiUtMTJzICIsICI8cmF0aW9uYWw+Iik7CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0JJTkFSWToKKyAgICAgICAgICAg ICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPGJpbmFy eT4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVZfT1BU X1RZUEVfRElDVDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sICIlLTEycyAiLCAiPGRpY3Rpb25hcnk+Iik7CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0lNQUdFX1NJWkU6CisgICAgICAg ICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxp bWFnZV9zaXplPiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz ZSBBVl9PUFRfVFlQRV9WSURFT19SQVRFOgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9s b2dfb2JqLCBBVl9MT0dfSU5GTywgIiUtMTJzICIsICI8dmlkZW9fcmF0ZT4iKTsKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfUElYRUxf Rk1UOgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywg IiUtMTJzICIsICI8cGl4X2ZtdD4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfU0FNUExFX0ZNVDoKKyAgICAgICAgICAgICAgICBh dl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPHNhbXBsZV9mbXQ+ Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9U WVBFX0RVUkFUSU9OOgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9M T0dfSU5GTywgIiUtMTJzICIsICI8ZHVyYXRpb24+Iik7CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0NPTE9SOgorICAgICAgICAgICAg ICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUtMTJzICIsICI8Y29sb3I+ Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9U WVBFX0NITEFZT1VUOgorI2lmIEZGX0FQSV9PTERfQ0hBTk5FTF9MQVlPVVQKK0ZGX0RJU0FC TEVfREVQUkVDQVRJT05fV0FSTklOR1MKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVf Q0hBTk5FTF9MQVlPVVQ6CitGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKKyNlbmRp ZgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUt MTJzICIsICI8Y2hhbm5lbF9sYXlvdXQ+Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0JPT0w6CisgICAgICAgICAgICAgICAgYXZf bG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxib29sZWFuPiIpOwor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9D T05TVDoKKyAgICAgICAgICAgICAgICBpZiAocGFyZW50X3R5cGUgPT0gQVZfT1BUX1RZUEVf SU5UKQorICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lO Rk8sICIlLTEyIlBSSWQ2NCIgIiwgb3B0LT5kZWZhdWx0X3ZhbC5pNjQpOworICAgICAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFW X0xPR19JTkZPLCAiJS0xMnMgIiwgIiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwg QVZfTE9HX0lORk8sICIlLTEycyAiLCAiIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIH0KKworICAgICAgICBpZiAob3B0LT5oZWxwKQorICAgICAgICAgICAgYXZfbG9n KGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiICVzIiwgb3B0LT5oZWxwKTsKKworICAgICAg ICBpZiAoYXZfb3B0X3F1ZXJ5X3Jhbmdlcygmciwgb2JqLCBvcHQtPm5hbWUsIEFWX09QVF9T RUFSQ0hfRkFLRV9PQkopID49IDApIHsKKyAgICAgICAgICAgIHN3aXRjaCAob3B0LT50eXBl KSB7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0lOVDoKKyAgICAgICAgICAgIGNh c2UgQVZfT1BUX1RZUEVfSU5UNjQ6CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX1VJ TlQ2NDoKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfRE9VQkxFOgorICAgICAgICAg ICAgY2FzZSBBVl9PUFRfVFlQRV9GTE9BVDoKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZ UEVfUkFUSU9OQUw6CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHItPm5iX3Jh bmdlczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBB Vl9MT0dfSU5GTywgIiAoZnJvbSAiKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nX3ZhbHVl KGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCByLT5yYW5nZVtpXS0+dmFsdWVfbWluKTsKKyAg ICAgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiIHRv ICIpOworICAgICAgICAgICAgICAgICAgICBsb2dfdmFsdWUoYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sIHItPnJhbmdlW2ldLT52YWx1ZV9tYXgpOworICAgICAgICAgICAgICAgICAgICBh dl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIpIik7CisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg YXZfb3B0X2ZyZWVwX3Jhbmdlcygmcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0 LT50eXBlICE9IEFWX09QVF9UWVBFX0NPTlNUICAmJgorICAgICAgICAgICAgb3B0LT50eXBl ICE9IEFWX09QVF9UWVBFX0JJTkFSWSAmJgorICAgICAgICAgICAgICAgICEoKG9wdC0+dHlw ZSA9PSBBVl9PUFRfVFlQRV9DT0xPUiAgICAgIHx8CisgICAgICAgICAgICAgICAgICAgb3B0 LT50eXBlID09IEFWX09QVF9UWVBFX0lNQUdFX1NJWkUgfHwKKyAgICAgICAgICAgICAgICAg ICBvcHQtPnR5cGUgPT0gQVZfT1BUX1RZUEVfU1RSSU5HICAgICB8fAorICAgICAgICAgICAg ICAgICAgIG9wdC0+dHlwZSA9PSBBVl9PUFRfVFlQRV9ESUNUICAgICAgIHx8CisgICAgICAg ICAgICAgICAgICAgb3B0LT50eXBlID09IEFWX09QVF9UWVBFX0NITEFZT1VUICAgfHwKKyAg ICAgICAgICAgICAgICAgICBvcHQtPnR5cGUgPT0gQVZfT1BUX1RZUEVfVklERU9fUkFURSkg JiYKKyAgICAgICAgICAgICAgICAgICFvcHQtPmRlZmF1bHRfdmFsLnN0cikpIHsKKyAgICAg ICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiAoZGVmYXVsdCAiKTsK KyAgICAgICAgICAgIHN3aXRjaCAob3B0LT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIEFW X09QVF9UWVBFX0JPT0w6CisgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFW X0xPR19JTkZPLCAiJXMiLCAoY2hhciAqKWF2X3hfaWZfbnVsbChnZXRfYm9vbF9uYW1lKG9w dC0+ZGVmYXVsdF92YWwuaTY0KSwgImludmFsaWQiKSk7CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0ZMQUdTOiB7CisgICAgICAgICAg ICAgICAgY2hhciAqZGVmX2ZsYWdzID0gZ2V0X29wdF9mbGFnc19zdHJpbmcob2JqLCBvcHQt PnVuaXQsIG9wdC0+ZGVmYXVsdF92YWwuaTY0KTsKKyAgICAgICAgICAgICAgICBpZiAoZGVm X2ZsYWdzKSB7CisgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9M T0dfSU5GTywgIiVzIiwgZGVmX2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgYXZfZnJl ZXAoJmRlZl9mbGFncyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJSJQUklYNjQsIG9w dC0+ZGVmYXVsdF92YWwuaTY0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBF X0RVUkFUSU9OOiB7CisgICAgICAgICAgICAgICAgY2hhciBidWZbMjVdOworICAgICAgICAg ICAgICAgIGZvcm1hdF9kdXJhdGlvbihidWYsIHNpemVvZihidWYpLCBvcHQtPmRlZmF1bHRf dmFsLmk2NCk7CisgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19J TkZPLCAiJXMiLCBidWYpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg fQorICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9JTlQ6CisgICAgICAgICAgICBjYXNl IEFWX09QVF9UWVBFX1VJTlQ2NDoKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfSU5U NjQ6IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkZWZfY29uc3QgPSBnZXRfb3B0 X2NvbnN0X25hbWUob2JqLCBvcHQtPnVuaXQsIG9wdC0+ZGVmYXVsdF92YWwuaTY0KTsKKyAg ICAgICAgICAgICAgICBpZiAoZGVmX2NvbnN0KQorICAgICAgICAgICAgICAgICAgICBhdl9s b2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlcyIsIGRlZl9jb25zdCk7CisgICAgICAg ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dfaW50X3ZhbHVlKGF2X2xv Z19vYmosIEFWX0xPR19JTkZPLCBvcHQtPmRlZmF1bHRfdmFsLmk2NCk7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIEFWX09QVF9U WVBFX0RPVUJMRToKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfRkxPQVQ6CisgICAg ICAgICAgICAgICAgbG9nX3ZhbHVlKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCBvcHQtPmRl ZmF1bHRfdmFsLmRibCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj YXNlIEFWX09QVF9UWVBFX1JBVElPTkFMOiB7CisgICAgICAgICAgICAgICAgQVZSYXRpb25h bCBxID0gYXZfZDJxKG9wdC0+ZGVmYXVsdF92YWwuZGJsLCBJTlRfTUFYKTsKKyAgICAgICAg ICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlZC8lZCIsIHEubnVt LCBxLmRlbik7IH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug QVZfT1BUX1RZUEVfUElYRUxfRk1UOgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2df b2JqLCBBVl9MT0dfSU5GTywgIiVzIiwgKGNoYXIgKilhdl94X2lmX251bGwoYXZfZ2V0X3Bp eF9mbXRfbmFtZShvcHQtPmRlZmF1bHRfdmFsLmk2NCksICJub25lIikpOworICAgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9TQU1QTEVfRk1U OgorICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiVz IiwgKGNoYXIgKilhdl94X2lmX251bGwoYXZfZ2V0X3NhbXBsZV9mbXRfbmFtZShvcHQtPmRl ZmF1bHRfdmFsLmk2NCksICJub25lIikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9DT0xPUjoKKyAgICAgICAgICAgIGNhc2UgQVZf T1BUX1RZUEVfSU1BR0VfU0laRToKKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfU1RS SU5HOgorICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9ESUNUOgorICAgICAgICAgICAg Y2FzZSBBVl9PUFRfVFlQRV9WSURFT19SQVRFOgorICAgICAgICAgICAgY2FzZSBBVl9PUFRf VFlQRV9DSExBWU9VVDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZf TE9HX0lORk8sICJcIiVzXCIiLCBvcHQtPmRlZmF1bHRfdmFsLnN0cik7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisjaWYgRkZfQVBJX09MRF9DSEFOTkVMX0xBWU9VVAorRkZfRElTQUJM RV9ERVBSRUNBVElPTl9XQVJOSU5HUworICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9D SEFOTkVMX0xBWU9VVDoKKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZf TE9HX0lORk8sICIweCUiUFJJeDY0LCBvcHQtPmRlZmF1bHRfdmFsLmk2NCk7CisgICAgICAg ICAgICAgICAgYnJlYWs7CitGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKKyNlbmRp ZgorICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xP R19JTkZPLCAiKSIpOworICAgICAgICB9CisKKyAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmos IEFWX0xPR19JTkZPLCAiXG4iKTsKKyAgICAgICAgaWYgKG9wdC0+dW5pdCAmJiBvcHQtPnR5 cGUgIT0gQVZfT1BUX1RZUEVfQ09OU1QpCisgICAgICAgICAgICBhcmdfbGlzdChvYmosIGF2 X2xvZ19vYmosIG9wdC0+dW5pdCwgb3B0LT50eXBlKTsKKyAgICB9Cit9CisKIGludCBhdl9v cHRfc2hvdzIodm9pZCAqb2JqLCB2b2lkICphdl9sb2dfb2JqLCBpbnQgcmVxX2ZsYWdzLCBp bnQgcmVqX2ZsYWdzKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ1NSw2ICsxNjUwLDE2IEBA IGludCBhdl9vcHRfc2hvdzIodm9pZCAqb2JqLCB2b2lkICphdl9sb2dfb2JqLCBpbnQgcmVx X2ZsYWdzLCBpbnQgcmVqX2ZsYWdzKQogICAgIHJldHVybiAwOwogfQogCitpbnQgYXZfYXJn X3Nob3codm9pZCAqb2JqLCB2b2lkICphdl9sb2dfb2JqKQoreworICAgIGlmICghb2JqKQor ICAgICAgICByZXR1cm4gLTE7CisKKyAgICBhcmdfbGlzdChvYmosIGF2X2xvZ19vYmosIE5V TEwsIC0xKTsKKworICAgIHJldHVybiAwOworfQorCiB2b2lkIGF2X29wdF9zZXRfZGVmYXVs dHModm9pZCAqcykKIHsKICAgICBhdl9vcHRfc2V0X2RlZmF1bHRzMihzLCAwLCAwKTsKZGlm ZiAtLWdpdCBhL2xpYmF2dXRpbC9vcHQuaCBiL2xpYmF2dXRpbC9vcHQuaAppbmRleCA0NjFi NWQzYjZiLi43YmQ1NjA3ODJmIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvb3B0LmgKKysrIGIv bGliYXZ1dGlsL29wdC5oCkBAIC0zODYsNiArMzg2LDEzIEBAIHR5cGVkZWYgc3RydWN0IEFW T3B0aW9uUmFuZ2VzIHsKICAqLwogaW50IGF2X29wdF9zaG93Mih2b2lkICpvYmosIHZvaWQg KmF2X2xvZ19vYmosIGludCByZXFfZmxhZ3MsIGludCByZWpfZmxhZ3MpOwogCisvKioKKyAq IFNob3cgdGhlIG9iaiBhcmd1bWVudHMuCisgKgorICogQHBhcmFtIGF2X2xvZ19vYmogbG9n IGNvbnRleHQgdG8gdXNlIGZvciBzaG93aW5nIHRoZSBvcHRpb25zCisgKi8KK2ludCBhdl9h cmdfc2hvdyh2b2lkICpvYmosIHZvaWQgKmF2X2xvZ19vYmopOworCiAvKioKICAqIFNldCB0 aGUgdmFsdWVzIG9mIGFsbCBBVk9wdGlvbiBmaWVsZHMgdG8gdGhlaXIgZGVmYXVsdCB2YWx1 ZXMuCiAgKgotLSAKMi4yMC4xIChBcHBsZSBHaXQtMTE3KQoK --------------1tEgMQZ6tEjk6tYJPsNlC9Cw 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". --------------1tEgMQZ6tEjk6tYJPsNlC9Cw--