This repository has been archived on 2026-03-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-extensions/wecom/node_modules/music-metadata/lib/ogg/speex/SpeexStream.js
T

32 lines
1.1 KiB
JavaScript

import initDebug from 'debug';
import { VorbisStream } from '../vorbis/VorbisStream.js';
import * as Speex from './Speex.js';
const debug = initDebug('music-metadata:parser:ogg:speex');
/**
* Speex, RFC 5574
* Ref:
* - https://www.speex.org/docs/manual/speex-manual/
* - https://tools.ietf.org/html/rfc5574
*/
export class SpeexStream extends VorbisStream {
constructor(metadata, options, _tokenizer) {
super(metadata, options);
}
/**
* Parse first Speex Ogg page
* @param {IPageHeader} header
* @param {Uint8Array} pageData
*/
parseFirstPage(_header, pageData) {
debug('First Ogg/Speex page');
const speexHeader = Speex.Header.get(pageData, 0);
this.metadata.setFormat('codec', `Speex ${speexHeader.version}`);
this.metadata.setFormat('numberOfChannels', speexHeader.nb_channels);
this.metadata.setFormat('sampleRate', speexHeader.rate);
if (speexHeader.bitrate !== -1) {
this.metadata.setFormat('bitrate', speexHeader.bitrate);
}
this.metadata.setAudioOnly();
}
}