Add metadata tests, fix a few bugs

This commit is contained in:
Vanilagy
2025-09-05 21:42:26 +02:00
parent 42190900cd
commit bd99d8f28f
12 changed files with 449 additions and 40 deletions
+12 -12
View File
@@ -334,40 +334,40 @@ export class OggDemuxer extends Demuxer {
case 'TRACKNUMBER': {
const parts = value.split('/');
const trackNum = Number.parseInt(parts[0]!, 10);
const trackNumMax = parts[1] && Number.parseInt(parts[1], 10);
const tracksTotal = parts[1] && Number.parseInt(parts[1], 10);
if (Number.isInteger(trackNum) && trackNum > 0) {
this.metadataTags.trackNumber ??= trackNum;
}
if (trackNumMax && Number.isInteger(trackNumMax) && trackNumMax > 0) {
this.metadataTags.tracksTotal ??= trackNumMax;
if (tracksTotal && Number.isInteger(tracksTotal) && tracksTotal > 0) {
this.metadataTags.tracksTotal ??= tracksTotal;
}
}; break;
case 'TRACKTOTAL': {
const trackNumMax = Number.parseInt(value, 10);
if (Number.isInteger(trackNumMax) && trackNumMax > 0) {
this.metadataTags.tracksTotal ??= trackNumMax;
const tracksTotal = Number.parseInt(value, 10);
if (Number.isInteger(tracksTotal) && tracksTotal > 0) {
this.metadataTags.tracksTotal ??= tracksTotal;
}
}; break;
case 'DISCNUMBER': {
const parts = value.split('/');
const discNum = Number.parseInt(parts[0]!, 10);
const discNumMax = parts[1] && Number.parseInt(parts[1], 10);
const discsTotal = parts[1] && Number.parseInt(parts[1], 10);
if (Number.isInteger(discNum) && discNum > 0) {
this.metadataTags.discNumber ??= discNum;
}
if (discNumMax && Number.isInteger(discNumMax) && discNumMax > 0) {
this.metadataTags.discsTotal ??= discNumMax;
if (discsTotal && Number.isInteger(discsTotal) && discsTotal > 0) {
this.metadataTags.discsTotal ??= discsTotal;
}
}; break;
case 'DISCTOTAL': {
const trackNumMax = Number.parseInt(value, 10);
if (Number.isInteger(trackNumMax) && trackNumMax > 0) {
this.metadataTags.tracksTotal ??= trackNumMax;
const discsTotal = Number.parseInt(value, 10);
if (Number.isInteger(discsTotal) && discsTotal > 0) {
this.metadataTags.discsTotal ??= discsTotal;
}
}; break;
+9 -9
View File
@@ -334,21 +334,21 @@ export class OggMuxer extends Muxer {
}; break;
case 'trackNumber': {
addCommentTag('DISCNUMBER', value.toString());
}; break;
case 'tracksTotal': {
addCommentTag('DISCTOTAL', value.toString());
}; break;
case 'discNumber': {
addCommentTag('TRACKNUMBER', value.toString());
}; break;
case 'discsTotal': {
case 'tracksTotal': {
addCommentTag('TRACKTOTAL', value.toString());
}; break;
case 'discNumber': {
addCommentTag('DISCNUMBER', value.toString());
}; break;
case 'discsTotal': {
addCommentTag('DISCTOTAL', value.toString());
}; break;
case 'images': {
for (const image of value) {
// https://datatracker.ietf.org/doc/rfc9639/ Section 8.8