mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 02:39:46 +02:00
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
import { version } from '../package.json';
|
|
import { toM3u8, generateSidxKey } from './toM3u8';
|
|
import { toPlaylists } from './toPlaylists';
|
|
import { inheritAttributes } from './inheritAttributes';
|
|
import { stringToMpdXml } from './stringToMpdXml';
|
|
import { parseUTCTimingScheme } from './parseUTCTimingScheme';
|
|
import {addSidxSegmentsToPlaylist} from './segment/segmentBase.js';
|
|
|
|
const VERSION = version;
|
|
|
|
/*
|
|
* Given a DASH manifest string and options, parses the DASH manifest into an object in the
|
|
* form outputed by m3u8-parser and accepted by videojs/http-streaming.
|
|
*
|
|
* For live DASH manifests, if `previousManifest` is provided in options, then the newly
|
|
* parsed DASH manifest will have its media sequence and discontinuity sequence values
|
|
* updated to reflect its position relative to the prior manifest.
|
|
*
|
|
* @param {string} manifestString - the DASH manifest as a string
|
|
* @param {options} [options] - any options
|
|
*
|
|
* @return {Object} the manifest object
|
|
*/
|
|
const parse = (manifestString, options = {}) => {
|
|
const parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);
|
|
const playlists = toPlaylists(parsedManifestInfo.representationInfo);
|
|
|
|
return toM3u8({
|
|
dashPlaylists: playlists,
|
|
locations: parsedManifestInfo.locations,
|
|
sidxMapping: options.sidxMapping,
|
|
previousManifest: options.previousManifest,
|
|
eventStream: parsedManifestInfo.eventStream
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Parses the manifest for a UTCTiming node, returning the nodes attributes if found
|
|
*
|
|
* @param {string} manifestString
|
|
* XML string of the MPD manifest
|
|
* @return {Object|null}
|
|
* Attributes of UTCTiming node specified in the manifest. Null if none found
|
|
*/
|
|
const parseUTCTiming = (manifestString) =>
|
|
parseUTCTimingScheme(stringToMpdXml(manifestString));
|
|
|
|
export {
|
|
VERSION,
|
|
parse,
|
|
parseUTCTiming,
|
|
stringToMpdXml,
|
|
inheritAttributes,
|
|
toPlaylists,
|
|
toM3u8,
|
|
addSidxSegmentsToPlaylist,
|
|
generateSidxKey
|
|
};
|