docs: def parse_superbox(self, fptr):
          """Parse a superbox (box consisting of nothing but other boxes.
  
          Parameters
          ----------
          fptr : file
              Open file object.
  
          Returns
          -------
          list
              List of top-level boxes in the JPEG 2000 file.
          """
  
          superbox = []
  
          start = fptr.tell()
  
          while True:
  
              # Are we at the end of the superbox?
              if start >= self.offset + self.length:
                  break
  
              read_buffer = fptr.read(8)
              if len(read_buffer) < 8:
                  msg = "Extra bytes at end of file ignored."
                  warnings.warn(msg, UserWarning)
                  return superbox
  
              (box_length, box_id) = struct.unpack('>I4s', read_buffer)
              if box_length == 0:
                  # The length of the box is presumed to last until the end of
                  # the file.  Compute the effective length of the box.
                  num_bytes = os.path.getsize(fptr.name) - fptr.tell() + 8
  
              elif box_length == 1:
                  # The length of the box is in the XL field, a 64-bit value.
                  read_buffer = fptr.read(8)
                  num_bytes, = struct.unpack('>Q', read_buffer)
  
              else:
                  # The box_length value really is the length of the box!
                  num_bytes = box_length
  
              box = self._parse_this_box(fptr, box_id, start, num_bytes)
  
              superbox.append(box)
  
              # Position to the start of the next box.
              if num_bytes > self.length:
                  # Length of the current box goes past the end of the
                  # enclosing superbox.
                  msg = '{0} box has incorrect box length ({1})'
                  msg = msg.format(box_id, num_bytes)
                  warnings.warn(msg)
              elif fptr.tell() > start + num_bytes:
                  # The box must be invalid somehow, as the file pointer is
                  # positioned past the end of the box.
                  msg = ('{box_id} box may be invalid, the file pointer is '
                         'positioned {num_bytes} bytes past the end of the box.')
                  msg = msg.format(box_id=box_id,
                                   num_bytes=fptr.tell() - (start + num_bytes))
                  warnings.warn(msg, UserWarning)
              fptr.seek(start + num_bytes)
  
              start += num_bytes
  
          return superbox