[FFmpeg-devel] [PATCH] avformat: add DAT (Digital Audio Tape) demuxer

Michael Niedermayer michael at niedermayer.cc
Sat Feb 1 04:13:01 EET 2025


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 <jerome at mediaarea.net>
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250201/0e13046a/attachment.sig>


More information about the ffmpeg-devel mailing list