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 3486D49879 for ; Tue, 20 Feb 2024 15:07:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2E7F968D04F; Tue, 20 Feb 2024 17:07:51 +0200 (EET) Received: from 10.mo561.mail-out.ovh.net (10.mo561.mail-out.ovh.net [87.98.165.232]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC76768CA50 for ; Tue, 20 Feb 2024 17:07:44 +0200 (EET) Received: from director7.ghost.mail-out.ovh.net (unknown [10.109.140.207]) by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4TfN7N0kZqz1DfN for ; Tue, 20 Feb 2024 15:07:44 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-jcv75 (unknown [10.108.42.79]) by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id B68231FEA5 for ; Tue, 20 Feb 2024 15:07:43 +0000 (UTC) Received: from mediaarea.net ([37.59.142.109]) by ghost-submission-6684bf9d7b-jcv75 with ESMTPSA id HwQtJj/A1GVcIgAAb4k0Qw (envelope-from ) for ; Tue, 20 Feb 2024 15:07:43 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-109S003f67bb642-b3c9-42ca-a8c4-96793b921b34, 6E90ED4FDAF3FD830C96B75AC4258DA9C56E791B) smtp.auth=jerome@mediaarea.net X-OVh-ClientIp: 84.143.155.7 Content-Type: multipart/mixed; boundary="------------ItdHBDtYMgn60z0qYTdVFGCU" Message-ID: Date: Tue, 20 Feb 2024 16:07:43 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US, fr, de-DE To: ffmpeg-devel@ffmpeg.org References: From: Jerome Martinez In-Reply-To: X-Ovh-Tracer-Id: 13853072455705528569 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -6 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvledrfedtgdejfecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecufghrlhcuvffnffculddqiedmnecujfgurheptgfkffggfgfuvfhfhfgjsehmtderredtvdejnecuhfhrohhmpeflvghrohhmvgcuofgrrhhtihhnvgiiuceojhgvrhhomhgvsehmvgguihgrrghrvggrrdhnvghtqeenucggtffrrghtthgvrhhnpeegudduhfdvvdejvdejueevgfevffdvveevhfefvdefjeegteeujeekfeekuedvjeenucffohhmrghinhepughighhithhiiigrthhiohhnghhuihguvghlihhnvghsrdhgohhvpdhffhhmphgvghdrohhrghenucfkphepuddvjedrtddrtddruddpkeegrddugeefrdduheehrdejpdefjedrheelrddugedvrddutdelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehjvghrohhmvgesmhgvughirggrrhgvrgdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehiedupdhmohguvgepshhmthhpohhuth Subject: Re: [FFmpeg-devel] [PATCH v2] 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. --------------ItdHBDtYMgn60z0qYTdVFGCU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Attached is an updated version of the patch proposal. About the idea to keep separate fields in the output AVFrame, I note from the discussion that it is commonly accepted that up to now it is expected that the AVPacket contains what is in the MXF element and that the AVFrame contains a frame and never a field, and additionally I see in e.g. mpeg12dec.c that the decoder interleaves separate fields: mb_y <<= field_pic; if (s2->picture_structure == PICT_BOTTOM_FIELD)     mb_y++; And mpegvideo_parser.c creates a AVPacket with both fields in AVPacket even if they are separated, this patch keeps the AVPacket from e.g. MXF with both fields in it and does something similar to what do other decoders with separate fields in the output AVFRame. About the detection of the 2 separated fields in 1 packet in the MXF file (I2 mode), it is doable in the example file provided in the first patch proposal to catch it by checking the essence label but other files I have don't have the specific essence label (they use the "undefined" essence label, legit) so IMO we should not rely on it and there is actually no practical advantage in catching that from the container. In practice this new patch proposal is slightly more complex, with one recursive call to jpeg2000_decode_frame() when there are 2 codestreams in 1 AVPacket, but it has a negligible performance impact (few comparisons and bool checks) when there is only one codestream in the AVPacket (the currently only supported method, remind that currently FFmpeg completely discards the 2nd codestream present in the AVPacket) and it relies on the current jpeg2000_read_main_headers() function for catching the end of the first codestream (safer than the quick find of EOC/SOC in the first version). It also changes the jpeg2000_decode_frame return value to the count of bytes parsed, it seems that it was what is expected but in practice it was not doing that, fixing the return value could be a separate patch if preferred. Jérôme On 02/02/2024 16:55, Jerome Martinez wrote: > Before this patch, the FFmpeg MXF parser correctly detects content > with 2 fields in 1 AVPacket as e.g. interlaced 720x486 but the FFmpeg > JPEG 2000 decoder reads the JPEG 2000 SIZ header without understanding > that the indicated height is the height of 1 field only so overwrites > the frame size info with e.g. 720x243, and also completely discards > the second frame, which lead to the decoding of only half of the > stored content as "progressive" 720x243 flagged interlaced. > > Example file: > https://www.digitizationguidelines.gov/guidelines/MXF_sampleFiles/RDD48-sample12-gf-jpeg2000-ntsc-4.2.zip > > > Before this patch: > Stream #0:0: Video: jpeg2000, yuv422p10le(bottom coded first > (swapped)), 720x243, lossless, SAR 9:20 DAR 4:3, 29.97 tbr, 29.97 tbn, > 29.97 tbc > > After this patch: > Stream #0:0: Video: jpeg2000, yuv422p10le(bottom coded first > (swapped)), 720x486, lossless, SAR 9:10 DAR 4:3, 29.97 fps, 29.97 tbr, > 29.97 tbn > > _______________________________________________ > 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". --------------ItdHBDtYMgn60z0qYTdVFGCU 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 RnJvbSA2ZDQ3ZDYwMTc4ZjUwMDkxYWZjM2I3MTkzYjc1MjE4NjYwM2VmYzZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvbWUgTWFydGluZXogPGplcm9tZUBtZWRpYWFy ZWEubmV0PgpEYXRlOiBUdWUsIDIwIEZlYiAyMDI0IDE2OjA0OjExICswMTAwClN1YmplY3Q6 IFtQQVRDSF0gYXZjb2RlYy9qcGVnMjAwMGRlYzogc3VwcG9ydCBvZiAyIGZpZWxkcyBpbiAx IEFWUGFja2V0CgotLS0KIGxpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyB8IDc4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogbGliYXZjb2RlYy9q cGVnMjAwMGRlYy5oIHwgIDUgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBk ZWMuYyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYwppbmRleCA2OTFjZmJkODkxLi4yOGEz ZTExMDIwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMKKysrIGIvbGli YXZjb2RlYy9qcGVnMjAwMGRlYy5jCkBAIC0xOTQsNiArMTk0LDggQEAgc3RhdGljIGludCBn ZXRfc2l6KEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMpCiAgICAgaW50IHJldDsKICAgICBp bnQgb19kaW14LCBvX2RpbXk7IC8vb3JpZ2luYWwgaW1hZ2UgZGltZW5zaW9ucy4KICAgICBp bnQgZGlteCwgZGlteTsKKyAgICBpbnQgcHJldmlvdXNfd2lkdGggPSBzLT53aWR0aDsKKyAg ICBpbnQgcHJldmlvdXNfaGVpZ2h0ID0gcy0+aGVpZ2h0OwogCiAgICAgaWYgKGJ5dGVzdHJl YW0yX2dldF9ieXRlc19sZWZ0KCZzLT5nKSA8IDM2KSB7CiAgICAgICAgIGF2X2xvZyhzLT5h dmN0eCwgQVZfTE9HX0VSUk9SLCAiSW5zdWZmaWNpZW50IHNwYWNlIGZvciBTSVpcbiIpOwpA QCAtMjExLDcgKzIxMyw3IEBAIHN0YXRpYyBpbnQgZ2V0X3NpeihKcGVnMjAwMERlY29kZXJD b250ZXh0ICpzKQogICAgIHMtPnRpbGVfb2Zmc2V0X3kgID0gYnl0ZXN0cmVhbTJfZ2V0X2Jl MzJ1KCZzLT5nKTsgLy8gWVQwU2l6CiAgICAgbmNvbXBvbmVudHMgICAgICAgPSBieXRlc3Ry ZWFtMl9nZXRfYmUxNnUoJnMtPmcpOyAvLyBDU2l6CiAKLSAgICBpZiAoYXZfaW1hZ2VfY2hl Y2tfc2l6ZTIocy0+d2lkdGgsIHMtPmhlaWdodCwgcy0+YXZjdHgtPm1heF9waXhlbHMsIEFW X1BJWF9GTVRfTk9ORSwgMCwgcy0+YXZjdHgpKSB7CisgICAgaWYgKGF2X2ltYWdlX2NoZWNr X3NpemUyKHMtPndpZHRoLCBzLT5oZWlnaHQgPDwgKHMtPmhhc18yX2ZpZWxkcyAmJiBzLT5o ZWlnaHQgPj0gMCksIHMtPmF2Y3R4LT5tYXhfcGl4ZWxzLCBBVl9QSVhfRk1UX05PTkUsIDAs IHMtPmF2Y3R4KSkgewogICAgICAgICBhdnByaXZfcmVxdWVzdF9zYW1wbGUocy0+YXZjdHgs ICJMYXJnZSBEaW1lbnNpb25zIik7CiAgICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VM Q09NRTsKICAgICB9CkBAIC0zMDEsNiArMzAzLDIwIEBAIHN0YXRpYyBpbnQgZ2V0X3NpeihK cGVnMjAwMERlY29kZXJDb250ZXh0ICpzKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Io RU5PTUVNKTsKICAgICB9CiAKKyAgICAvKiBtYW5hZ2VtZW50IG9mIGZyYW1lcyBoYXZpbmcg MiBzZXBhcmF0ZSBjb2Rlc3RyZWFtcyAqLworICAgIGlmIChzLT5oYXNfMl9maWVsZHMpIHsK KyAgICAgICAgcy0+aGVpZ2h0IDw8PSAxOworICAgICAgICBzLT5pbWFnZV9vZmZzZXRfeSA8 PD0gMTsKKyAgICAgICAgcy0+dGlsZV9vZmZzZXRfeSA8PD0gMTsKKyAgICAgICAgaWYgKHMt PmlzX3NlY29uZF9maWVsZCAmJiAocy0+d2lkdGggIT0gcHJldmlvdXNfd2lkdGggfHwgcy0+ aGVpZ2h0ICE9IHByZXZpb3VzX2hlaWdodCkpIHsKKyAgICAgICAgICAgIGF2cHJpdl9yZXF1 ZXN0X3NhbXBsZShzLT5hdmN0eCwgIlN1cHBvcnQgb2YgMiBKUEVHIDIwMDAgY29kZXN0cmVh bXMgd2l0aCBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXJpc3RpY3MiKTsKKyAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKKyAgICAgICAgfQorICAgICAgICBpZiAo cy0+aW1hZ2Vfb2Zmc2V0X3kgfHwgcy0+dGlsZV9vZmZzZXRfeSB8fCAocy0+dGlsZV9oZWln aHQgPDwgMSkgIT0gcy0+aGVpZ2h0KSB7CisgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgs IEFWX0xPR19XQVJOSU5HLCAiRGVjb2Rpbmcgb2YgMiBmaWVsZHMgaGF2aW5nIHRpdGxlcyBp biAxIEFWUGFja2V0IHdhcyBub3QgdGVzdGVkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKwog ICAgIC8qIGNvbXB1dGUgaW1hZ2Ugc2l6ZSB3aXRoIHJlZHVjdGlvbiBmYWN0b3IgKi8KICAg ICBvX2RpbXggPSBmZl9qcGVnMjAwMF9jZWlsZGl2cG93MihzLT53aWR0aCAgLSBzLT5pbWFn ZV9vZmZzZXRfeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcy0+cmVkdWN0aW9uX2ZhY3Rvcik7CkBAIC0yMDAxLDcgKzIwMTcsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgdGlsZV9jb2RlYmxvY2tzKGNvbnN0IEpwZWcyMDAwRGVjb2RlckNv bnRleHQgKnMsIEpwZWcyMDAwVGlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB5ICAgID0gdGlsZS0+Y29tcFtjb21wbm9d LmNvb3JkWzFdWzBdIC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICBmZl9qcGVnMjAwMF9jZWlsZGl2KHMtPmlt YWdlX29mZnNldF95LCBzLT5jZHlbY29tcG5vXSk7ICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgICAgICAgICAgbGluZSA9IChQSVhFTCAqKXBpY3R1cmUtPmRhdGFbcGxhbmVdICsg eSAqIChwaWN0dXJlLT5saW5lc2l6ZVtwbGFuZV0gLyBzaXplb2YoUElYRUwpKTtcCisgICAg ICAgICAgICBsaW5lID0gKFBJWEVMICopcGljdHVyZS0+ZGF0YVtwbGFuZV0gKyAoeSArIChz LT5pc19zZWNvbmRfZmllbGQgXiBzLT5pc19ib3R0b21fY29kZWRfZmlyc3QpKSAqIChwaWN0 dXJlLT5saW5lc2l6ZVtwbGFuZV0gLyBzaXplb2YoUElYRUwpKTtcCiAgICAgICAgICAgICBm b3IgKDsgeSA8IGg7IHkrKykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBQSVhF TCAqZHN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCkBAIC0yMDI4LDcgKzIwNDQsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgdGlsZV9jb2RlYmxvY2tzKGNvbnN0IEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMs IEpwZWcyMDAwVGlsZQogICAgICAgICAgICAgICAgICAgICAgICAgZHN0ICs9IHBpeGVsc2l6 ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg ICAgICAgICAgIGxpbmUgKz0gcGljdHVyZS0+bGluZXNpemVbcGxhbmVdIC8gc2l6ZW9mKFBJ WEVMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgbGluZSArPSAocGljdHVyZS0+bGluZXNpemVbcGxhbmVdIDw8IHMtPmhhc18yX2ZpZWxk cykgLyBzaXplb2YoUElYRUwpOyAgICAgICAgICAgIFwKICAgICAgICAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKQEAgLTI0NTAsNiArMjQ2Niw3IEBAIHN0YXRpYyBpbnQganBlZzIwMDBf ZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcGljdHVyZSwK IHsKICAgICBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsK ICAgICBpbnQgcmV0OworICAgIGludCBjb2Rlc3RyZWFtX3NpemU7CiAKICAgICBzLT5hdmN0 eCAgICAgPSBhdmN0eDsKICAgICBieXRlc3RyZWFtMl9pbml0KCZzLT5nLCBhdnBrdC0+ZGF0 YSwgYXZwa3QtPnNpemUpOwpAQCAtMjQ4NCwyMCArMjUwMSw1MCBAQCBzdGF0aWMgaW50IGpw ZWcyMDAwX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnBp Y3R1cmUsCiAgICAgICAgIHJldCA9IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIGdv dG8gZW5kOwogICAgIH0KKworICAgIC8qIG1hbmFnZW1lbnQgb2YgZnJhbWVzIGhhdmluZyAy IHNlcGFyYXRlIGNvZGVzdHJlYW1zICovCisgICAgaWYgKHMtPmhhc18yX2ZpZWxkcyAmJiAh cy0+aXNfc2Vjb25kX2ZpZWxkKSB7CisgICAgICAgIHN3aXRjaCAoYXZjdHgtPmZpZWxkX29y ZGVyKSB7CisgICAgICAgIGNhc2UgQVZfRklFTERfQkI6CisgICAgICAgIGNhc2UgQVZfRklF TERfQlQ6CisgICAgICAgICAgICBzLT5pc19ib3R0b21fY29kZWRfZmlyc3QgPSAxOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzLT5pc19i b3R0b21fY29kZWRfZmlyc3QgPSAwOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKHJl dCA9IGpwZWcyMDAwX3JlYWRfbWFpbl9oZWFkZXJzKHMpKQogICAgICAgICBnb3RvIGVuZDsK KyAgICBjb2Rlc3RyZWFtX3NpemUgPSBhdnBrdC0+c2l6ZSAtIGJ5dGVzdHJlYW0yX2dldF9i eXRlc19sZWZ0KCZzLT5nKTsKKworICAgIC8qIG1hbmFnZW1lbnQgb2YgZnJhbWVzIGhhdmlu ZyAyIHNlcGFyYXRlIGNvZGVzdHJlYW1zICovCisgICAgaWYgKGJ5dGVzdHJlYW0yX2dldF9i eXRlc19sZWZ0KCZzLT5nKSA+IDEgJiYgYnl0ZXN0cmVhbTJfcGVla19iZTE2KCZzLT5nKSA9 PSBKUEVHMjAwMF9TT0MpIHsKKyAgICAgICAgaWYgKCFzLT5oYXNfMl9maWVsZHMpIHsKKyAg ICAgICAgICAgIC8qIDIgY29kZXN0cmVhbXMgbmV3bHkgZGV0ZWN0ZWQsIGFkYXRwaW5nIG91 dHB1dCBmcmFtZSBzdHJ1Y3R1cmUgZm9yIGhhbmRsaW5nIDIgY29kZXN0cmVhbXMgYW5kIHBh cnNpbmcgYWdhaW4gdGhlIGhlYWRlcnMgKGZhc3QgYW5kIGRvbmUgb25jZSBmb3IgYSBzdGFi bGUgc3RyZWFtKSAqLworICAgICAgICAgICAgcy0+aGFzXzJfZmllbGRzID0gMTsKKyAgICAg ICAgICAgIGpwZWcyMDAwX2RlY19jbGVhbnVwKHMpOworICAgICAgICAgICAgcmV0dXJuIGpw ZWcyMDAwX2RlY29kZV9mcmFtZShhdmN0eCwgcGljdHVyZSwgZ290X2ZyYW1lLCBhdnBrdCk7 CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHMtPmhhc18yX2ZpZWxkcyAmJiAhcy0+aXNf c2Vjb25kX2ZpZWxkKSB7CisgICAgICAgIC8qIDEgY29kZXN0cmVhbSBuZXdseSBkZXRlY3Rl ZCwgYWRhdHBpbmcgb3V0cHV0IGZyYW1lIHN0cnVjdHVyZSBmb3IgaGFuZGxpbmcgMSBjb2Rl c3RyZWFtIGFuZCBwYXJzaW5nIGFnYWluIHRoZSBoZWFkZXJzIChmYXN0IGFuZCBuZXZlciBk b25lIGZvciBhIHN0YWJsZSBzdHJlYW0pICovCisgICAgICAgIHMtPmhhc18yX2ZpZWxkcyA9 IDA7CisgICAgICAgIHMtPmlzX2JvdHRvbV9jb2RlZF9maXJzdCA9IDA7CisgICAgICAgIGpw ZWcyMDAwX2RlY19jbGVhbnVwKHMpOworICAgICAgICByZXR1cm4ganBlZzIwMDBfZGVjb2Rl X2ZyYW1lKGF2Y3R4LCBwaWN0dXJlLCBnb3RfZnJhbWUsIGF2cGt0KTsKKyAgICB9CiAKICAg ICBpZiAocy0+c2FyLm51bSAmJiBzLT5zYXIuZGVuKQogICAgICAgICBhdmN0eC0+c2FtcGxl X2FzcGVjdF9yYXRpbyA9IHMtPnNhcjsKICAgICBzLT5zYXIubnVtID0gcy0+c2FyLmRlbiA9 IDA7CiAKICAgICBpZiAoYXZjdHgtPnNraXBfZnJhbWUgPj0gQVZESVNDQVJEX0FMTCkgewot ICAgICAgICBqcGVnMjAwMF9kZWNfY2xlYW51cChzKTsKLSAgICAgICAgcmV0dXJuIGF2cGt0 LT5zaXplOworICAgICAgICByZXQgPSBjb2Rlc3RyZWFtX3NpemU7CisgICAgICAgIGdvdG8g ZW5kOwogICAgIH0KIAogICAgIC8qIGdldCBwaWN0dXJlIGJ1ZmZlciAqLwotICAgIGlmICgo cmV0ID0gZmZfdGhyZWFkX2dldF9idWZmZXIoYXZjdHgsIHBpY3R1cmUsIDApKSA8IDApCisg ICAgaWYgKCghcy0+aGFzXzJfZmllbGRzIHx8ICFzLT5pc19zZWNvbmRfZmllbGQpICYmIChy ZXQgPSBmZl90aHJlYWRfZ2V0X2J1ZmZlcihhdmN0eCwgcGljdHVyZSwgMCkpIDwgMCkKICAg ICAgICAgZ290byBlbmQ7CiAgICAgcGljdHVyZS0+cGljdF90eXBlID0gQVZfUElDVFVSRV9U WVBFX0k7CiAgICAgcGljdHVyZS0+ZmxhZ3MgfD0gQVZfRlJBTUVfRkxBR19LRVk7CkBAIC0y NTE4LDE3ICsyNTY1LDMwIEBAIHN0YXRpYyBpbnQganBlZzIwMDBfZGVjb2RlX2ZyYW1lKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcGljdHVyZSwKIAogICAgIGF2Y3R4LT5l eGVjdXRlMihhdmN0eCwganBlZzIwMDBfZGVjb2RlX3RpbGUsIHBpY3R1cmUsIE5VTEwsIHMt Pm51bVh0aWxlcyAqIHMtPm51bVl0aWxlcyk7CiAKLSAgICBqcGVnMjAwMF9kZWNfY2xlYW51 cChzKTsKLQogICAgICpnb3RfZnJhbWUgPSAxOwogCiAgICAgaWYgKHMtPmF2Y3R4LT5waXhf Zm10ID09IEFWX1BJWF9GTVRfUEFMOCkKICAgICAgICAgbWVtY3B5KHBpY3R1cmUtPmRhdGFb MV0sIHMtPnBhbGV0dGUsIDI1NiAqIHNpemVvZih1aW50MzJfdCkpOwogCi0gICAgcmV0dXJu IGJ5dGVzdHJlYW0yX3RlbGwoJnMtPmcpOworICAgIHJldCA9IGNvZGVzdHJlYW1fc2l6ZTsK IAogZW5kOgogICAgIGpwZWcyMDAwX2RlY19jbGVhbnVwKHMpOworCisgICAgLyogbWFuYWdl bWVudCBvZiBmcmFtZXMgaGF2aW5nIDIgc2VwYXJhdGUgY29kZXN0cmVhbXMgKi8KKyAgICBp ZiAocy0+aGFzXzJfZmllbGRzICYmICFzLT5pc19zZWNvbmRfZmllbGQgJiYgcmV0IDwgYXZw a3QtPnNpemUgJiYgcmV0ID49IDApIHsKKyAgICAgICAgLyogb25seSB0aGUgMXN0IGNvZGVz dHJlYW0gd2FzIHBhcnNlZCwgcGFyc2luZyBub3cgdGhlIDJuZCBjb2Rlc3RyZWFtICovCisg ICAgICAgIHMtPmlzX3NlY29uZF9maWVsZCA9IDE7CisgICAgICAgIGF2cGt0LT5kYXRhICs9 IHJldDsKKyAgICAgICAgYXZwa3QtPnNpemUgLT0gcmV0OworICAgICAgICByZXQgPSBqcGVn MjAwMF9kZWNvZGVfZnJhbWUoYXZjdHgsIHBpY3R1cmUsIGdvdF9mcmFtZSwgYXZwa3QpOwor ICAgICAgICBhdnBrdC0+ZGF0YSAtPSByZXQ7CisgICAgICAgIGF2cGt0LT5zaXplICs9IHJl dDsKKyAgICAgICAgcy0+aXNfc2Vjb25kX2ZpZWxkID0gMDsKKyAgICAgICAgaWYgKHJldCA+ PSAwKQorICAgICAgICAgICAgcmV0ICs9IGNvZGVzdHJlYW1fc2l6ZTsKKyAgICB9CisKICAg ICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVj LmggYi9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmgKaW5kZXggZDBjYTZlN2E3OS4uY2U0Mjgx MmM0OCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oCisrKyBiL2xpYmF2 Y29kZWMvanBlZzIwMDBkZWMuaApAQCAtMTE0LDYgKzExNCwxMSBAQCB0eXBlZGVmIHN0cnVj dCBKcGVnMjAwMERlY29kZXJDb250ZXh0IHsKIAogICAgIC8qb3B0aW9ucyBwYXJhbWV0ZXJz Ki8KICAgICBpbnQgICAgICAgICAgICAgcmVkdWN0aW9uX2ZhY3RvcjsKKyAgICAKKyAgICAv KiBmaWVsZCBpbmZvICovCisgICAgaW50OF90ICAgICAgICAgIGhhc18yX2ZpZWxkczsKKyAg ICBpbnQ4X3QgICAgICAgICAgaXNfYm90dG9tX2NvZGVkX2ZpcnN0OworICAgIGludDhfdCAg ICAgICAgICBpc19zZWNvbmRfZmllbGQ7CiB9IEpwZWcyMDAwRGVjb2RlckNvbnRleHQ7CiAK ICNlbmRpZiAvL0FWQ09ERUNfSlBFRzIwMDBERUNfSAotLSAKMi4xMy4zLndpbmRvd3MuMQoK --------------ItdHBDtYMgn60z0qYTdVFGCU 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". --------------ItdHBDtYMgn60z0qYTdVFGCU--