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 0A413499C7 for ; Sun, 25 Feb 2024 04:14:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6627068C69F; Sun, 25 Feb 2024 06:14:33 +0200 (EET) Received: from 1.mo584.mail-out.ovh.net (1.mo584.mail-out.ovh.net [178.33.248.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3031D680897 for ; Sun, 25 Feb 2024 06:14:26 +0200 (EET) Received: from director1.ghost.mail-out.ovh.net (unknown [10.109.140.244]) by mo584.mail-out.ovh.net (Postfix) with ESMTP id 4Tj9PG0l2Mz1DXj for ; Sun, 25 Feb 2024 04:14:26 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-zn2cj (unknown [10.110.96.89]) by director1.ghost.mail-out.ovh.net (Postfix) with ESMTPS id AE4861FD81 for ; Sun, 25 Feb 2024 04:14:25 +0000 (UTC) Received: from mediaarea.net ([37.59.142.96]) by ghost-submission-6684bf9d7b-zn2cj with ESMTPSA id iGe3JaG+2mXwnQMA5NI4EQ (envelope-from ) for ; Sun, 25 Feb 2024 04:14:25 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-96R001b127fa15-4174-4b20-b309-3c09021fd955, 5F940AD20D789D68CAB5C0E14AAD19AE8F703C1F) smtp.auth=jerome@mediaarea.net X-OVh-ClientIp: 84.143.147.144 Content-Type: multipart/mixed; boundary="------------TPzD6acl2LC3O0nBCzFnSWjs" Message-ID: Date: Sun, 25 Feb 2024 05:14:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US, fr, de-DE References: From: Jerome Martinez To: FFmpeg development discussions and patches In-Reply-To: X-Ovh-Tracer-Id: 13736260342019098873 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvledrfeelgdeikecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtkfffgggfufhfhffvjgesmhdtreertddvjeenucfhrhhomheplfgvrhhomhgvucforghrthhinhgviicuoehjvghrohhmvgesmhgvughirggrrhgvrgdrnhgvtheqnecuggftrfgrthhtvghrnhepteejhffgtedvvdeftdelfedvffefvefhueetueeugfegheeuvddujeekkefhleevnecukfhppeduvdejrddtrddtrddupdekgedrudegfedrudegjedrudeggedpfeejrdehledrudegvddrleeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehjvghrohhmvgesmhgvughirggrrhgvrgdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehkeegpdhmohguvgepshhmthhpohhuth X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v3] avcodec/jpeg2000dec: support of 2 fields in 1 AVPacket 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. --------------TPzD6acl2LC3O0nBCzFnSWjs Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 24/02/2024 13:26, Tomas Härdin wrote: > [...] >>> It should be possible to have ffmpeg set up the necessary plumbing >>> for >>> this. >> But is it how it works elsewhere in FFmpeg? Would such complex and >> deep >> modifications be accepted by others? > Good question. I would propose something like the following: > > 1) detect the use of SEPARATE_FIELDS and set a flag in AVStream As in practice and in that case (2 jp2k codestreams per AVPacket) it is only a tip (because we can autodetect and there are many buggy files in the wild) for the jpeg2000 decoder, I was planning to add that later in a separate patch, but attached is a version with the flag. > 2) allocate AVFrame for the size of the resulting *frame* So keeping what is already there. > 3a) if the codec is inherently interlaced, call the decoder once > 3b) if the codec is not inherently interlaced, call the decoder twice, > with appropriate stride, and keep track of the number of bytes decoded > so far so we know what offset to start the second decode from The place I see for that is in decode_simple_internal(). But it is a very hot place I don't like to modify, and it seems to me some extra code for 99.9999% (or even more 9s) of files which don't need such feature, with more risk to forget this specific feature during a future dev e.g. not obvious to change also in ff_thread_decode_frame when touching this part. I also needed to add a dedicated AVStream field for saying that the decoder is able to manage this functionality (and is needed there). What is the added value to call the decoder twice from decode.c rather than recursive call (or a master function in the decoder calling the current function twice, if preferred) inside the decoder only? As far as I understand, it would not help for other formats (only the signaling propagation in AVStream helps and it is done by another AVStream field) and I personally highly prefer that such feature is as much as possible in a single place in each decoder rather than pieces a bit everywhere, and each decoder needs to be upgraded anyway. > The codecs for which 3b) applies include at least: > > * jpeg2000 Our use case. > * ffv1 FFV1 has its own flags internally for interlaced content (interleaved method only) and I expect no work for separated fields. the MXF/FFV1 spec does not plan separated fields for FFV1, and there is no byte in the essence label for that. > * rawvideo > * tiff I didn't find specifications for the essence label UL corresponding and I have no file for that, as far as I understand it is highly theoretical but if it appears would be only a matter of mapping the MXF signaling to the new AVStream field and supporting the feature in the decoders (even if we implement the idea of calling the decoder twice, the decoder needs to be expanded for this feature). So IMO no dev to do there too for the moment. Jérôme --------------TPzD6acl2LC3O0nBCzFnSWjs Content-Type: text/plain; charset=UTF-8; name="0001-avcodec-jpeg2000dec-support-of-2-fields-in-1-AVPacke.patch" Content-Disposition: attachment; filename*0="0001-avcodec-jpeg2000dec-support-of-2-fields-in-1-AVPacke.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmNDMxMWI3MTgwMTJhOTI1OTBjZTYxNjgzNTVlYzExOGUwMjA1MmE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvbWUgTWFydGluZXogPGplcm9tZUBtZWRpYWFy ZWEubmV0PgpEYXRlOiBUdWUsIDIwIEZlYiAyMDI0IDE2OjA0OjExICswMTAwClN1YmplY3Q6 IFtQQVRDSF0gYXZjb2RlYy9qcGVnMjAwMGRlYzogc3VwcG9ydCBvZiAyIGZpZWxkcyBpbiAx IEFWUGFja2V0CgotLS0KIGxpYmF2Y29kZWMvYXZjb2RlYy5oICAgICAgIHwgMTQgKysrKysr KysrCiBsaWJhdmNvZGVjL2NvZGVjX3Bhci5jICAgICB8ICAzICsrCiBsaWJhdmNvZGVjL2Nv ZGVjX3Bhci5oICAgICB8ICA1ICsrKysKIGxpYmF2Y29kZWMvZGVjb2RlLmMgICAgICAgIHwg IDMgKysKIGxpYmF2Y29kZWMvZGVmcy5oICAgICAgICAgIHwgIDcgKysrKysKIGxpYmF2Y29k ZWMvanBlZzIwMDBkZWMuYyAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLQogbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oICAgfCAgNiArKysr CiBsaWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYyB8ICAzICsrCiBsaWJhdmZvcm1hdC9teGZk ZWMuYyAgICAgICB8IDE0ICsrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdmNv ZGVjLmggYi9saWJhdmNvZGVjL2F2Y29kZWMuaAppbmRleCA3ZmI0NGUyOGY0Li4zOGQ2M2Fk YzBmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2Y29kZWMuaAorKysgYi9saWJhdmNvZGVj L2F2Y29kZWMuaApAQCAtMjExNiw2ICsyMTE2LDIwIEBAIHR5cGVkZWYgc3RydWN0IEFWQ29k ZWNDb250ZXh0IHsKICAgICAgKiAgIGFuIGVycm9yLgogICAgICAqLwogICAgIGludDY0X3Qg ZnJhbWVfbnVtOworCisgICAgLyoqCisgICAgICogVmlkZW8gb25seS4gVGhlIHdheSBzZXBh cmF0ZSBmaWVsZHMgYXJlIHdyYXBwZWQgaW4gdGhlIGNvbnRhaW5lcgorICAgICAqIC0gZGVj b2Rpbmc6IHRpcCBmcm9tIHRoZSBkZW11eGVyCisgICAgICogLSBlbmNvZGluZzogbm90ICh5 ZXQpIHVzZWQKKyAgICAgKi8KKyAgICBlbnVtIEFWRnJhbWVXcmFwcGluZyAgICAgICAgICAg ICAgIGZyYW1lX3dyYXBwaW5nOworCisgICAgLyoqCisgICAgICogVmlkZW8gb25seS4gSW5k aWNhdGUgaWYgcnVubmluZyB0aGUgZGVjb2RlciB0d2ljZSBmb3IgYSBzaW5nbGUgQVZGcmFt ZSBpcyBzdXBwb3J0ZWQKKyAgICAgKiAtIGRlY29kaW5nOiBzZXQgYnkgdGhlIGRlY29kZXIK KyAgICAgKiAtIGVuY29kaW5nOiBub3QgIHVzZWQKKyAgICAgKi8KKyAgICBpbnQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3dyYXBwaW5nX2ZpZWxkXzJfc3VwcG9y dGVkOwogfSBBVkNvZGVjQ29udGV4dDsKIAogLyoqCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2NvZGVjX3Bhci5jIGIvbGliYXZjb2RlYy9jb2RlY19wYXIuYwppbmRleCBhYmFhYzYzODQx Li4zZjI2ZjlkNGQ2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2NvZGVjX3Bhci5jCisrKyBi L2xpYmF2Y29kZWMvY29kZWNfcGFyLmMKQEAgLTUxLDYgKzUxLDcgQEAgc3RhdGljIHZvaWQg Y29kZWNfcGFyYW1ldGVyc19yZXNldChBVkNvZGVjUGFyYW1ldGVycyAqcGFyKQogICAgIHBh ci0+ZnJhbWVyYXRlICAgICAgICAgICA9IChBVlJhdGlvbmFsKXsgMCwgMSB9OwogICAgIHBh ci0+cHJvZmlsZSAgICAgICAgICAgICA9IEFWX1BST0ZJTEVfVU5LTk9XTjsKICAgICBwYXIt PmxldmVsICAgICAgICAgICAgICAgPSBBVl9MRVZFTF9VTktOT1dOOworICAgIHBhci0+ZnJh bWVfd3JhcHBpbmcgICAgICA9IEFWX1dSQVBQSU5HX1VOS05PV047CiB9CiAKIEFWQ29kZWNQ YXJhbWV0ZXJzICphdmNvZGVjX3BhcmFtZXRlcnNfYWxsb2Modm9pZCkKQEAgLTE2NSw2ICsx NjYsNyBAQCBpbnQgYXZjb2RlY19wYXJhbWV0ZXJzX2Zyb21fY29udGV4dChBVkNvZGVjUGFy YW1ldGVycyAqcGFyLAogICAgICAgICBwYXItPnNhbXBsZV9hc3BlY3RfcmF0aW8gPSBjb2Rl Yy0+c2FtcGxlX2FzcGVjdF9yYXRpbzsKICAgICAgICAgcGFyLT52aWRlb19kZWxheSAgICAg ICAgID0gY29kZWMtPmhhc19iX2ZyYW1lczsKICAgICAgICAgcGFyLT5mcmFtZXJhdGUgICAg ICAgICAgID0gY29kZWMtPmZyYW1lcmF0ZTsKKyAgICAgICAgcGFyLT5mcmFtZV93cmFwcGlu ZyAgICAgID0gY29kZWMtPmZyYW1lX3dyYXBwaW5nOwogICAgICAgICBicmVhazsKICAgICBj YXNlIEFWTUVESUFfVFlQRV9BVURJTzoKICAgICAgICAgcGFyLT5mb3JtYXQgICAgICAgICAg ID0gY29kZWMtPnNhbXBsZV9mbXQ7CkBAIC0yNTIsNiArMjU0LDcgQEAgaW50IGF2Y29kZWNf cGFyYW1ldGVyc190b19jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpjb2RlYywKICAgICAgICAg Y29kZWMtPnNhbXBsZV9hc3BlY3RfcmF0aW8gICAgPSBwYXItPnNhbXBsZV9hc3BlY3RfcmF0 aW87CiAgICAgICAgIGNvZGVjLT5oYXNfYl9mcmFtZXMgICAgICAgICAgID0gcGFyLT52aWRl b19kZWxheTsKICAgICAgICAgY29kZWMtPmZyYW1lcmF0ZSAgICAgICAgICAgICAgPSBwYXIt PmZyYW1lcmF0ZTsKKyAgICAgICAgY29kZWMtPmZyYW1lX3dyYXBwaW5nICAgICAgICAgPSBw YXItPmZyYW1lX3dyYXBwaW5nOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFWTUVESUFf VFlQRV9BVURJTzoKICAgICAgICAgY29kZWMtPnNhbXBsZV9mbXQgICAgICAgPSBwYXItPmZv cm1hdDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfcGFyLmggYi9saWJhdmNvZGVj L2NvZGVjX3Bhci5oCmluZGV4IGY0MmRkM2IxZDUuLjFlNTMyOTI1NTMgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvY29kZWNfcGFyLmgKKysrIGIvbGliYXZjb2RlYy9jb2RlY19wYXIuaApA QCAtMTM2LDYgKzEzNiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBBVkNvZGVjUGFyYW1ldGVycyB7 CiAgICAgZW51bSBBVkZpZWxkT3JkZXIgICAgICAgICAgICAgICAgICBmaWVsZF9vcmRlcjsK IAogICAgIC8qKgorICAgICAqIFZpZGVvIG9ubHkuIFRoZSB3YXkgc2VwYXJhdGUgZmllbGRz IGFyZSB3cmFwcGVkIGluIHRoZSBjb250YWluZXIKKyAgICAgKi8KKyAgICBlbnVtIEFWRnJh bWVXcmFwcGluZyAgICAgICAgICAgICAgIGZyYW1lX3dyYXBwaW5nOworCisgICAgLyoqCiAg ICAgICogVmlkZW8gb25seS4gQWRkaXRpb25hbCBjb2xvcnNwYWNlIGNoYXJhY3RlcmlzdGlj cy4KICAgICAgKi8KICAgICBlbnVtIEFWQ29sb3JSYW5nZSAgICAgICAgICAgICAgICAgIGNv bG9yX3JhbmdlOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZWNvZGUuYyBiL2xpYmF2Y29k ZWMvZGVjb2RlLmMKaW5kZXggMmNmYjNmY2Y5Ny4uOTc5NzU5ZDg0YSAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9kZWNvZGUuYworKysgYi9saWJhdmNvZGVjL2RlY29kZS5jCkBAIC00Mjgs NiArNDI4LDkgQEAgc3RhdGljIGlubGluZSBpbnQgZGVjb2RlX3NpbXBsZV9pbnRlcm5hbChB VkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAogICAgICAgICBjb25zdW1l ZCA9IGZmX3RocmVhZF9kZWNvZGVfZnJhbWUoYXZjdHgsIGZyYW1lLCAmZ290X2ZyYW1lLCBw a3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN1bWVkID0gY29kZWMtPmNiLmRlY29k ZShhdmN0eCwgZnJhbWUsICZnb3RfZnJhbWUsIHBrdCk7CisgICAgICAgIGlmIChjb25zdW1l ZCA+PSAwICYmIGF2Y3R4LT5mcmFtZV93cmFwcGluZ19maWVsZF8yX3N1cHBvcnRlZCkgewor ICAgICAgICAgICAgY29uc3VtZWQgPSBjb2RlYy0+Y2IuZGVjb2RlKGF2Y3R4LCBmcmFtZSwg JmdvdF9mcmFtZSwgcGt0KTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICghKGNvZGVjLT5j YXBzX2ludGVybmFsICYgRkZfQ09ERUNfQ0FQX1NFVFNfUEtUX0RUUykpCiAgICAgICAgICAg ICBmcmFtZS0+cGt0X2R0cyA9IHBrdC0+ZHRzOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9k ZWZzLmggYi9saWJhdmNvZGVjL2RlZnMuaAppbmRleCAwMGQ4NDBlYzE5Li44ZjdlY2Y4MWM1 IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2RlZnMuaAorKysgYi9saWJhdmNvZGVjL2RlZnMu aApAQCAtMjA0LDYgKzIwNCwxMyBAQCBlbnVtIEFWRmllbGRPcmRlciB7CiAgICAgQVZfRklF TERfQlQsICAgICAgICAgIC8vLzwgQm90dG9tIGNvZGVkIGZpcnN0LCB0b3AgZGlzcGxheWVk IGZpcnN0CiB9OwogCitlbnVtIEFWRnJhbWVXcmFwcGluZyB7CisgICAgQVZfV1JBUFBJTkdf VU5LTk9XTiwKKyAgICBBVl9XUkFQUElOR19GUkFNRSwgICAgLy8vPCBpZiBpbnRlcmxhY2Vk IGNvbnRlbnQ6IGxpbmVzIGFyZSBpbnRlcmxlYXZlZAorICAgIEFWX1dSQVBQSU5HX0ZJRUxE XzEsICAvLy88IGVhY2ggZmllbGQgaXMgYW4gaW5kZXBlbmRlbnQgZW5jb2RlZCBpdGVtLCAx IGZpZWxkIHBlciBBVlBhY2tldAorICAgIEFWX1dSQVBQSU5HX0ZJRUxEXzIsICAvLy88IGVh Y2ggZmllbGQgaXMgYW4gaW5kZXBlbmRlbnQgZW5jb2RlZCBpdGVtLCAyIGZpZWxkcyBwZXIg QVZQYWNrZXQKK307CisKIC8qKgogICogQGluZ3JvdXAgbGF2Y19kZWNvZGluZwogICovCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMgYi9saWJhdmNvZGVjL2pwZWcy MDAwZGVjLmMKaW5kZXggNjkxY2ZiZDg5MS4uYzliOTM1ZDk3YiAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9qcGVnMjAwMGRlYy5jCisrKyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYwpA QCAtMTk0LDYgKzE5NCw4IEBAIHN0YXRpYyBpbnQgZ2V0X3NpeihKcGVnMjAwMERlY29kZXJD b250ZXh0ICpzKQogICAgIGludCByZXQ7CiAgICAgaW50IG9fZGlteCwgb19kaW15OyAvL29y aWdpbmFsIGltYWdlIGRpbWVuc2lvbnMuCiAgICAgaW50IGRpbXgsIGRpbXk7CisgICAgaW50 IHByZXZpb3VzX3dpZHRoID0gcy0+d2lkdGg7CisgICAgaW50IHByZXZpb3VzX2hlaWdodCA9 IHMtPmhlaWdodDsKIAogICAgIGlmIChieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmcy0+ ZykgPCAzNikgewogICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIklu c3VmZmljaWVudCBzcGFjZSBmb3IgU0laXG4iKTsKQEAgLTIxMSw3ICsyMTMsNyBAQCBzdGF0 aWMgaW50IGdldF9zaXooSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcykKICAgICBzLT50aWxl X29mZnNldF95ICA9IGJ5dGVzdHJlYW0yX2dldF9iZTMydSgmcy0+Zyk7IC8vIFlUMFNpegog ICAgIG5jb21wb25lbnRzICAgICAgID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTZ1KCZzLT5nKTsg Ly8gQ1NpegogCi0gICAgaWYgKGF2X2ltYWdlX2NoZWNrX3NpemUyKHMtPndpZHRoLCBzLT5o ZWlnaHQsIHMtPmF2Y3R4LT5tYXhfcGl4ZWxzLCBBVl9QSVhfRk1UX05PTkUsIDAsIHMtPmF2 Y3R4KSkgeworICAgIGlmIChhdl9pbWFnZV9jaGVja19zaXplMihzLT53aWR0aCwgcy0+aGVp Z2h0IDw8IChzLT5oYXNfMl9maWVsZHMgJiYgcy0+aGVpZ2h0ID49IDApLCBzLT5hdmN0eC0+ bWF4X3BpeGVscywgQVZfUElYX0ZNVF9OT05FLCAwLCBzLT5hdmN0eCkpIHsKICAgICAgICAg YXZwcml2X3JlcXVlc3Rfc2FtcGxlKHMtPmF2Y3R4LCAiTGFyZ2UgRGltZW5zaW9ucyIpOwog ICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdFTENPTUU7CiAgICAgfQpAQCAtMzAxLDYg KzMwMywyMCBAQCBzdGF0aWMgaW50IGdldF9zaXooSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAq cykKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAgICAgfQogCisgICAg LyogbWFuYWdlbWVudCBvZiBmcmFtZXMgaGF2aW5nIDIgc2VwYXJhdGUgY29kZXN0cmVhbXMg Ki8KKyAgICBpZiAocy0+aGFzXzJfZmllbGRzKSB7CisgICAgICAgIHMtPmhlaWdodCA8PD0g MTsKKyAgICAgICAgcy0+aW1hZ2Vfb2Zmc2V0X3kgPDw9IDE7CisgICAgICAgIHMtPnRpbGVf b2Zmc2V0X3kgPDw9IDE7CisgICAgICAgIGlmIChzLT5pc19zZWNvbmRfZmllbGQgJiYgKHMt PndpZHRoICE9IHByZXZpb3VzX3dpZHRoIHx8IHMtPmhlaWdodCAhPSBwcmV2aW91c19oZWln aHQpKSB7CisgICAgICAgICAgICBhdnByaXZfcmVxdWVzdF9zYW1wbGUocy0+YXZjdHgsICJT dXBwb3J0IG9mIDIgSlBFRyAyMDAwIGNvZGVzdHJlYW1zIHdpdGggZGlmZmVyZW50IGJhc2Ug Y2hhcmFjdGVyaXN0aWNzIik7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdF TENPTUU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHMtPmltYWdlX29mZnNldF95IHx8IHMt PnRpbGVfb2Zmc2V0X3kgfHwgKHMtPnRpbGVfaGVpZ2h0IDw8IDEpICE9IHMtPmhlaWdodCkg eworICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkRlY29k aW5nIG9mIDIgZmllbGRzIGhhdmluZyB0aXRsZXMgaW4gMSBBVlBhY2tldCB3YXMgbm90IHRl c3RlZFxuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICAvKiBjb21wdXRlIGltYWdlIHNp emUgd2l0aCByZWR1Y3Rpb24gZmFjdG9yICovCiAgICAgb19kaW14ID0gZmZfanBlZzIwMDBf Y2VpbGRpdnBvdzIocy0+d2lkdGggIC0gcy0+aW1hZ2Vfb2Zmc2V0X3gsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJlZHVjdGlvbl9mYWN0 b3IpOwpAQCAtMjAwMSw3ICsyMDE3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRpbGVfY29k ZWJsb2Nrcyhjb25zdCBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBKcGVnMjAwMFRpbGUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgICAgeSAgICA9IHRpbGUtPmNvbXBbY29tcG5vXS5jb29yZFsxXVswXSAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgICAgZmZfanBlZzIwMDBfY2VpbGRpdihzLT5pbWFnZV9vZmZzZXRfeSwgcy0+Y2R5W2Nv bXBub10pOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGxpbmUgPSAo UElYRUwgKilwaWN0dXJlLT5kYXRhW3BsYW5lXSArIHkgKiAocGljdHVyZS0+bGluZXNpemVb cGxhbmVdIC8gc2l6ZW9mKFBJWEVMKSk7XAorICAgICAgICAgICAgbGluZSA9IChQSVhFTCAq KXBpY3R1cmUtPmRhdGFbcGxhbmVdICsgKHkgKyAocy0+aXNfc2Vjb25kX2ZpZWxkIF4gcy0+ aXNfYm90dG9tX2NvZGVkX2ZpcnN0KSkgKiAocGljdHVyZS0+bGluZXNpemVbcGxhbmVdIC8g c2l6ZW9mKFBJWEVMKSk7XAogICAgICAgICAgICAgZm9yICg7IHkgPCBoOyB5KyspIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgICAgICAgICAgICAgUElYRUwgKmRzdDsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAt MjAyOCw3ICsyMDQ0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRpbGVfY29kZWJsb2Nrcyhj b25zdCBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBKcGVnMjAwMFRpbGUKICAgICAgICAg ICAgICAgICAgICAgICAgIGRzdCArPSBwaXhlbHNpemU7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBsaW5lICs9IHBpY3R1 cmUtPmxpbmVzaXplW3BsYW5lXSAvIHNpemVvZihQSVhFTCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGxpbmUgKz0gKHBpY3R1cmUtPmxp bmVzaXplW3BsYW5lXSA8PCBzLT5oYXNfMl9maWVsZHMpIC8gc2l6ZW9mKFBJWEVMKTsgICAg ICAgICAgICBcCiAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0yNDQxLDYg KzI0NTcsOSBAQCBzdGF0aWMgYXZfY29sZCBpbnQganBlZzIwMDBfZGVjb2RlX2luaXQoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQogCiAgICAgZmZfanBlZzIwMDBkc3BfaW5pdCgmcy0+ZHNw KTsKICAgICBmZl9qcGVnMjAwMF9pbml0X3RpZXIxX2x1dHMoKTsKKyAgICAKKyAgICBzLT5o YXNfMl9maWVsZHMgPSBhdmN0eC0+ZnJhbWVfd3JhcHBpbmcgPT0gQVZfV1JBUFBJTkdfRklF TERfMjsKKyAgICBhdmN0eC0+ZnJhbWVfd3JhcHBpbmdfZmllbGRfMl9zdXBwb3J0ZWQgPSBz LT5oYXNfMl9maWVsZHM7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTI0NTAsOSArMjQ2OSwx MCBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWRnJhbWUgKnBpY3R1cmUsCiB7CiAgICAgSnBlZzIwMDBEZWNvZGVyQ29udGV4 dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CiAgICAgaW50IHJldDsKKyAgICBpbnQgY29kZXN0 cmVhbV9zaXplOwogCiAgICAgcy0+YXZjdHggICAgID0gYXZjdHg7Ci0gICAgYnl0ZXN0cmVh bTJfaW5pdCgmcy0+ZywgYXZwa3QtPmRhdGEsIGF2cGt0LT5zaXplKTsKKyAgICBieXRlc3Ry ZWFtMl9pbml0KCZzLT5nLCBhdnBrdC0+ZGF0YSArIHMtPmNvbnN1bWVkLCBhdnBrdC0+c2l6 ZSAtIHMtPmNvbnN1bWVkKTsKICAgICBzLT5jdXJ0aWxlbm8gPSAtMTsKICAgICBtZW1zZXQo cy0+Y2RlZiwgLTEsIHNpemVvZihzLT5jZGVmKSk7CiAKQEAgLTI0ODQsMjAgKzI1MDQsNTAg QEAgc3RhdGljIGludCBqcGVnMjAwMF9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBBVkZyYW1lICpwaWN0dXJlLAogICAgICAgICByZXQgPSBBVkVSUk9SX0lOVkFMSURE QVRBOwogICAgICAgICBnb3RvIGVuZDsKICAgICB9CisKKyAgICAvKiBtYW5hZ2VtZW50IG9m IGZyYW1lcyBoYXZpbmcgMiBzZXBhcmF0ZSBjb2Rlc3RyZWFtcyAqLworICAgIGlmIChzLT5o YXNfMl9maWVsZHMgJiYgIXMtPmlzX3NlY29uZF9maWVsZCkgeworICAgICAgICBzd2l0Y2gg KGF2Y3R4LT5maWVsZF9vcmRlcikgeworICAgICAgICBjYXNlIEFWX0ZJRUxEX0JCOgorICAg ICAgICBjYXNlIEFWX0ZJRUxEX0JUOgorICAgICAgICAgICAgcy0+aXNfYm90dG9tX2NvZGVk X2ZpcnN0ID0gMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg ICAgICAgICAgcy0+aXNfYm90dG9tX2NvZGVkX2ZpcnN0ID0gMDsKKyAgICAgICAgfQorICAg IH0KKwogICAgIGlmIChyZXQgPSBqcGVnMjAwMF9yZWFkX21haW5faGVhZGVycyhzKSkKICAg ICAgICAgZ290byBlbmQ7CisgICAgY29kZXN0cmVhbV9zaXplID0gYXZwa3QtPnNpemUgLSBi eXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmcy0+Zyk7CisKKyAgICAvKiBtYW5hZ2VtZW50 IG9mIGZyYW1lcyBoYXZpbmcgMiBzZXBhcmF0ZSBjb2Rlc3RyZWFtcyAqLworICAgIGlmIChi eXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmcy0+ZykgPiAxICYmIGJ5dGVzdHJlYW0yX3Bl ZWtfYmUxNigmcy0+ZykgPT0gSlBFRzIwMDBfU09DKSB7CisgICAgICAgIGlmICghcy0+aGFz XzJfZmllbGRzKSB7CisgICAgICAgICAgICAvKiAyIGNvZGVzdHJlYW1zIG5ld2x5IGRldGVj dGVkLCBhZGF0cGluZyBvdXRwdXQgZnJhbWUgc3RydWN0dXJlIGZvciBoYW5kbGluZyAyIGNv ZGVzdHJlYW1zIGFuZCBwYXJzaW5nIGFnYWluIHRoZSBoZWFkZXJzIChmYXN0IGFuZCBuZXZl ciBkb25lIGlmIHdyYXBwZXIgaGFzIHRoZSByaWdodCB0aXApICovCisgICAgICAgICAgICBz LT5oYXNfMl9maWVsZHMgPSAxOworICAgICAgICAgICAganBlZzIwMDBfZGVjX2NsZWFudXAo cyk7CisgICAgICAgICAgICByZXR1cm4ganBlZzIwMDBfZGVjb2RlX2ZyYW1lKGF2Y3R4LCBw aWN0dXJlLCBnb3RfZnJhbWUsIGF2cGt0KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo cy0+aGFzXzJfZmllbGRzICYmICFzLT5pc19zZWNvbmRfZmllbGQpIHsKKyAgICAgICAgLyog MSBjb2Rlc3RyZWFtIG5ld2x5IGRldGVjdGVkLCBhZGF0cGluZyBvdXRwdXQgZnJhbWUgc3Ry dWN0dXJlIGZvciBoYW5kbGluZyAxIGNvZGVzdHJlYW0gYW5kIHBhcnNpbmcgYWdhaW4gdGhl IGhlYWRlcnMgKGZhc3QgYW5kIG5ldmVyIGRvbmUgaWYgd3JhcHBlciBoYXMgdGhlIHJpZ2h0 IHRpcCkgKi8KKyAgICAgICAgcy0+aGFzXzJfZmllbGRzID0gMDsKKyAgICAgICAgcy0+aXNf Ym90dG9tX2NvZGVkX2ZpcnN0ID0gMDsKKyAgICAgICAganBlZzIwMDBfZGVjX2NsZWFudXAo cyk7CisgICAgICAgIHJldHVybiBqcGVnMjAwMF9kZWNvZGVfZnJhbWUoYXZjdHgsIHBpY3R1 cmUsIGdvdF9mcmFtZSwgYXZwa3QpOworICAgIH0KIAogICAgIGlmIChzLT5zYXIubnVtICYm IHMtPnNhci5kZW4pCiAgICAgICAgIGF2Y3R4LT5zYW1wbGVfYXNwZWN0X3JhdGlvID0gcy0+ c2FyOwogICAgIHMtPnNhci5udW0gPSBzLT5zYXIuZGVuID0gMDsKIAogICAgIGlmIChhdmN0 eC0+c2tpcF9mcmFtZSA+PSBBVkRJU0NBUkRfQUxMKSB7Ci0gICAgICAgIGpwZWcyMDAwX2Rl Y19jbGVhbnVwKHMpOwotICAgICAgICByZXR1cm4gYXZwa3QtPnNpemU7CisgICAgICAgIHJl dCA9IGNvZGVzdHJlYW1fc2l6ZTsKKyAgICAgICAgZ290byBlbmQ7CiAgICAgfQogCiAgICAg LyogZ2V0IHBpY3R1cmUgYnVmZmVyICovCi0gICAgaWYgKChyZXQgPSBmZl90aHJlYWRfZ2V0 X2J1ZmZlcihhdmN0eCwgcGljdHVyZSwgMCkpIDwgMCkKKyAgICBpZiAoKCFzLT5oYXNfMl9m aWVsZHMgfHwgIXMtPmlzX3NlY29uZF9maWVsZCkgJiYgKHJldCA9IGZmX3RocmVhZF9nZXRf YnVmZmVyKGF2Y3R4LCBwaWN0dXJlLCAwKSkgPCAwKQogICAgICAgICBnb3RvIGVuZDsKICAg ICBwaWN0dXJlLT5waWN0X3R5cGUgPSBBVl9QSUNUVVJFX1RZUEVfSTsKICAgICBwaWN0dXJl LT5mbGFncyB8PSBBVl9GUkFNRV9GTEFHX0tFWTsKQEAgLTI1MTgsMTcgKzI1NjgsMjAgQEAg c3RhdGljIGludCBqcGVnMjAwMF9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LCBBVkZyYW1lICpwaWN0dXJlLAogCiAgICAgYXZjdHgtPmV4ZWN1dGUyKGF2Y3R4LCBqcGVn MjAwMF9kZWNvZGVfdGlsZSwgcGljdHVyZSwgTlVMTCwgcy0+bnVtWHRpbGVzICogcy0+bnVt WXRpbGVzKTsKIAotICAgIGpwZWcyMDAwX2RlY19jbGVhbnVwKHMpOwotCiAgICAgKmdvdF9m cmFtZSA9IDE7CiAKICAgICBpZiAocy0+YXZjdHgtPnBpeF9mbXQgPT0gQVZfUElYX0ZNVF9Q QUw4KQogICAgICAgICBtZW1jcHkocGljdHVyZS0+ZGF0YVsxXSwgcy0+cGFsZXR0ZSwgMjU2 ICogc2l6ZW9mKHVpbnQzMl90KSk7CiAKLSAgICByZXR1cm4gYnl0ZXN0cmVhbTJfdGVsbCgm cy0+Zyk7CisgICAgcmV0ID0gY29kZXN0cmVhbV9zaXplOwogCiBlbmQ6CiAgICAganBlZzIw MDBfZGVjX2NsZWFudXAocyk7CisKKyAgICAvKiBtYW5hZ2VtZW50IG9mIGZyYW1lcyBoYXZp bmcgMiBzZXBhcmF0ZSBjb2Rlc3RyZWFtcyAqLworICAgIHMtPmlzX3NlY29uZF9maWVsZCA9 IHMtPmhhc18yX2ZpZWxkcyAmJiAhcy0+aXNfc2Vjb25kX2ZpZWxkICYmIHJldCA8IGF2cGt0 LT5zaXplICYmIHJldCA+PSAwOyAvKiBuZXh0IGNhbGwgd2lsbCBoYW5kbGUgdGhlIHNlY29u ZCBmaWVsZCAqLworICAgIHMtPmNvbnN1bWVkID0gcy0+aXNfc2Vjb25kX2ZpZWxkID8gcmV0 IDogMDsKKwogICAgIHJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv anBlZzIwMDBkZWMuaCBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuaAppbmRleCBkMGNhNmU3 YTc5Li41YWU5NGFhZmQ4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmgK KysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oCkBAIC0xMTQsNiArMTE0LDEyIEBAIHR5 cGVkZWYgc3RydWN0IEpwZWcyMDAwRGVjb2RlckNvbnRleHQgewogCiAgICAgLypvcHRpb25z IHBhcmFtZXRlcnMqLwogICAgIGludCAgICAgICAgICAgICByZWR1Y3Rpb25fZmFjdG9yOwor ICAgIAorICAgIC8qIGZpZWxkIGluZm8gKi8KKyAgICBpbnQ4X3QgICAgICAgICAgaGFzXzJf ZmllbGRzOworICAgIGludDhfdCAgICAgICAgICBpc19ib3R0b21fY29kZWRfZmlyc3Q7Cisg ICAgaW50OF90ICAgICAgICAgIGlzX3NlY29uZF9maWVsZDsKKyAgICBpbnQgICAgICAgICAg ICAgY29uc3VtZWQ7CiB9IEpwZWcyMDAwRGVjb2RlckNvbnRleHQ7CiAKICNlbmRpZiAvL0FW Q09ERUNfSlBFRzIwMDBERUNfSApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9wdGhyZWFkX2Zy YW1lLmMgYi9saWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYwppbmRleCA3MWU5OWE1NzI4Li5l M2E4ODE1NjUzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYworKysg Yi9saWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYwpAQCAtMjIxLDYgKzIyMSw5IEBAIHN0YXRp YyBhdHRyaWJ1dGVfYWxpZ25fYXJnIHZvaWQgKmZyYW1lX3dvcmtlcl90aHJlYWQodm9pZCAq YXJnKQogICAgICAgICBhdl9mcmFtZV91bnJlZihwLT5mcmFtZSk7CiAgICAgICAgIHAtPmdv dF9mcmFtZSA9IDA7CiAgICAgICAgIHAtPnJlc3VsdCA9IGNvZGVjLT5jYi5kZWNvZGUoYXZj dHgsIHAtPmZyYW1lLCAmcC0+Z290X2ZyYW1lLCBwLT5hdnBrdCk7CisgICAgICAgIGlmIChw LT5yZXN1bHQgPj0gMCAmJiBhdmN0eC0+ZnJhbWVfd3JhcHBpbmdfZmllbGRfMl9zdXBwb3J0 ZWQpIHsKKyAgICAgICAgICAgIHAtPnJlc3VsdCA9IGNvZGVjLT5jYi5kZWNvZGUoYXZjdHgs IHAtPmZyYW1lLCAmcC0+Z290X2ZyYW1lLCBwLT5hdnBrdCk7CisgICAgICAgIH0KIAogICAg ICAgICBpZiAoKHAtPnJlc3VsdCA8IDAgfHwgIXAtPmdvdF9mcmFtZSkgJiYgcC0+ZnJhbWUt PmJ1ZlswXSkKICAgICAgICAgICAgIGF2X2ZyYW1lX3VucmVmKHAtPmZyYW1lKTsKZGlmZiAt LWdpdCBhL2xpYmF2Zm9ybWF0L214ZmRlYy5jIGIvbGliYXZmb3JtYXQvbXhmZGVjLmMKaW5k ZXggZTQyOTc1ZTdmZC4uYWYzM2Q4Y2FkNCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbXhm ZGVjLmMKKysrIGIvbGliYXZmb3JtYXQvbXhmZGVjLmMKQEAgLTI5NDgsNiArMjk0OCwyMCBA QCBzdGF0aWMgaW50IG14Zl9wYXJzZV9zdHJ1Y3R1cmFsX21ldGFkYXRhKE1YRkNvbnRleHQg Km14ZikKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3dpdGNoICgoKmVz c2VuY2VfY29udGFpbmVyX3VsKVsxNF0pIHsKKyAgICAgICAgICAgICAgICBjYXNlIDM6IC8q IEkxOiBJbnRlcmxhY2VkIEZyYW1lLCAxIGZpZWxkL0tMViAqLworICAgICAgICAgICAgICAg ICAgICBzdC0+Y29kZWNwYXItPmZyYW1lX3dyYXBwaW5nID0gQVZfV1JBUFBJTkdfRklFTERf MTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA0 OiAvKiBJMjogSW50ZXJsYWNlZCBGcmFtZSwgMiBmaWVsZHMvS0xWICovCisgICAgICAgICAg ICAgICAgICAgIHN0LT5jb2RlY3Bhci0+ZnJhbWVfd3JhcHBpbmcgPSBBVl9XUkFQUElOR19G SUVMRF8yOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj YXNlIDI6IC8qIENuOiBDbGlwLSB3cmFwcGVkIFBpY3R1cmUgRWxlbWVudCAqLworICAgICAg ICAgICAgICAgIGNhc2UgNjogLyogUDE6IEZyYW1lLSB3cmFwcGVkIFBpY3R1cmUgRWxlbWVu dCAqLworICAgICAgICAgICAgICAgICAgICBzdC0+Y29kZWNwYXItPmZyYW1lX3dyYXBwaW5n ID0gQVZfV1JBUFBJTkdfRlJBTUU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHN0LT5j b2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfUFJPUkVTKSB7Ci0tIAoyLjEzLjMu d2luZG93cy4xCgo= --------------TPzD6acl2LC3O0nBCzFnSWjs 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". --------------TPzD6acl2LC3O0nBCzFnSWjs--