{"version":3,"sources":["jsdelivr-header.js","/npm/mp4-box-encoding@1.4.1/index.js"],"names":[],"mappings":"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","file":"/npm/mp4-box-encoding@1.4.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mp4-box-encoding@1.4.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// var assert = require('assert')\nvar uint64be = require('uint64be')\n\nvar boxes = require('./boxes')\n\nvar UINT32_MAX = 4294967295\n\nvar Box = exports\n\n/*\n * Lists the proper order for boxes inside containers.\n * Five-character names ending in 's' indicate arrays instead of single elements.\n */\nvar containers = exports.containers = {\n  'moov': ['mvhd', 'meta', 'traks', 'mvex'],\n  'trak': ['tkhd', 'tref', 'trgr', 'edts', 'meta', 'mdia', 'udta'],\n  'edts': ['elst'],\n  'mdia': ['mdhd', 'hdlr', 'elng', 'minf'],\n  'minf': ['vmhd', 'smhd', 'hmhd', 'sthd', 'nmhd', 'dinf', 'stbl'],\n  'dinf': ['dref'],\n  'stbl': ['stsd', 'stts', 'ctts', 'cslg', 'stsc', 'stsz', 'stz2', 'stco', 'co64', 'stss', 'stsh', 'padb', 'stdp', 'sdtp', 'sbgps', 'sgpds', 'subss', 'saizs', 'saios'],\n  'mvex': ['mehd', 'trexs', 'leva'],\n  'moof': ['mfhd', 'meta', 'trafs'],\n  'traf': ['tfhd', 'tfdt', 'trun', 'sbgps', 'sgpds', 'subss', 'saizs', 'saios', 'meta']\n}\n\nBox.encode = function (obj, buffer, offset) {\n  Box.encodingLength(obj) // sets every level appropriately\n  offset = offset || 0\n  buffer = buffer || Buffer.alloc(obj.length)\n  return Box._encode(obj, buffer, offset)\n}\n\nBox._encode = function (obj, buffer, offset) {\n  var type = obj.type\n  var len = obj.length\n  if (len > UINT32_MAX) {\n    len = 1\n  }\n  buffer.writeUInt32BE(len, offset)\n  buffer.write(obj.type, offset + 4, 4, 'ascii')\n  var ptr = offset + 8\n  if (len === 1) {\n    uint64be.encode(obj.length, buffer, ptr)\n    ptr += 8\n  }\n  if (boxes.fullBoxes[type]) {\n    buffer.writeUInt32BE(obj.flags || 0, ptr)\n    buffer.writeUInt8(obj.version || 0, ptr)\n    ptr += 4\n  }\n\n  if (containers[type]) {\n    var contents = containers[type]\n    contents.forEach(function (childType) {\n      if (childType.length === 5) {\n        var entry = obj[childType] || []\n        childType = childType.substr(0, 4)\n        entry.forEach(function (child) {\n          Box._encode(child, buffer, ptr)\n          ptr += Box.encode.bytes\n        })\n      } else if (obj[childType]) {\n        Box._encode(obj[childType], buffer, ptr)\n        ptr += Box.encode.bytes\n      }\n    })\n    if (obj.otherBoxes) {\n      obj.otherBoxes.forEach(function (child) {\n        Box._encode(child, buffer, ptr)\n        ptr += Box.encode.bytes\n      })\n    }\n  } else if (boxes[type]) {\n    var encode = boxes[type].encode\n    encode(obj, buffer, ptr)\n    ptr += encode.bytes\n  } else if (obj.buffer) {\n    var buf = obj.buffer\n    buf.copy(buffer, ptr)\n    ptr += obj.buffer.length\n  } else {\n    throw new Error('Either `type` must be set to a known type (not\\'' + type + '\\') or `buffer` must be set')\n  }\n\n  Box.encode.bytes = ptr - offset\n  // assert.equal(ptr - offset, obj.length, 'Error encoding \\'' + type + '\\': wrote ' + ptr - offset + ' bytes, expecting ' + obj.length)\n  return buffer\n}\n\n/*\n * Returns an object with `type` and `size` fields,\n * or if there isn't enough data, returns the total\n * number of bytes needed to read the headers\n */\nBox.readHeaders = function (buffer, start, end) {\n  start = start || 0\n  end = end || buffer.length\n  if (end - start < 8) {\n    return 8\n  }\n\n  var len = buffer.readUInt32BE(start)\n  var type = buffer.toString('ascii', start + 4, start + 8)\n  var ptr = start + 8\n\n  if (len === 1) {\n    if (end - start < 16) {\n      return 16\n    }\n\n    len = uint64be.decode(buffer, ptr)\n    ptr += 8\n  }\n\n  var version\n  var flags\n  if (boxes.fullBoxes[type]) {\n    version = buffer.readUInt8(ptr)\n    flags = buffer.readUInt32BE(ptr) & 0xffffff\n    ptr += 4\n  }\n\n  return {\n    length: len,\n    headersLen: ptr - start,\n    contentLen: len - (ptr - start),\n    type: type,\n    version: version,\n    flags: flags\n  }\n}\n\nBox.decode = function (buffer, start, end) {\n  start = start || 0\n  end = end || buffer.length\n  var headers = Box.readHeaders(buffer, start, end)\n  if (!headers || headers.length > end - start) {\n    throw new Error('Data too short')\n  }\n\n  return Box.decodeWithoutHeaders(headers, buffer, start + headers.headersLen, start + headers.length)\n}\n\nBox.decodeWithoutHeaders = function (headers, buffer, start, end) {\n  start = start || 0\n  end = end || buffer.length\n  var type = headers.type\n  var obj = {}\n  if (containers[type]) {\n    obj.otherBoxes = []\n    var contents = containers[type]\n    var ptr = start\n    while (end - ptr >= 8) {\n      var child = Box.decode(buffer, ptr, end)\n      ptr += child.length\n      if (contents.indexOf(child.type) >= 0) {\n        obj[child.type] = child\n      } else if (contents.indexOf(child.type + 's') >= 0) {\n        var childType = child.type + 's'\n        var entry = obj[childType] = obj[childType] || []\n        entry.push(child)\n      } else {\n        obj.otherBoxes.push(child)\n      }\n    }\n  } else if (boxes[type]) {\n    var decode = boxes[type].decode\n    obj = decode(buffer, start, end)\n  } else {\n    obj.buffer = Buffer.from(buffer.slice(start, end))\n  }\n\n  obj.length = headers.length\n  obj.contentLen = headers.contentLen\n  obj.type = headers.type\n  obj.version = headers.version\n  obj.flags = headers.flags\n  return obj\n}\n\nBox.encodingLength = function (obj) {\n  var type = obj.type\n\n  var len = 8\n  if (boxes.fullBoxes[type]) {\n    len += 4\n  }\n\n  if (containers[type]) {\n    var contents = containers[type]\n    contents.forEach(function (childType) {\n      if (childType.length === 5) {\n        var entry = obj[childType] || []\n        childType = childType.substr(0, 4)\n        entry.forEach(function (child) {\n          child.type = childType\n          len += Box.encodingLength(child)\n        })\n      } else if (obj[childType]) {\n        var child = obj[childType]\n        child.type = childType\n        len += Box.encodingLength(child)\n      }\n    })\n    if (obj.otherBoxes) {\n      obj.otherBoxes.forEach(function (child) {\n        len += Box.encodingLength(child)\n      })\n    }\n  } else if (boxes[type]) {\n    len += boxes[type].encodingLength(obj)\n  } else if (obj.buffer) {\n    len += obj.buffer.length\n  } else {\n    throw new Error('Either `type` must be set to a known type (not\\'' + type + '\\') or `buffer` must be set')\n  }\n\n  if (len > UINT32_MAX) {\n    len += 8\n  }\n\n  obj.length = len\n  return len\n}\n"]}