UNPKG

sp-streams

Version:

Streamplace Streams for Piping Video Around and Stuff

42 lines (35 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hlsFix = hlsFix; var _xml2js = require("xml2js"); var _xml2js2 = _interopRequireDefault(_xml2js); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // xml2js has the weirdest api var parseXml = function parseXml(str) { var out = void 0; _xml2js2.default.parseString(str, function (err, result) { out = result; }); return out; }; /** * Fixes some faulty fields in our HLS manifests given our DASH manifests. */ function hlsFix(_ref) { var hls = _ref.hls, dash = _ref.dash; var xml = parseXml(dash); var set = xml.MPD.Period[0].AdaptationSet.find(function (set) { return set.$.contentType === "video"; }); var videoBandwidth = set.Representation[0].$.bandwidth; var hlsLines = hls.split("\n").map(function (line) { if (!line.includes("RESOLUTION")) { return line; } return line.replace(/BANDWIDTH=\d+/, "BANDWIDTH=" + videoBandwidth); }); return hlsLines.join("\n"); }