@svta/common-media-library
Version:
A common library for media playback in JavaScript
49 lines • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodeId3ImageFrame = decodeId3ImageFrame;
const utf8ArrayToStr_js_1 = require("../../utils/utf8ArrayToStr.js");
const toArrayBuffer_js_1 = require("./toArrayBuffer.js");
const utf8_js_1 = require("./utf8.js");
function decodeId3ImageFrame(frame) {
const metadataFrame = {
key: frame.type,
description: '',
data: '',
mimeType: null,
pictureType: null,
};
const utf8Encoding = 0x03;
if (frame.size < 2) {
return undefined;
}
if (frame.data[0] !== utf8Encoding) {
console.log('Ignore frame with unrecognized character ' + 'encoding');
return undefined;
}
const mimeTypeEndIndex = frame.data.subarray(1).indexOf(0);
if (mimeTypeEndIndex === -1) {
return undefined;
}
const mimeType = (0, utf8ArrayToStr_js_1.utf8ArrayToStr)((0, utf8_js_1.toUint8)(frame.data, 1, mimeTypeEndIndex));
const pictureType = frame.data[2 + mimeTypeEndIndex];
const descriptionEndIndex = frame.data
.subarray(3 + mimeTypeEndIndex)
.indexOf(0);
if (descriptionEndIndex === -1) {
return undefined;
}
const description = (0, utf8ArrayToStr_js_1.utf8ArrayToStr)((0, utf8_js_1.toUint8)(frame.data, 3 + mimeTypeEndIndex, descriptionEndIndex));
let data;
if (mimeType === '-->') {
data = (0, utf8ArrayToStr_js_1.utf8ArrayToStr)((0, utf8_js_1.toUint8)(frame.data, 4 + mimeTypeEndIndex + descriptionEndIndex));
}
else {
data = (0, toArrayBuffer_js_1.toArrayBuffer)(frame.data.subarray(4 + mimeTypeEndIndex + descriptionEndIndex));
}
metadataFrame.mimeType = mimeType;
metadataFrame.pictureType = pictureType;
metadataFrame.description = description;
metadataFrame.data = data;
return metadataFrame;
}
//# sourceMappingURL=decodeId3ImageFrame.js.map