1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-05 02:39:46 +02:00
Oinktube/node_modules/mpd-parser/src/index.js
2023-06-30 08:55:17 -03:00

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
};