static getVintValue_(vint) {
    // If |vint| is 8 bytes wide then we must ensure that it does not have more
    // than 53 meaningful bits. For example, assume |vint| is 8 bytes wide,
    // so it has the following structure,
    // 0000 0001 | xxxx xxxx ...
    // Thus, the first 3 bits following the first byte of |vint| must be 0.
    if ((vint.length == 8) && (vint[1] & 0xe0)) {
      throw new shaka.util.Error(
          shaka.util.Error.Severity.CRITICAL,
          shaka.util.Error.Category.MEDIA,
          shaka.util.Error.Code.JS_INTEGER_OVERFLOW);
    }

    let value = 0;
    for (let i = 0; i < vint.length; i++) {
      const item = vint[i];
      if (i == 0) {
        // Mask out the first few bits of |vint|'s first byte to get the most
        // significant bits of |vint|'s value. If |vint| is 8 bytes wide then
        // |value| will be set to 0.
        const mask = 0x1 << (8 - vint.length);
        value = item & (mask - 1);
      } else {
        // Note that we cannot use << since |value| may exceed 32 bits.
        value = (256 * value) + item;
      }
    }

    return value;
  }
Gets the value of a variable sized integer.
For example, the x's below are part of the vint's value.
   7-bit value: 1xxx xxxx
  14-bit value: 01xx xxxx xxxx xxxx
  21-bit value: 001x xxxx xxxx xxxx xxxx xxxx
@param {!Uint8Array} vint The variable sized integer.
@return {number} The value of the variable sized integer.
@private