Hi Jerome On Wed, Jan 29, 2025 at 06:02:57PM +0100, Jerome Martinez wrote: > Le 25/01/2025 à 01:46, Michael Niedermayer a écrit : > > [...] > > this passes tests. > > > > but if you want, you could instead of testing "extra metadata (not needed for decoding)" > > test more than 1 packet > > > > having a best case score of 1 seems to be something that will > > likely fail sooner or later by not detecting a dat file > > Maybe misunderstanding, the cdxl parser provides score of 1, the DAT patches > provide a score of the count of detected frames so better. yes, this is the 2nd such dumb mistake i make in the last few days the whole (still ongoing) "mobbing" compaign against me seems to affect the quality of my reviews and work > But attached is a v2 of the 2nd patch, less compilation warnings, using less > metadata not impacting the decoding and handling corner cases like bad > metadata e.g. 16-bit 4-ch (impossible) and 32 kHz 12-bit 4-ch. > 12-bit is not yet handled but the patch provides the detection of such file > and a smooth rejection of the file. > > Jérôme > dat.c | 49 ++++++++++++++++++++++++++++++++++++------------- > 1 file changed, 36 insertions(+), 13 deletions(-) > cf8d17c26eddaa608bcaa8551c263e6efb077f3d 0002-avformat-dat-improve-DAT-demuxer.patch > From 90211198a936ca7087dbf04e5d636fd9992a8332 Mon Sep 17 00:00:00 2001 > From: Jerome Martinez > Date: Wed, 22 Jan 2025 16:08:18 +0100 > Subject: [PATCH 2/4] avformat/dat: improve DAT demuxer > > Less false positive detection > Better computation of data size with 12-bit [...] > @@ -82,21 +97,29 @@ static int parse_frame(uint8_t *frame, AVCodecParameters *par) > uint8_t *mainid = subid+4; > int chan_index = (mainid[0] >> 0) & 0x3; > int rate_index = (mainid[0] >> 2) & 0x3; > + int fmtid = (mainid[0] >> 6) & 0x3; > + int trackpitch = (mainid[1] >> 2) & 0x3; > int enc_index = (mainid[1] >> 6) & 0x3; > int dataid = (subid[0] >> 0) & 0xf; > + int encoded_size = 0; > + int encoded_size = encoded_samples[rate_index] * encoded_samples_mul[trackpitch] * encoded_chans[chan_index] * encoded_quantization[enc_index] / 8; duplicate variable thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Let us carefully observe those good qualities wherein our enemies excel us and endeavor to excel them, by avoiding what is faulty, and imitating what is excellent in them. -- Plutarch