Пример #1
0
  @Override
  public void _parseDetails(ByteBuffer content) {
    parseVersionAndFlags(content);
    if (getVersion() == 1) {
      creationTime = DateHelper.convert(IsoTypeReader.readUInt64(content));
      modificationTime = DateHelper.convert(IsoTypeReader.readUInt64(content));
      timescale = IsoTypeReader.readUInt32(content);
      duration = content.getLong();

    } else {
      creationTime = DateHelper.convert(IsoTypeReader.readUInt32(content));
      modificationTime = DateHelper.convert(IsoTypeReader.readUInt32(content));
      timescale = IsoTypeReader.readUInt32(content);
      duration = content.getInt();
    }
    if (duration < -1) {
      LOG.logWarn("mvhd duration is not in expected range");
    }

    rate = IsoTypeReader.readFixedPoint1616(content);
    volume = IsoTypeReader.readFixedPoint88(content);
    IsoTypeReader.readUInt16(content);
    IsoTypeReader.readUInt32(content);
    IsoTypeReader.readUInt32(content);

    matrix = Matrix.fromByteBuffer(content);

    previewTime = content.getInt();
    previewDuration = content.getInt();
    posterTime = content.getInt();
    selectionTime = content.getInt();
    selectionDuration = content.getInt();
    currentTime = content.getInt();

    nextTrackId = IsoTypeReader.readUInt32(content);
  }