@Override
  public int readSample(int track, SampleHolder sampleHolder) throws IOException {
    if (sampleHolder.data == null) {
      sampleHolder.size = 0;
      return SampleSource.SAMPLE_READ;
    }

    if (!ffReadSample(pFormatCtx, sampleHolder)) {
      return SampleSource.NOTHING_READ;
    }

    // Log.d(TAG, "PTS: " + sampleHolder.timeUs);
    // Log.d(TAG, "frame start: " + sampleHolder.data.getInt(1));

    return SampleSource.SAMPLE_READ;
  }