securityos/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.js

33 lines
953 B
JavaScript
Raw Normal View History

2024-09-06 15:32:35 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VorbisDecoder = void 0;
const Token = require("token-types");
class VorbisDecoder {
constructor(data, offset) {
this.data = data;
this.offset = offset;
}
readInt32() {
const value = Token.UINT32_LE.get(this.data, this.offset);
this.offset += 4;
return value;
}
readStringUtf8() {
const len = this.readInt32();
const value = Buffer.from(this.data).toString('utf-8', this.offset, this.offset + len);
this.offset += len;
return value;
}
parseUserComment() {
const offset0 = this.offset;
const v = this.readStringUtf8();
const idx = v.indexOf('=');
return {
key: v.slice(0, idx).toUpperCase(),
value: v.slice(idx + 1),
len: this.offset - offset0
};
}
}
exports.VorbisDecoder = VorbisDecoder;