sp-streams
Version:
Streamplace Streams for Piping Video Around and Stuff
42 lines (35 loc) • 1.06 kB
JavaScript
;
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");
}