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 D03F442F9C for ; Tue, 14 Mar 2023 09:52:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13ABA68BBFC; Tue, 14 Mar 2023 11:52:22 +0200 (EET) Received: from 9.mo575.mail-out.ovh.net (9.mo575.mail-out.ovh.net [46.105.78.111]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4215D689F0A for ; Tue, 14 Mar 2023 11:52:16 +0200 (EET) Received: from director3.ghost.mail-out.ovh.net (unknown [10.109.156.73]) by mo575.mail-out.ovh.net (Postfix) with ESMTP id 967C22553F for ; Tue, 14 Mar 2023 09:52:15 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-lvhhh (unknown [10.110.115.95]) by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 240241FE30 for ; Tue, 14 Mar 2023 09:52:15 +0000 (UTC) Received: from mediaarea.net ([37.59.142.95]) by ghost-submission-6684bf9d7b-lvhhh with ESMTPSA id oQ8OBM9DEGRcqAAA+J/UXQ (envelope-from ) for ; Tue, 14 Mar 2023 09:52:15 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-95G0013dd23b6d-5a1f-48af-a53c-37759c972b71, 3ADEB190F508FB2DE8A7FDBDA22CEB0FF2B1AA67) smtp.auth=zen-lists@mediaarea.net X-OVh-ClientIp: 84.143.152.64 Content-Type: multipart/mixed; boundary="------------0PL5Rd5luWrO0iZm4Uq672Nn" Message-ID: <0b6c3856-082c-cb33-e07c-3adf0502b93c@mediaarea.net> Date: Tue, 14 Mar 2023 10:52:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <068476d4-1430-27bb-83c4-3a160d022596@mediaarea.net> <09775b73ab48e425f3b557aaa8d5847643ebe9b7.camel@haerdin.se> From: Jerome Martinez In-Reply-To: <09775b73ab48e425f3b557aaa8d5847643ebe9b7.camel@haerdin.se> X-Ovh-Tracer-Id: 4886124121399986425 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvhedrvddviedgtdelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucenucfjughrpegtkfffgggfuffvfhfhjgesmhdtreertdefjeenucfhrhhomheplfgvrhhomhgvucforghrthhinhgviicuoehjvghrohhmvgesmhgvughirggrrhgvrgdrnhgvtheqnecuggftrfgrthhtvghrnhepgeelgfelieevgfdvgfevkeeivddvkeejteeugffgvdehheejheekueegvdejhfdunecukfhppeduvdejrddtrddtrddupdefjedrheelrddugedvrdelheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepoehjvghrohhmvgesmhgvughirggrrhgvrgdrnhgvtheqpdhnsggprhgtphhtthhopedupdhrtghpthhtohepfhhfmhhpvghgqdguvghvvghlsehffhhmphgvghdrohhrghdpoffvtefjohhsthepmhhoheejhedpmhhouggvpehsmhhtphhouhht Subject: Re: [FFmpeg-devel] avformat/mxfenc: SMPTE RDD 48:2018 Amd 1:2022 (FFV1 in MXF) support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------0PL5Rd5luWrO0iZm4Uq672Nn Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 31/01/2023 15:53, Tomas Härdin wrote: > sön 2023-01-29 klockan 11:36 -0500 skrev Dave Rice: >> >>> On Jan 20, 2023, at 10:17 AM, Tomas Härdin wrote: >>> >>> ons 2023-01-18 klockan 15:15 +0100 skrev Jerome Martinez: >>>> On 18/01/2023 14:40, Tomas Härdin wrote: >>>>> Creating a new subthread because I just noticed something >>>> I am a bit lost there because the line of code below is not part >>>> of >>>> this >>>> FFV1 patch. >>>> Additionally, none on my patches (FFV1 of MXF >>>> stored/sampled/displayed >>>> fix) modifies the discussed behavior (FFmpeg behavior would be >>>> same >>>> before and after this patch for MPEG-2 and AVC), so should not >>>> block >>>> any >>>> of them, and a potential fix for that should have its own patch >>>> as it >>>> would be a separate issue. >>> True, it doesn't need to hold up this patch. But some discussion is >>> warranted I think. I might create a separate patchset for this. >>> >>>> Anyway: >>>> >>>> >>>>>> +    //Stored height >>>>>>       mxf_write_local_tag(s, 4, 0x3202); >>>>>>       avio_wb32(pb, stored_height>>sc->interlaced); >>>>>> >>>>> Won't this be incorrect for files whose dimensions are >>>>> multiples of >>>>> 16 >>>>> but not multiples of 32? Isn't each field stored separately >>>>> with >>>>> dimensions a multiple of 16? So while for 1080p we'll have >>>>> >>>>>    StoredHeight = 1088 >>>>>    SampledHeight = 1080 >>>>> >>>>> and 1080i: >>>>> >>>>>    StoredHeight = 544 >>>>>    SampledHeight = 540 >>>>> >>>>> Where 544 is a multiple of 16, for say 720p we have >>>>> >>>>>    StoredHeight = 720 >>>>>    SampledHeight = 720 >>>>> >>>>> but for a hypothetical 720i we'd get >>>>> >>>>>    StoredHeight = 360 >>>>>    SampledHeight = 360 >>>>> >>>>> whereas the correct values should be >>>>> >>>>>    StoredHeight = 368 >>>>>    SampledHeight = 360 >>>> AFAIK, it would depend about if the stream has a >>>> picture_structure >>>> frame >>>> (16x16 applies to the frame?) of field (16x16 applies to the >>>> field?), >>>> but I really don't know enough there for having a relevant >>>> opinion. >>>> >>>> I can just say that I don't change the behavior of FFmpeg in your >>>> use >>>> case, I found the issues when I tried a random width and height >>>> of >>>> FFV1 >>>> stream then checked with MPEG-2 Video and the sampled width was >>>> wrong >>>> for sure e.g. sampled width of 1920 for a stream having a width >>>> of >>>> 1912, >>>> with current FFmpeg code, and for your use case I am sure about >>>> nothing >>>> so I don't change the behavior with my patch, IMO if there is an >>>> issue >>>> with 720i MPEG-2 Video it should be in a separate topic and patch >>>> as >>>> it >>>> would modify the "stored_height = (st->codecpar- >>>>> height+15)/16*16" >>>> current code (in my patch I just move this code), unless we are >>>> sure >>>> of >>>> what should be changed on this side and apply a fix on the way. >>>> Better >>>> to fix 1 issue and let 1 open with no change than fixing no issue >>>> because we wouldn't be sure for 1 of the 2. >>> I suspect we are lucky because 720i doesn't really exist in the >>> real >>> world, and 576i and 480i are both multiples of 32. >>> >>> IMO mxfenc shouldn't lie, but looking at S377m StoredWidth/Height >>> are >>> "best effort" and thus shall be encoded. Their values will depend >>> on >>> FrameLayout which in turn depends on what you say - how exactly the >>> interlacing is done. >>> >>> TL;DR: this patchset doesn't need to be held up by this. >> I'm just nudging on the consideration of merging this patch. I've >> been testing it over the last week with ffv1/mxf content and have >> found this demuxing support very helpful. > Surely you mean muxing? > > Some FATE tests would be nice. Apologizes for the huge delay. Attached is an updated patch with a FATE test. Jérôme --------------0PL5Rd5luWrO0iZm4Uq672Nn Content-Type: text/plain; charset=UTF-8; name="0001-avformat-mxfenc-SMPTE-RDD-48-2018-Amd-1-2022-support.patch" Content-Disposition: attachment; filename*0="0001-avformat-mxfenc-SMPTE-RDD-48-2018-Amd-1-2022-support.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmZWM0YjkxOGRkNmU2YTA2N2VhZWIyY2QyN2Y1ZTQyYzA4ZGNjYTJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvbWUgTWFydGluZXogPGplcm9tZUBtZWRpYWFy ZWEubmV0PgpEYXRlOiBUdWUsIDE0IE1hciAyMDIzIDA5OjQ5OjE2ICswMTAwClN1YmplY3Q6 IFtQQVRDSF0gYXZmb3JtYXQvbXhmZW5jOiBTTVBURSBSREQgNDg6MjAxOCBBbWQgMToyMDIy IHN1cHBvcnQKCi0tLQogbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgICAgICAgfCAgIDMgKy0K IGxpYmF2Zm9ybWF0L214ZmVuYy5jICAgICAgICAgIHwgMTYzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLQogbGliYXZmb3JtYXQvcmFuZ2Vjb2Rlcl9kZWMu YyAgfCAgIDEgKwogdGVzdHMvZmF0ZS9sYXZmLWNvbnRhaW5lci5tYWsgfCAgIDIgKwogdGVz dHMvcmVmL2xhdmYvbXhmX2ZmdjEgICAgICAgfCAgIDMgKwogNSBmaWxlcyBjaGFuZ2VkLCAx NjkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWJhdmZvcm1hdC9yYW5nZWNvZGVyX2RlYy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv cmVmL2xhdmYvbXhmX2ZmdjEKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9NYWtlZmlsZSBi L2xpYmF2Zm9ybWF0L01ha2VmaWxlCmluZGV4IDQ3YmJiYmZiMmEuLjA0ODY0OTY4OWIgMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCisrKyBiL2xpYmF2Zm9ybWF0L01ha2Vm aWxlCkBAIC03MTIsNyArNzEyLDggQEAgU0hMSUJPQkpTLSQoQ09ORklHX0hMU19ERU1VWEVS KSAgICAgICAgICArPSBhYzNfY2hhbm5lbF9sYXlvdXRfdGFiLm8KIFNITElCT0JKUy0kKENP TkZJR19NQVRST1NLQV9ERU1VWEVSKSAgICAgKz0gbXBlZzRhdWRpb19zYW1wbGVfcmF0ZXMu bwogU0hMSUJPQkpTLSQoQ09ORklHX01PVl9ERU1VWEVSKSAgICAgICAgICArPSBhYzNfY2hh bm5lbF9sYXlvdXRfdGFiLm8KIFNITElCT0JKUy0kKENPTkZJR19NUDNfTVVYRVIpICAgICAg ICAgICAgKz0gbXBlZ2F1ZGlvdGFicy5vCi1TSExJQk9CSlMtJChDT05GSUdfTVhGX01VWEVS KSAgICAgICAgICAgICs9IGdvbG9tYl90YWIubworU0hMSUJPQkpTLSQoQ09ORklHX01YRl9N VVhFUikgICAgICAgICAgICArPSBnb2xvbWJfdGFiLm8gXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZWNvZGVyX2RlYy5vCiBTSExJQk9CSlMt JChDT05GSUdfTlVUX01VWEVSKSAgICAgICAgICAgICs9IG1wZWdhdWRpb3RhYnMubwogU0hM SUJPQkpTLSQoQ09ORklHX1JUUERFQykgICAgICAgICAgICAgICArPSBqcGVndGFibGVzLm8K IFNITElCT0JKUy0kKENPTkZJR19SVFBfTVVYRVIpICAgICAgICAgICAgKz0gZ29sb21iX3Rh Yi5vIGpwZWd0YWJsZXMubyBcCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9teGZlbmMuYyBi L2xpYmF2Zm9ybWF0L214ZmVuYy5jCmluZGV4IGEyOWQ2NzgwOTguLjBmZjU2NmZiYjQgMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L214ZmVuYy5jCisrKyBiL2xpYmF2Zm9ybWF0L214ZmVu Yy5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAibGliYXZjb2RlYy9nb2xvbWIuaCIK ICNpbmNsdWRlICJsaWJhdmNvZGVjL2gyNjQuaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL3Bh Y2tldF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvcmFuZ2Vjb2Rlci5oIgog I2luY2x1ZGUgImxpYmF2Y29kZWMvc3RhcnRjb2RlLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQu aCIKICNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCkBAIC0xMDIsNiArMTAzLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgTVhGU3RyZWFtQ29udGV4dCB7CiAgICAgaW50IGJfcGljdHVyZV9jb3Vu dDsgICAgIC8vLzwgbWF4aW11bSBudW1iZXIgb2YgY29uc2VjdXRpdmUgYiBwaWN0dXJlcywg dXNlZCBpbiBtcGVnLTIgZGVzY3JpcHRvcgogICAgIGludCBsb3dfZGVsYXk7ICAgICAgICAg ICAvLy88IGxvdyBkZWxheSwgdXNlZCBpbiBtcGVnLTIgZGVzY3JpcHRvcgogICAgIGludCBh dmNfaW50cmE7CisgICAgaW50IG1pY3JvX3ZlcnNpb247ICAgICAgIC8vLzwgZm9ybWF0IG1p Y3JvX3ZlcnNpb24sIHVzZWQgaW4gZmZ2MSBkZXNjcmlwdG9yCiB9IE1YRlN0cmVhbUNvbnRl eHQ7CiAKIHR5cGVkZWYgc3RydWN0IE1YRkNvbnRhaW5lckVzc2VuY2VFbnRyeSB7CkBAIC0x MzAsNiArMTMyLDcgQEAgZW51bSBVTEluZGV4IHsKICAgICBJTkRFWF9IMjY0LAogICAgIElO REVYX1M0MzZNLAogICAgIElOREVYX1BST1JFUywKKyAgICBJTkRFWF9GRlYxLAogfTsKIAog c3RhdGljIGNvbnN0IHN0cnVjdCB7CkBAIC0xNDQsNiArMTQ3LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB7CiAgICAgeyBBVl9DT0RFQ19JRF9KUEVHMjAwMCwgICBJTkRFWF9KUEVHMjAw MCB9LAogICAgIHsgQVZfQ09ERUNfSURfSDI2NCwgICAgICAgSU5ERVhfSDI2NCB9LAogICAg IHsgQVZfQ09ERUNfSURfUFJPUkVTLCAgICAgSU5ERVhfUFJPUkVTIH0sCisgICAgeyBBVl9D T0RFQ19JRF9GRlYxLCAgICAgICBJTkRFWF9GRlYxIH0sCiAgICAgeyBBVl9DT0RFQ19JRF9O T05FIH0KIH07CiAKQEAgLTE1MSw2ICsxNTUsNyBAQCBzdGF0aWMgdm9pZCBteGZfd3JpdGVf d2F2X2Rlc2MoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QpOwogc3RhdGljIHZv aWQgbXhmX3dyaXRlX2FlczNfZGVzYyhBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpz dCk7CiBzdGF0aWMgdm9pZCBteGZfd3JpdGVfbXBlZ3ZpZGVvX2Rlc2MoQVZGb3JtYXRDb250 ZXh0ICpzLCBBVlN0cmVhbSAqc3QpOwogc3RhdGljIHZvaWQgbXhmX3dyaXRlX2gyNjRfZGVz YyhBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCk7CitzdGF0aWMgdm9pZCBteGZf d3JpdGVfZmZ2MV9kZXNjKEFWRm9ybWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0KTsKIHN0 YXRpYyB2b2lkIG14Zl93cml0ZV9jZGNpX2Rlc2MoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0 cmVhbSAqc3QpOwogc3RhdGljIHZvaWQgbXhmX3dyaXRlX2dlbmVyaWNfc291bmRfZGVzYyhB VkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCk7CiBzdGF0aWMgdm9pZCBteGZfd3Jp dGVfczQzNm1fYW5jX2Rlc2MoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QpOwpA QCAtMjA4LDYgKzIxMywxMSBAQCBzdGF0aWMgY29uc3QgTVhGQ29udGFpbmVyRXNzZW5jZUVu dHJ5IG14Zl9lc3NlbmNlX2NvbnRhaW5lcl91bHNbXSA9IHsKICAgICAgIHsgMHgwNiwweDBF LDB4MkIsMHgzNCwweDAxLDB4MDIsMHgwMSwweDAxLDB4MGQsMHgwMSwweDAzLDB4MDEsMHgx NSwweDAxLDB4MTcsMHgwMCB9LAogICAgICAgeyAweDA2LDB4MEUsMHgyQiwweDM0LDB4MDQs MHgwMSwweDAxLDB4MGQsMHgwNCwweDAxLDB4MDIsMHgwMiwweDAzLDB4MDYsMHgwMywweDAw IH0sCiAgICAgICBteGZfd3JpdGVfY2RjaV9kZXNjIH0sCisgICAgLy8gRkZWMQorICAgIHsg eyAweDA2LDB4MEUsMHgyQiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwZCwweDAxLDB4 MDMsMHgwMSwweDAyLDB4MjMsMHgwMSwweDAwIH0sCisgICAgICB7IDB4MDYsMHgwRSwweDJC LDB4MzQsMHgwMSwweDAyLDB4MDEsMHgwMSwweDBkLDB4MDEsMHgwMywweDAxLDB4MTUsMHgw MSwweDFkLDB4MDAgfSwKKyAgICAgIHsgMHgwNiwweDBFLDB4MkIsMHgzNCwweDA0LDB4MDEs MHgwMSwweDBkLDB4MDQsMHgwMSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDAsMHgwMCB9LAor ICAgICAgbXhmX3dyaXRlX2ZmdjFfZGVzYyB9LAogICAgIHsgeyAweDAwLDB4MDAsMHgwMCww eDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs MHgwMCwweDAwIH0sCiAgICAgICB7IDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4 MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKICAg ICAgIHsgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LApAQCAtMjMyLDYgKzI0MiwxNSBA QCBzdGF0aWMgY29uc3QgVUlEIG14Zl9kMTBfY29udGFpbmVyX3Vsc1tdID0gewogICAgIHsg MHgwNiwweDBFLDB4MkIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDAxLDB4MEQsMHgwMSwweDAz LDB4MDEsMHgwMiwweDAxLDB4MDYsMHgwMSB9LCAvLyBELTEwIDUyNS81MCBOVFNDIDMwbWIv cwogfTsKIAorCitzdGF0aWMgY29uc3QgVUlEIG14Zl9mZnYxX2NvZGVjX3Vsc1tdID0gewor ICAgIHsgMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBELDB4MDQsMHgw MSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDEsMHgwMCB9LCAvLyBGRlYxIHZlcnNpb24gMAor ICAgIHsgMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBELDB4MDQsMHgw MSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDIsMHgwMCB9LCAvLyBGRlYxIHZlcnNpb24gMQor ICAgIHsgMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBELDB4MDQsMHgw MSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDMsMHgwMCB9LCAvLyBGRlYxIHZlcnNpb24gMiAo d2FzIG9ubHkgZXhwZXJpbWVudGFsKQorICAgIHsgMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0 LDB4MDEsMHgwMSwweDBELDB4MDQsMHgwMSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDQsMHgw MCB9LCAvLyBGRlYxIHZlcnNpb24gMworICAgIHsgMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0 LDB4MDEsMHgwMSwweDBELDB4MDQsMHgwMSwweDAyLDB4MDIsMHgwMywweDA5LDB4MDUsMHgw MCB9LCAvLyBGRlYxIHZlcnNpb24gNAorfTsKKwogc3RhdGljIGNvbnN0IHVpbnQ4X3QgcHJv ZHVjdF91aWRbXSAgICAgICAgICA9IHsgMHhBRCwweEFCLDB4NDQsMHgyNCwweDJmLDB4MjUs MHg0ZCwweGM3LDB4OTIsMHhmZiwweDI5LDB4YmQsMHgwMCwweDBjLDB4MDAsMHgwMn07CiBz dGF0aWMgY29uc3QgdWludDhfdCB1dWlkX2Jhc2VbXSAgICAgICAgICAgID0geyAweEFELDB4 QUIsMHg0NCwweDI0LDB4MmYsMHgyNSwweDRkLDB4YzcsMHg5MiwweGZmIH07CiBzdGF0aWMg Y29uc3QgdWludDhfdCB1bWlkX3VsW10gICAgICAgICAgICAgID0geyAweDA2LDB4MEEsMHgy QiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MDUsMHgwMSwweDAxLDB4MEQsMHgwMCwweDEzIH07 CkBAIC0zOTAsNiArNDA5LDEwIEBAIHN0YXRpYyBjb25zdCBNWEZMb2NhbFRhZ1BhaXIgbXhm X2xvY2FsX3RhZ19iYXRjaFtdID0gewogICAgIHsgMHg4MzAyLCBGRl9NWEZfTWFzdGVyaW5n RGlzcGxheVdoaXRlUG9pbnRDaHJvbWF0aWNpdHkgfSwKICAgICB7IDB4ODMwMywgRkZfTVhG X01hc3RlcmluZ0Rpc3BsYXlNYXhpbXVtTHVtaW5hbmNlIH0sCiAgICAgeyAweDgzMDQsIEZG X01YRl9NYXN0ZXJpbmdEaXNwbGF5TWluaW11bUx1bWluYW5jZSB9LAorICAgIC8vIEZGVjEK KyAgICB7IDB4REZEOSwgezB4MDYsMHgwRSwweDJCLDB4MzQsMHgwMSwweDAxLDB4MDEsMHgw RSwweDA0LDB4MDEsMHgwNiwweDBDLDB4MDYsMHgwMCwweDAwLDB4MDB9fSwgLyogRkZWMSBN aWNyby12ZXJzaW9uICovCisgICAgeyAweERGREEsIHsweDA2LDB4MEUsMHgyQiwweDM0LDB4 MDEsMHgwMSwweDAxLDB4MEUsMHgwNCwweDAxLDB4MDYsMHgwQywweDA1LDB4MDAsMHgwMCww eDAwfX0sIC8qIEZGVjEgVmVyc2lvbiAqLworICAgIHsgMHhERkRCLCB7MHgwNiwweDBFLDB4 MkIsMHgzNCwweDAxLDB4MDEsMHgwMSwweDBFLDB4MDQsMHgwMSwweDA2LDB4MEMsMHgwMSww eDAwLDB4MDAsMHgwMH19LCAvKiBGRlYxIEluaXRpYWxpemF0aW9uIE1ldGFkYXRhICovCiB9 OwogCiAjZGVmaW5lIE1YRl9OVU1fVEFHUyBGRl9BUlJBWV9FTEVNUyhteGZfbG9jYWxfdGFn X2JhdGNoKQpAQCAtNTI2LDcgKzU0OSw3IEBAIHN0YXRpYyB2b2lkIG14Zl93cml0ZV9wcmlt ZXJfcGFjayhBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgTVhGQ29udGV4dCAqbXhmID0gcy0+ cHJpdl9kYXRhOwogICAgIEFWSU9Db250ZXh0ICpwYiA9IHMtPnBiOwogICAgIGludCBsb2Nh bF90YWdfbnVtYmVyID0gTVhGX05VTV9UQUdTLCBpOwotICAgIGludCB3aWxsX2hhdmVfYXZj X3RhZ3MgPSAwLCB3aWxsX2hhdmVfbWFzdGVyaW5nX3RhZ3MgPSAwOworICAgIGludCB3aWxs X2hhdmVfYXZjX3RhZ3MgPSAwLCB3aWxsX2hhdmVfbWFzdGVyaW5nX3RhZ3MgPSAwLCB3aWxs X2hhdmVfZmZ2MV90YWdzID0gMDsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uYl9zdHJl YW1zOyBpKyspIHsKICAgICAgICAgTVhGU3RyZWFtQ29udGV4dCAqc2MgPSBzLT5zdHJlYW1z W2ldLT5wcml2X2RhdGE7CkBAIC01MzYsNiArNTU5LDkgQEAgc3RhdGljIHZvaWQgbXhmX3dy aXRlX3ByaW1lcl9wYWNrKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgaWYgKGF2X3N0 cmVhbV9nZXRfc2lkZV9kYXRhKHMtPnN0cmVhbXNbaV0sIEFWX1BLVF9EQVRBX01BU1RFUklO R19ESVNQTEFZX01FVEFEQVRBLCBOVUxMKSkgewogICAgICAgICAgICAgd2lsbF9oYXZlX21h c3RlcmluZ190YWdzID0gMTsKICAgICAgICAgfQorICAgICAgICBpZiAocy0+c3RyZWFtc1tp XS0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0ZGVjEpIHsKKyAgICAgICAg ICAgIHdpbGxfaGF2ZV9mZnYxX3RhZ3MgPSAxOworICAgICAgICB9CiAgICAgfQogCiAgICAg aWYgKCFteGYtPnN0b3JlX3VzZXJfY29tbWVudHMpIHsKQEAgLTU0NCw4ICs1NzAsMTEgQEAg c3RhdGljIHZvaWQgbXhmX3dyaXRlX3ByaW1lcl9wYWNrKEFWRm9ybWF0Q29udGV4dCAqcykK ICAgICAgICAgbXhmX21hcmtfdGFnX3VudXNlZChteGYsIDB4NTAwMyk7CiAgICAgfQogCi0g ICAgaWYgKCF3aWxsX2hhdmVfYXZjX3RhZ3MpIHsKKyAgICBpZiAoIXdpbGxfaGF2ZV9hdmNf dGFncyAmJiAhd2lsbF9oYXZlX2ZmdjFfdGFncykgewogICAgICAgICBteGZfbWFya190YWdf dW51c2VkKG14ZiwgMHg4MTAwKTsKKyAgICB9CisKKyAgICBpZiAoIXdpbGxfaGF2ZV9hdmNf dGFncykgewogICAgICAgICBteGZfbWFya190YWdfdW51c2VkKG14ZiwgMHg4MjAwKTsKICAg ICAgICAgbXhmX21hcmtfdGFnX3VudXNlZChteGYsIDB4ODIwMSk7CiAgICAgICAgIG14Zl9t YXJrX3RhZ191bnVzZWQobXhmLCAweDgyMDIpOwpAQCAtNTU4LDYgKzU4NywxMiBAQCBzdGF0 aWMgdm9pZCBteGZfd3JpdGVfcHJpbWVyX3BhY2soQVZGb3JtYXRDb250ZXh0ICpzKQogICAg ICAgICBteGZfbWFya190YWdfdW51c2VkKG14ZiwgMHg4MzA0KTsKICAgICB9CiAKKyAgICBp ZiAoIXdpbGxfaGF2ZV9mZnYxX3RhZ3MpIHsKKyAgICAgICAgbXhmX21hcmtfdGFnX3VudXNl ZChteGYsIDB4REZEOSk7CisgICAgICAgIG14Zl9tYXJrX3RhZ191bnVzZWQobXhmLCAweERG REEpOworICAgICAgICBteGZfbWFya190YWdfdW51c2VkKG14ZiwgMHhERkRCKTsKKyAgICB9 CisKICAgICBmb3IgKGkgPSAwOyBpIDwgTVhGX05VTV9UQUdTOyBpKyspIHsKICAgICAgICAg aWYgKG14Zi0+dW51c2VkX3RhZ3NbaV0pIHsKICAgICAgICAgICAgIGxvY2FsX3RhZ19udW1i ZXItLTsKQEAgLTEwOTQsOSArMTEyOSwxMSBAQCBzdGF0aWMgY29uc3QgVUlEIG14Zl9tcGVn dmlkZW9fZGVzY3JpcHRvcl9rZXkgPSB7IDB4MDYsMHgwRSwweDJCLDB4MzQsMHgwMiwweDUz LAogc3RhdGljIGNvbnN0IFVJRCBteGZfd2F2X2Rlc2NyaXB0b3Jfa2V5ICAgICAgID0geyAw eDA2LDB4MEUsMHgyQiwweDM0LDB4MDIsMHg1MywweDAxLDB4MDEsMHgwZCwweDAxLDB4MDEs MHgwMSwweDAxLDB4MDEsMHg0OCwweDAwIH07CiBzdGF0aWMgY29uc3QgVUlEIG14Zl9hZXMz X2Rlc2NyaXB0b3Jfa2V5ICAgICAgPSB7IDB4MDYsMHgwRSwweDJCLDB4MzQsMHgwMiwweDUz LDB4MDEsMHgwMSwweDBkLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDQ3LDB4MDAgfTsK IHN0YXRpYyBjb25zdCBVSUQgbXhmX2NkY2lfZGVzY3JpcHRvcl9rZXkgICAgICA9IHsgMHgw NiwweDBFLDB4MkIsMHgzNCwweDAyLDB4NTMsMHgwMSwweDAxLDB4MEQsMHgwMSwweDAxLDB4 MDEsMHgwMSwweDAxLDB4MjgsMHgwMCB9Oworc3RhdGljIGNvbnN0IFVJRCBteGZfcmdiYV9k ZXNjcmlwdG9yX2tleSAgICAgID0geyAweDA2LDB4MEUsMHgyQiwweDM0LDB4MDIsMHg1Myww eDAxLDB4MDEsMHgwRCwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgyOSwweDAwIH07CiBz dGF0aWMgY29uc3QgVUlEIG14Zl9nZW5lcmljX3NvdW5kX2Rlc2NyaXB0b3Jfa2V5ID0geyAw eDA2LDB4MEUsMHgyQiwweDM0LDB4MDIsMHg1MywweDAxLDB4MDEsMHgwRCwweDAxLDB4MDEs MHgwMSwweDAxLDB4MDEsMHg0MiwweDAwIH07CiAKIHN0YXRpYyBjb25zdCBVSUQgbXhmX2F2 Y19zdWJkZXNjcmlwdG9yX2tleSA9IHsgMHgwNiwweDBFLDB4MkIsMHgzNCwweDAyLDB4NTMs MHgwMSwweDAxLDB4MGQsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4NkUsMHgwMCB9Owor c3RhdGljIGNvbnN0IFVJRCBteGZfZmZ2MV9zdWJkZXNjcmlwdG9yX2tleSA9IHsgMHgwNiww eDBFLDB4MkIsMHgzNCwweDAyLDB4NTMsMHgwMSwweDAxLDB4MGQsMHgwMSwweDAxLDB4MDEs MHgwMSwweDAxLDB4ODEsMHgwMyB9OwogCiBzdGF0aWMgaW5saW5lIHVpbnQxNl90IHJlc2Nh bGVfbWFzdGVyaW5nX2Nocm9tYShBVlJhdGlvbmFsIHEpCiB7CkBAIC0xMTk4LDYgKzEyMzUs NyBAQCBzdGF0aWMgaW50NjRfdCBteGZfd3JpdGVfY2RjaV9jb21tb24oQVZGb3JtYXRDb250 ZXh0ICpzLCBBVlN0cmVhbSAqc3QsIGNvbnN0IFVJRAogICAgICAgICBhdmlvX3diMzIocGIs IC0oKHN0LT5jb2RlY3Bhci0+aGVpZ2h0IC0gZGlzcGxheV9oZWlnaHQpJjEpKTsKICAgICB9 CiAKKyAgICBpZiAoa2V5ICE9IG14Zl9yZ2JhX2Rlc2NyaXB0b3Jfa2V5KSB7CiAgICAgLy8g Y29tcG9uZW50IGRlcHRoCiAgICAgbXhmX3dyaXRlX2xvY2FsX3RhZyhzLCA0LCAweDMzMDEp OwogICAgIGF2aW9fd2IzMihwYiwgc2MtPmNvbXBvbmVudF9kZXB0aCk7CkBAIC0xMjM0LDYg KzEyNzIsNyBAQCBzdGF0aWMgaW50NjRfdCBteGZfd3JpdGVfY2RjaV9jb21tb24oQVZGb3Jt YXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QsIGNvbnN0IFVJRAogICAgICAgICBteGZfd3Jp dGVfbG9jYWxfdGFnKHMsIDQsIDB4MzMwNik7CiAgICAgICAgIGF2aW9fd2IzMihwYiwgY29s b3IpOwogICAgIH0KKyAgICB9IC8vIGlmIChrZXkgIT0gbXhmX3JnYmFfZGVzY3JpcHRvcl9r ZXkpCiAKICAgICBpZiAoc2MtPnNpZ25hbF9zdGFuZGFyZCkgewogICAgICAgICBteGZfd3Jp dGVfbG9jYWxfdGFnKHMsIDEsIDB4MzIxNSk7CkBAIC0xMzI5LDYgKzEzNjgsMTMgQEAgc3Rh dGljIGludDY0X3QgbXhmX3dyaXRlX2NkY2lfY29tbW9uKEFWRm9ybWF0Q29udGV4dCAqcywg QVZTdHJlYW0gKnN0LCBjb25zdCBVSUQKICAgICAgICAgbXhmX3dyaXRlX3V1aWQocGIsIEFW Q1N1YkRlc2NyaXB0b3IsIDApOwogICAgIH0KIAorICAgIGlmIChzdC0+Y29kZWNwYXItPmNv ZGVjX2lkID09IEFWX0NPREVDX0lEX0ZGVjEpIHsKKyAgICAgICAgLy8gd3JpdGUgZmZ2MSBz dWIgZGVzY3JpcHRvciByZWYKKyAgICAgICAgbXhmX3dyaXRlX2xvY2FsX3RhZyhzLCA4ICsg MTYsIDB4ODEwMCk7CisgICAgICAgIG14Zl93cml0ZV9yZWZzX2NvdW50KHBiLCAxKTsKKyAg ICAgICAgbXhmX3dyaXRlX3V1aWQocGIsIEZGVjFTdWJEZXNjcmlwdG9yLCAwKTsKKyAgICB9 CisKICAgICByZXR1cm4gcG9zOwogfQogCkBAIC0xMzg3LDYgKzE0MzMsNDcgQEAgc3RhdGlj IHZvaWQgbXhmX3dyaXRlX2gyNjRfZGVzYyhBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFt ICpzdCkKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIG14Zl93cml0ZV9mZnYxX3N1YmRlc2Mo QVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QpCit7CisgICAgQVZJT0NvbnRleHQg KnBiID0gcy0+cGI7CisgICAgTVhGU3RyZWFtQ29udGV4dCAqc2MgPSBzdC0+cHJpdl9kYXRh OworICAgIGludDY0X3QgcG9zOworCisgICAgYXZpb193cml0ZShwYiwgbXhmX2ZmdjFfc3Vi ZGVzY3JpcHRvcl9rZXksIDE2KTsKKyAgICBrbHZfZW5jb2RlX2JlcjRfbGVuZ3RoKHBiLCAw KTsKKyAgICBwb3MgPSBhdmlvX3RlbGwocGIpOworICAgIAorICAgIG14Zl93cml0ZV9sb2Nh bF90YWcocywgMTYsIDB4M0MwQSk7CisgICAgbXhmX3dyaXRlX3V1aWQocGIsIEZGVjFTdWJE ZXNjcmlwdG9yLCAwKTsKKworICAgIGlmIChzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9zaXpl KSB7CisgICAgICAgIG14Zl93cml0ZV9sb2NhbF90YWcocywgc3QtPmNvZGVjcGFyLT5leHRy YWRhdGFfc2l6ZSwgMHhERkRCKTsKKyAgICAgICAgYXZpb193cml0ZShwYiwgc3QtPmNvZGVj cGFyLT5leHRyYWRhdGEsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUpOyAvLyBGRlYx SW5pdGlhbGl6YXRpb25NZXRhZGF0YQorICAgIH0KKworICAgIG14Zl93cml0ZV9sb2NhbF90 YWcocywgMiwgMHhERkRBKTsKKyAgICBhdmlvX3diMTYocGIsICgqc2MtPmNvZGVjX3VsKVsx NF0pOyAvLyBGRlYxVmVyc2lvbgorCisgICAgaWYgKHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRh X3NpemUpIHsKKyAgICAgICAgbXhmX3dyaXRlX2xvY2FsX3RhZyhzLCAyLCAweERGRDkpOwor ICAgICAgICBhdmlvX3diMTYocGIsIHNjLT5taWNyb192ZXJzaW9uKTsgLy8gRkZWMU1pY3Jv VmVyc2lvbgorICAgIH0KKworICAgIG14Zl91cGRhdGVfa2x2X3NpemUocy0+cGIsIHBvcyk7 Cit9CisKK3N0YXRpYyB2b2lkIG14Zl93cml0ZV9mZnYxX2Rlc2MoQVZGb3JtYXRDb250ZXh0 ICpzLCBBVlN0cmVhbSAqc3QpCit7CisgICAgaW50IGlzX3JnYiwgcG9zOworICAgIGNvbnN0 IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoc3QtPmNv ZGVjcGFyLT5mb3JtYXQpOworICAgIGF2X2Fzc2VydDAoZGVzYyk7CisgICAgaXNfcmdiID0g ZGVzYy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfUkdCOworCisgICAgcG9zID0gbXhmX3dy aXRlX2NkY2lfY29tbW9uKHMsIHN0LCBpc19yZ2IgPyBteGZfcmdiYV9kZXNjcmlwdG9yX2tl eSA6IG14Zl9jZGNpX2Rlc2NyaXB0b3Jfa2V5KTsKKyAgICBteGZfdXBkYXRlX2tsdl9zaXpl KHMtPnBiLCBwb3MpOworICAgIG14Zl93cml0ZV9mZnYxX3N1YmRlc2Mocywgc3QpOworfQor CiBzdGF0aWMgdm9pZCBteGZfd3JpdGVfczQzNm1fYW5jX2Rlc2MoQVZGb3JtYXRDb250ZXh0 ICpzLCBBVlN0cmVhbSAqc3QpCiB7CiAgICAgaW50NjRfdCBwb3MgPSBteGZfd3JpdGVfZ2Vu ZXJpY19kZXNjKHMsIHN0LCBteGZfczQzNm1fYW5jX2Rlc2NyaXB0b3Jfa2V5KTsKQEAgLTIz NDcsNiArMjQzNCw3MyBAQCBzdGF0aWMgaW50IG14Zl9wYXJzZV9oMjY0X2ZyYW1lKEFWRm9y bWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0LAogICAgIHJldHVybiAxOwogfQogCitzdGF0 aWMgaW5saW5lIGludCBnZXRfZmZ2MV91bnNpZ25lZF9zeW1ib2woUmFuZ2VDb2RlciAqYywg dWludDhfdCAqc3RhdGUpIHsKKyAgICBpZihnZXRfcmFjKGMsIHN0YXRlKzApKQorICAgICAg ICByZXR1cm4gMDsKKyAgICBlbHNleworICAgICAgICBpbnQgaSwgZTsKKyAgICAgICAgdW5z aWduZWQgYTsKKyAgICAgICAgZT0gMDsKKyAgICAgICAgd2hpbGUoZ2V0X3JhYyhjLCBzdGF0 ZSsxICsgRkZNSU4oZSw5KSkpeyAvLzEuLjEwCisgICAgICAgICAgICBlKys7CisgICAgICAg ICAgICBpZiAoZSA+IDMxKQorICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOworICAgICAgICB9CisKKyAgICAgICAgYT0gMTsKKyAgICAgICAgZm9yKGk9ZS0x OyBpPj0wOyBpLS0peworICAgICAgICAgICAgYSArPSBhICsgZ2V0X3JhYyhjLCBzdGF0ZSsy MiArIEZGTUlOKGksOSkpOyAvLzIyLi4zMQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu IGE7CisgICAgfQorfQorI2RlZmluZSBGRlYxX0NPTlRFWFRfU0laRSAzMgorc3RhdGljIGlu dCBteGZfcGFyc2VfZmZ2MV9mcmFtZShBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpz dCwgQVZQYWNrZXQgKnBrdCkKK3sKKyAgICBNWEZDb250ZXh0ICpteGYgPSBzLT5wcml2X2Rh dGE7CisgICAgTVhGU3RyZWFtQ29udGV4dCAqc2MgPSBzdC0+cHJpdl9kYXRhOworICAgIHVp bnQ4X3Qgc3RhdGVbRkZWMV9DT05URVhUX1NJWkVdOworICAgIFJhbmdlQ29kZXIgYzsKKyAg ICB1bnNpZ25lZCB2OworCisgICAgc2MtPmZyYW1lX3NpemUgPSBwa3QtPnNpemU7CisKKyAg ICBpZiAobXhmLT5oZWFkZXJfd3JpdHRlbikKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBt ZW1zZXQoc3RhdGUsIDEyOCwgc2l6ZW9mKHN0YXRlKSk7CisgICAgaWYgKHN0LT5jb2RlY3Bh ci0+ZXh0cmFkYXRhKSB7CisgICAgICAgIGZmX2luaXRfcmFuZ2VfZGVjb2RlcigmYywgc3Qt PmNvZGVjcGFyLT5leHRyYWRhdGEsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUpOwor ICAgICAgICBmZl9idWlsZF9yYWNfc3RhdGVzKCZjLCAwLjA1ICogKDFMTCA8PCAzMiksIDI1 NiAtIDgpOworICAgICAgICB2ID0gZ2V0X2ZmdjFfdW5zaWduZWRfc3ltYm9sKCZjLCBzdGF0 ZSk7CisgICAgICAgIGF2X2Fzc2VydDAodiA+PSAyKTsKKyAgICAgICAgaWYgKHYgPiA0KSB7 CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBzYy0+bWljcm9f dmVyc2lvbiA9IGdldF9mZnYxX3Vuc2lnbmVkX3N5bWJvbCgmYywgc3RhdGUpOworICAgIH0g ZWxzZSB7CisgICAgICAgIHVpbnQ4X3Qga2V5c3RhdGUgPSAxMjg7CisgICAgICAgIGZmX2lu aXRfcmFuZ2VfZGVjb2RlcigmYywgcGt0LT5kYXRhLCBwa3QtPnNpemUpOworICAgICAgICBm Zl9idWlsZF9yYWNfc3RhdGVzKCZjLCAwLjA1ICogKDFMTCA8PCAzMiksIDI1NiAtIDgpOwor ICAgICAgICBnZXRfcmFjKCZjLCAma2V5c3RhdGUpOyAvLyBrZXlmcmFtZQorICAgICAgICB2 ID0gZ2V0X2ZmdjFfdW5zaWduZWRfc3ltYm9sKCZjLCBzdGF0ZSk7CisgICAgICAgIGF2X2Fz c2VydDAodiA8IDIpOworICAgIH0KKyAgICBzYy0+Y29kZWNfdWwgPSAmbXhmX2ZmdjFfY29k ZWNfdWxzW3ZdOworICAgIAorICAgIGlmIChzdC0+Y29kZWNwYXItPmZpZWxkX29yZGVyID4g QVZfRklFTERfUFJPR1JFU1NJVkUpIHsKKyAgICAgICAgc2MtPmludGVybGFjZWQgPSAxOwor ICAgICAgICBzYy0+ZmllbGRfZG9taW5hbmNlID0gc3QtPmNvZGVjcGFyLT5maWVsZF9vcmRl ciA9PSAoc3QtPmNvZGVjcGFyLT5maWVsZF9vcmRlciA9PSBBVl9GSUVMRF9UVCB8fCBzdC0+ Y29kZWNwYXItPmZpZWxkX29yZGVyID09IEFWX0ZJRUxEX1RCKSA/IDEgOiAyOworICAgIH0K KyAgICBzYy0+YXNwZWN0X3JhdGlvLm51bSA9IHN0LT5jb2RlY3Bhci0+d2lkdGggKiBzdC0+ Y29kZWNwYXItPnNhbXBsZV9hc3BlY3RfcmF0aW8ubnVtOworICAgIHNjLT5hc3BlY3RfcmF0 aW8uZGVuID0gc3QtPmNvZGVjcGFyLT5oZWlnaHQgKiBzdC0+Y29kZWNwYXItPnNhbXBsZV9h c3BlY3RfcmF0aW8uZGVuOworICAgIGF2X3JlZHVjZSgmc2MtPmFzcGVjdF9yYXRpby5udW0s ICZzYy0+YXNwZWN0X3JhdGlvLmRlbiwKKyAgICAgICAgICAgICAgc2MtPmFzcGVjdF9yYXRp by5udW0sIHNjLT5hc3BlY3RfcmF0aW8uZGVuLCBJTlRfTUFYKTsKKworICAgIHJldHVybiAx OworfQorCiBzdGF0aWMgY29uc3QgVUlEIG14Zl9tcGVnMl9jb2RlY191bHNbXSA9IHsKICAg ICB7IDB4MDYsMHgwRSwweDJCLDB4MzQsMHgwNCwweDAxLDB4MDEsMHgwMywweDA0LDB4MDEs MHgwMiwweDAyLDB4MDEsMHgwMSwweDEwLDB4MDAgfSwgLy8gTVAtTUwgSS1GcmFtZQogICAg IHsgMHgwNiwweDBFLDB4MkIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDAzLDB4MDQsMHgwMSww eDAyLDB4MDIsMHgwMSwweDAxLDB4MTEsMHgwMCB9LCAvLyBNUC1NTCBMb25nIEdPUApAQCAt Mjk1OCw2ICszMTEyLDExIEBAIHN0YXRpYyBpbnQgbXhmX3dyaXRlX3BhY2tldChBVkZvcm1h dENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICBhdl9sb2cocywgQVZf TE9HX0VSUk9SLCAiY291bGQgbm90IGdldCBoMjY0IHByb2ZpbGVcbiIpOwogICAgICAgICAg ICAgcmV0dXJuIC0xOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdC0+Y29kZWNwYXIt PmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0ZGVjEpIHsKKyAgICAgICAgaWYgKCFteGZfcGFy c2VfZmZ2MV9mcmFtZShzLCBzdCwgcGt0KSkgeworICAgICAgICAgICAgYXZfbG9nKHMsIEFW X0xPR19FUlJPUiwgImNvdWxkIG5vdCBnZXQgZmZ2MSB2ZXJzaW9uXG4iKTsKKyAgICAgICAg ICAgIHJldHVybiAtMTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChteGYtPmNicl9p bmRleCkgewpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmFuZ2Vjb2Rlcl9kZWMuYyBiL2xp YmF2Zm9ybWF0L3JhbmdlY29kZXJfZGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uN2I3MjdmNjU2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Zm9ybWF0 L3JhbmdlY29kZXJfZGVjLmMKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgImxpYmF2Y29kZWMv cmFuZ2Vjb2Rlci5jIgpkaWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9sYXZmLWNvbnRhaW5lci5t YWsgYi90ZXN0cy9mYXRlL2xhdmYtY29udGFpbmVyLm1hawppbmRleCA0YmY3NjM2YjU2Li4y MTRhZDZmYzBkIDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL2xhdmYtY29udGFpbmVyLm1hawor KysgYi90ZXN0cy9mYXRlL2xhdmYtY29udGFpbmVyLm1hawpAQCAtOCw2ICs4LDcgQEAgRkFU RV9MQVZGX0NPTlRBSU5FUi0kKGNhbGwgRU5DREVDMiwgTVBFRzQsICAgICAgTVAyLCAgICAg ICBNQVRST1NLQSkgICAgICAgICAgICsKIEZBVEVfTEFWRl9DT05UQUlORVItJChjYWxsIEVO Q0RFQzIsIE1QRUc0LCAgICAgIFBDTV9BTEFXLCAgTU9WKSAgICAgICAgICAgICAgICArPSBt b3YgbW92X3J0cGhpbnQgaXNtdgogRkFURV9MQVZGX0NPTlRBSU5FUi0kKGNhbGwgRU5DREVD LCAgTVBFRzQsICAgICAgICAgICAgICAgICBNT1YpICAgICAgICAgICAgICAgICs9IG1wNAog RkFURV9MQVZGX0NPTlRBSU5FUi0kKGNhbGwgRU5DREVDMiwgTVBFRzFWSURFTywgTVAyLCAg ICAgICBNUEVHMVNZU1RFTSBNUEVHUFMpICs9IG1wZworRkFURV9MQVZGX0NPTlRBSU5FUi0k KGNhbGwgRU5DREVDICwgRkZWMSwgICAgICAgICAgICAgICAgICBNWEYpICAgICAgICAgICAg ICAgICs9IG14Zl9mZnYxCiBGQVRFX0xBVkZfQ09OVEFJTkVSLSQoY2FsbCBFTkNERUMyLCBN UEVHMlZJREVPLCBQQ01fUzE2TEUsIE1YRikgICAgICAgICAgICAgICAgKz0gbXhmIG14Zl9k djI1IG14Zl9kdmNwcm81MAogRkFURV9MQVZGX0NPTlRBSU5FUi0kKGNhbGwgRU5DREVDMiwg TVBFRzJWSURFTywgUENNX1MxNkxFLCBNWEZfRDEwIE1YRikgICAgICAgICs9IG14Zl9kMTAK IEZBVEVfTEFWRl9DT05UQUlORVItJChjYWxsIEVOQ0RFQzIsIEROWEhELCAgICAgIFBDTV9T MTZMRSwgTVhGX09QQVRPTSBNWEYpICAgICArPSBteGZfb3BhdG9tIG14Zl9vcGF0b21fYXVk aW8KQEAgLTU1LDYgKzU2LDcgQEAgZmF0ZS1sYXZmLW14ZjogQ01EID0gbGF2Zl9jb250YWlu ZXJfdGltZWNvZGUgIi1hciA0ODAwMCAtYmYgMiAtdGhyZWFkcyAxIgogZmF0ZS1sYXZmLW14 Zl9kMTA6IENNRCA9IGxhdmZfY29udGFpbmVyICItYXIgNDgwMDAgLWFjIDIiICItciAyNSAt dmYgc2NhbGU9NzIwOjU3NixwYWQ9NzIwOjYwODowOjMyIC1jOnYgbXBlZzJ2aWRlbyAtZyAw IC1mbGFncyAraWxkY3QrbG93X2RlbGF5IC1kYyAxMCAtbm9uX2xpbmVhcl9xdWFudCAxIC1p bnRyYV92bGMgMSAtcXNjYWxlIDEgLXBzIDEgLXFtaW4gMSAtcmNfbWF4X3Zidl91c2UgMSAt cmNfbWluX3Zidl91c2UgMSAtcGl4X2ZtdCB5dXY0MjJwIC1taW5yYXRlIDMwMDAwayAtbWF4 cmF0ZSAzMDAwMGsgLWIgMzAwMDBrIC1idWZzaXplIDEyMDAwMDAgLXRvcCAxIC1yY19pbml0 X29jY3VwYW5jeSAxMjAwMDAwIC1xbWF4IDEyIC1mIG14Zl9kMTAiCiBmYXRlLWxhdmYtbXhm X2R2MjU6IENNRCA9IGxhdmZfY29udGFpbmVyICItYXIgNDgwMDAgLWFjIDIiICItciAyNSAt dmYgc2NhbGU9NzIwOjU3NixzZXRkYXI9NC8zIC1jOnYgZHZ2aWRlbyAtcGl4X2ZtdCB5dXY0 MjBwIC1iIDI1MDAwayAtdG9wIDAgLWYgbXhmIgogZmF0ZS1sYXZmLW14Zl9kdmNwcm81MDog Q01EID0gbGF2Zl9jb250YWluZXIgIi1hciA0ODAwMCAtYWMgMiIgIi1yIDI1IC12ZiBzY2Fs ZT03MjA6NTc2LHNldGRhcj0xNi85IC1jOnYgZHZ2aWRlbyAtcGl4X2ZtdCB5dXY0MjJwIC1i IDUwMDAwayAtdG9wIDAgLWYgbXhmIgorZmF0ZS1sYXZmLW14Zl9mZnYxOiBDTUQgPSBsYXZm X2NvbnRhaW5lciAiLWFuIiAiLXIgMjUgLXZmIHNjYWxlPTcyMDo1NzYsc2V0ZGFyPTQvMyAt Yzp2IGZmdjEgLWxldmVsIDMgLXBpeF9mbXQgeXV2NDIwcCAtZiBteGYiCiBmYXRlLWxhdmYt bXhmX29wYXRvbTogQ01EID0gbGF2Zl9jb250YWluZXIgIiIgIi1zIDE5MjB4MTA4MCAtYzp2 IGRueGhkIC1waXhfZm10IHl1djQyMnAgLXZiIDM2TSAtZiBteGZfb3BhdG9tIC1tYXAgMCIK IGZhdGUtbGF2Zi1teGZfb3BhdG9tX2F1ZGlvOiBDTUQgPSBsYXZmX2NvbnRhaW5lciAiLWFy IDQ4MDAwIC1hYyAxIiAiLWYgbXhmX29wYXRvbSAtbXhmX2F1ZGlvX2VkaXRfcmF0ZSAyNSAt bWFwIDEiCiBmYXRlLWxhdmYtc21qcGVnOiAgQ01EID0gbGF2Zl9jb250YWluZXIgIiIgIi1m IHNtanBlZyIKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9sYXZmL214Zl9mZnYxIGIvdGVzdHMv cmVmL2xhdmYvbXhmX2ZmdjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uYjg5ZTZhMjE0ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3JlZi9sYXZmL214Zl9m ZnYxCkBAIC0wLDAgKzEsMyBAQAorMDQyNmI5M2JiZjA2YWVkZjA4M2YwMGNkNGViYWYzNmYg KnRlc3RzL2RhdGEvbGF2Zi9sYXZmLm14Zl9mZnYxCis1NTg3MDAxIHRlc3RzL2RhdGEvbGF2 Zi9sYXZmLm14Zl9mZnYxCit0ZXN0cy9kYXRhL2xhdmYvbGF2Zi5teGZfZmZ2MSBDUkM9MHgw MjM1NGNkYwotLSAKMi4xMy4zLndpbmRvd3MuMQoK --------------0PL5Rd5luWrO0iZm4Uq672Nn 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". --------------0PL5Rd5luWrO0iZm4Uq672Nn--