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 EDEC7459D3 for ; Sat, 1 Apr 2023 17:11:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D281968B8D3; Sat, 1 Apr 2023 20:11:53 +0300 (EEST) Received: from 14.mo584.mail-out.ovh.net (14.mo584.mail-out.ovh.net [46.105.40.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B7EA268B0B6 for ; Sat, 1 Apr 2023 20:11:47 +0300 (EEST) Received: from director3.ghost.mail-out.ovh.net (unknown [10.108.1.153]) by mo584.mail-out.ovh.net (Postfix) with ESMTP id 8AC78250F9 for ; Sat, 1 Apr 2023 17:11:46 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-j6mx4 (unknown [10.111.208.197]) by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 2AAA31FDAC for ; Sat, 1 Apr 2023 17:11:46 +0000 (UTC) Received: from mediaarea.net ([37.59.142.108]) by ghost-submission-6684bf9d7b-j6mx4 with ESMTPSA id SipfBNJlKGSylQUAhj2F8g (envelope-from ) for ; Sat, 01 Apr 2023 17:11:46 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-108S0027d998d95-e6e5-468a-bcea-da2d02ed0253, 1B5A12A995DF2A8BF729FC989BD09F9755BD7E20) smtp.auth=zen-lists@mediaarea.net X-OVh-ClientIp: 84.143.156.215 Content-Type: multipart/mixed; boundary="------------SORvrbuXphfvdjVTdFfXPFVL" Message-ID: <71eaedd7-d771-50a7-ed13-3733b8c2187f@mediaarea.net> Date: Sat, 1 Apr 2023 19:11:45 +0200 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> <0b6c3856-082c-cb33-e07c-3adf0502b93c@mediaarea.net> <20230401143739.GD1164690@pb2> <85c1e58e-cc90-5814-cba5-d91201dec993@mediaarea.net> <20230401154301.GF1164690@pb2> From: Jerome Martinez In-Reply-To: <20230401154301.GF1164690@pb2> X-Ovh-Tracer-Id: 7336926744245930233 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvhedrvdeifedguddutdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurheptgfkffggfgfuvfhfhfgjsehmtderredtfeejnecuhfhrohhmpeflvghrohhmvgcuofgrrhhtihhnvgiiuceojhgvrhhomhgvsehmvgguihgrrghrvggrrdhnvghtqeenucggtffrrghtthgvrhhnpeeglefgleeivefgvdfgveekiedvvdekjeetuefggfdvheehjeehkeeugedvjefhudenucfkphepuddvjedrtddrtddruddpkeegrddugeefrdduheeirddvudehpdefjedrheelrddugedvrddutdeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpeeojhgvrhhomhgvsehmvgguihgrrghrvggrrdhnvghtqedpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehkeegpdhmohguvgepshhmthhpohhuth 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. --------------SORvrbuXphfvdjVTdFfXPFVL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 01/04/2023 17:43, Michael Niedermayer wrote: > On Sat, Apr 01, 2023 at 05:20:50PM +0200, Jerome Martinez wrote: >> On 01/04/2023 16:37, Michael Niedermayer wrote: >>> On Tue, Mar 14, 2023 at 10:52:15AM +0100, Jerome Martinez wrote: >>> [...] >>>> + >>>> + memset(state, 128, sizeof(state)); >>>> + if (st->codecpar->extradata) { >>>> + ff_init_range_decoder(&c, st->codecpar->extradata, st->codecpar->extradata_size); >>>> + ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8); >>>> + v = get_ffv1_unsigned_symbol(&c, state); >>>> + av_assert0(v >= 2); >>>> + if (v > 4) { >>>> + return 0; >>>> + } >>>> + sc->micro_version = get_ffv1_unsigned_symbol(&c, state); >>>> + } else { >>>> + uint8_t keystate = 128; >>>> + ff_init_range_decoder(&c, pkt->data, pkt->size); >>>> + ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8); >>>> + get_rac(&c, &keystate); // keyframe >>>> + v = get_ffv1_unsigned_symbol(&c, state); >>>> + av_assert0(v < 2); >>> Are these asserts testing muxer input ? >>> if so what ensures that the values are within the asserted range ? >> >> My understanding of the code and workflow is that the input is currently >> rejected (AV_LOG_ERROR, "invalid version %d in ver01 header\n" and >> AV_LOG_ERROR, "Invalid version in global header\n") in ffv1dec.c during the >> analysis of this input so before this piece of code is reached. >> Could be an AV_LOG_ERROR if preferred. > if the encoder writes 5 teh muxer crashes here > > V 5me= 0 fps=0.0 q=-0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x > Assertion v < 2 failed at libavformat/mxfenc.c:2505 I hardcoded version 5 in the encoder based on version 4 (so with extra metadata), and I have: [mxf @ 0x7fffd52f3100] could not get ffv1 version My understanding is that you hardcoded version 5 in the encoder based on version 0 or 1 (so without extra metadata), in that case I have the assert, and it was on purpose on my side because I understand from ffv1 encoder code that any version > 2 should have extra metadata, and if it changes in the future this line in MXF muxer should be changed at the same time as FFV1 encoder code But I didn't test and didn't realize that the FFV1 parsing is not done with -c:v copy, and if that case I get the assert with an (fake) input with version 5 and no extra metadata. What about the attached patch? I reused the ffv1 decoder error messages + "ffv1 " tip. Note: I moved, so less coherency in the code, the error message in mxf_parse_ffv1_frame for more precise message depending on the presence or not of extra metadata, it could stay as is if we don't care about the precision. --------------SORvrbuXphfvdjVTdFfXPFVL Content-Type: text/plain; charset=UTF-8; name="0001-avformat-mxfenc-replace-ffv1-version-related-assert-.patch" Content-Disposition: attachment; filename*0="0001-avformat-mxfenc-replace-ffv1-version-related-assert-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2NWY2ZmJhOTQzNGZhOWFiNGI1ZDJiOTFjM2Y5MzBjMWUzY2I0YmVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvbWUgTWFydGluZXogPGplcm9tZUBtZWRpYWFy ZWEubmV0PgpEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MDQ6MjUgKzAyMDAKU3ViamVjdDog W1BBVENIXSBhdmZvcm1hdC9teGZlbmM6IHJlcGxhY2UgZmZ2MSB2ZXJzaW9uIHJlbGF0ZWQg YXNzZXJ0IGJ5IGVycm9yCiBtZXNzYWdlCgotLS0KIGxpYmF2Zm9ybWF0L214ZmVuYy5jIHwg MTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9teGZlbmMuYyBiL2xpYmF2Zm9y bWF0L214ZmVuYy5jCmluZGV4IDllYmEyMDhmZmIuLjBhMWFlNTM1M2MgMTAwNjQ0Ci0tLSBh L2xpYmF2Zm9ybWF0L214ZmVuYy5jCisrKyBiL2xpYmF2Zm9ybWF0L214ZmVuYy5jCkBAIC0y NDg5LDggKzI0ODksOCBAQCBzdGF0aWMgaW50IG14Zl9wYXJzZV9mZnYxX2ZyYW1lKEFWRm9y bWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0LCBBVlBhY2tldCAqcGt0KQogICAgICAgICBm Zl9pbml0X3JhbmdlX2RlY29kZXIoJmMsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhLCBzdC0+ Y29kZWNwYXItPmV4dHJhZGF0YV9zaXplKTsKICAgICAgICAgZmZfYnVpbGRfcmFjX3N0YXRl cygmYywgMC4wNSAqICgxTEwgPDwgMzIpLCAyNTYgLSA4KTsKICAgICAgICAgdiA9IGdldF9m ZnYxX3Vuc2lnbmVkX3N5bWJvbCgmYywgc3RhdGUpOwotICAgICAgICBhdl9hc3NlcnQwKHYg Pj0gMik7Ci0gICAgICAgIGlmICh2ID4gNCkgeworICAgICAgICBpZiAodiA8IDIpIHsKKyAg ICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIHZlcnNpb24gaW4g ZmZ2MSBnbG9iYWwgaGVhZGVyXG4iKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg ICB9CiAgICAgICAgIHNjLT5taWNyb192ZXJzaW9uID0gZ2V0X2ZmdjFfdW5zaWduZWRfc3lt Ym9sKCZjLCBzdGF0ZSk7CkBAIC0yNTAwLDcgKzI1MDAsMTAgQEAgc3RhdGljIGludCBteGZf cGFyc2VfZmZ2MV9mcmFtZShBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCwgQVZQ YWNrZXQgKnBrdCkKICAgICAgICAgZmZfYnVpbGRfcmFjX3N0YXRlcygmYywgMC4wNSAqICgx TEwgPDwgMzIpLCAyNTYgLSA4KTsKICAgICAgICAgZ2V0X3JhYygmYywgJmtleXN0YXRlKTsg Ly8ga2V5ZnJhbWUKICAgICAgICAgdiA9IGdldF9mZnYxX3Vuc2lnbmVkX3N5bWJvbCgmYywg c3RhdGUpOwotICAgICAgICBhdl9hc3NlcnQwKHYgPCAyKTsKKyAgICAgICAgaWYgKHYgPj0g MikgeworICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgImludmFsaWQgdmVy c2lvbiAlZCBpbiBmZnYxIHZlcjAxIGhlYWRlclxuIiwgdik7CisgICAgICAgICAgICByZXR1 cm4gMDsKKyAgICAgICAgfQogICAgIH0KICAgICBzYy0+Y29kZWNfdWwgPSAmbXhmX2ZmdjFf Y29kZWNfdWxzW3ZdOwogCkBAIC0zMTI5LDcgKzMxMzIsNiBAQCBzdGF0aWMgaW50IG14Zl93 cml0ZV9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgICAg ICB9CiAgICAgfSBlbHNlIGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVD X0lEX0ZGVjEpIHsKICAgICAgICAgaWYgKCFteGZfcGFyc2VfZmZ2MV9mcmFtZShzLCBzdCwg cGt0KSkgewotICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgImNvdWxkIG5v dCBnZXQgZmZ2MSB2ZXJzaW9uXG4iKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAg ICAgfQogICAgIH0KLS0gCjIuMTMuMy53aW5kb3dzLjEKCg== --------------SORvrbuXphfvdjVTdFfXPFVL 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". --------------SORvrbuXphfvdjVTdFfXPFVL--