Java 类com.google.android.exoplayer2.testutil.FakeExtractorInput.SimulatedIOException 实例源码

项目:videoPickPlayer    文件:VorbisReaderTest.java   
private static VorbisSetup readSetupHeaders(VorbisReader reader, ExtractorInput input)
    throws IOException, InterruptedException {
  OggPacket oggPacket = new OggPacket();
  while (true) {
    try {
      if (!oggPacket.populate(input)) {
        fail();
      }
      VorbisSetup vorbisSetup = reader.readSetupHeaders(oggPacket.getPayload());
      if (vorbisSetup != null) {
        return vorbisSetup;
      }
    } catch (SimulatedIOException e) {
      // Ignore.
    }
  }
}
项目:videoPickPlayer    文件:VarintReaderTest.java   
private static void testReadVarintFlaky(VarintReader reader, boolean removeMask, byte[] data,
    int expectedLength, long expectedValue) throws IOException, InterruptedException {
  ExtractorInput input = new FakeExtractorInput.Builder()
      .setData(data)
      .setSimulateUnknownLength(true)
      .setSimulateIOErrors(true)
      .setSimulatePartialReads(true)
      .build();
  long result = -1;
  while (result == -1) {
    try {
      result = reader.readUnsignedVarint(input, false, removeMask, 8);
      if (result == C.RESULT_END_OF_INPUT || result == C.RESULT_MAX_LENGTH_EXCEEDED) {
        // Unexpected.
        fail();
      }
    } catch (SimulatedIOException e) {
      // Expected.
    }
  }
  assertEquals(expectedLength, input.getPosition());
  assertEquals(expectedValue, result);
}
项目:transistor    文件:VorbisReaderTest.java   
private static VorbisSetup readSetupHeaders(VorbisReader reader, ExtractorInput input)
    throws IOException, InterruptedException {
  OggPacket oggPacket = new OggPacket();
  while (true) {
    try {
      if (!oggPacket.populate(input)) {
        fail();
      }
      VorbisSetup vorbisSetup = reader.readSetupHeaders(oggPacket.getPayload());
      if (vorbisSetup != null) {
        return vorbisSetup;
      }
    } catch (SimulatedIOException e) {
      // Ignore.
    }
  }
}
项目:transistor    文件:VarintReaderTest.java   
private static void testReadVarintFlaky(VarintReader reader, boolean removeMask, byte[] data,
    int expectedLength, long expectedValue) throws IOException, InterruptedException {
  ExtractorInput input = new FakeExtractorInput.Builder()
      .setData(data)
      .setSimulateUnknownLength(true)
      .setSimulateIOErrors(true)
      .setSimulatePartialReads(true)
      .build();
  long result = -1;
  while (result == -1) {
    try {
      result = reader.readUnsignedVarint(input, false, removeMask, 8);
      if (result == C.RESULT_END_OF_INPUT || result == C.RESULT_MAX_LENGTH_EXCEEDED) {
        // Unexpected.
        fail();
      }
    } catch (SimulatedIOException e) {
      // Expected.
    }
  }
  assertThat(input.getPosition()).isEqualTo(expectedLength);
  assertThat(result).isEqualTo(expectedValue);
}
项目:ExoPlayer-Offline    文件:TestUtil.java   
public static boolean sniffTestData(Extractor extractor, FakeExtractorInput input)
    throws IOException, InterruptedException {
  while (true) {
    try {
      return extractor.sniff(input);
    } catch (SimulatedIOException e) {
      // Ignore.
    }
  }
}
项目:ExoPlayer-Offline    文件:TestUtil.java   
private static void consumeTestData(Extractor extractor, FakeExtractorInput input, long timeUs,
    FakeExtractorOutput output, boolean retryFromStartIfLive)
    throws IOException, InterruptedException {
  extractor.seek(input.getPosition(), timeUs);
  PositionHolder seekPositionHolder = new PositionHolder();
  int readResult = Extractor.RESULT_CONTINUE;
  while (readResult != Extractor.RESULT_END_OF_INPUT) {
    try {
      // Extractor.read should not read seekPositionHolder.position. Set it to a value that's
      // likely to cause test failure if a read does occur.
      seekPositionHolder.position = Long.MIN_VALUE;
      readResult = extractor.read(input, seekPositionHolder);
      if (readResult == Extractor.RESULT_SEEK) {
        long seekPosition = seekPositionHolder.position;
        Assertions.checkState(0 <= seekPosition && seekPosition <= Integer.MAX_VALUE);
        input.setPosition((int) seekPosition);
      }
    } catch (SimulatedIOException e) {
      if (!retryFromStartIfLive) {
        continue;
      }
      boolean isOnDemand = input.getLength() != C.LENGTH_UNSET
          || (output.seekMap != null && output.seekMap.getDurationUs() != C.TIME_UNSET);
      if (isOnDemand) {
        continue;
      }
      input.setPosition(0);
      for (int i = 0; i < output.numberOfTracks; i++) {
        output.trackOutputs.valueAt(i).clear();
      }
      extractor.seek(0, 0);
    }
  }
}
项目:videoPickPlayer    文件:OggPageHeaderTest.java   
private boolean populatePageHeader(FakeExtractorInput input, OggPageHeader header,
    boolean quite) throws IOException, InterruptedException {
  while (true) {
    try {
      return header.populate(input, quite);
    } catch (SimulatedIOException e) {
      // ignored
    }
  }
}
项目:transistor    文件:ExtractorAsserts.java   
private static void consumeTestData(Extractor extractor, FakeExtractorInput input, long timeUs,
    FakeExtractorOutput output, boolean retryFromStartIfLive)
    throws IOException, InterruptedException {
  extractor.seek(input.getPosition(), timeUs);
  PositionHolder seekPositionHolder = new PositionHolder();
  int readResult = Extractor.RESULT_CONTINUE;
  while (readResult != Extractor.RESULT_END_OF_INPUT) {
    try {
      // Extractor.read should not read seekPositionHolder.position. Set it to a value that's
      // likely to cause test failure if a read does occur.
      seekPositionHolder.position = Long.MIN_VALUE;
      readResult = extractor.read(input, seekPositionHolder);
      if (readResult == Extractor.RESULT_SEEK) {
        long seekPosition = seekPositionHolder.position;
        Assertions.checkState(0 <= seekPosition && seekPosition <= Integer.MAX_VALUE);
        input.setPosition((int) seekPosition);
      }
    } catch (SimulatedIOException e) {
      if (!retryFromStartIfLive) {
        continue;
      }
      boolean isOnDemand = input.getLength() != C.LENGTH_UNSET
          || (output.seekMap != null && output.seekMap.getDurationUs() != C.TIME_UNSET);
      if (isOnDemand) {
        continue;
      }
      input.setPosition(0);
      for (int i = 0; i < output.numberOfTracks; i++) {
        output.trackOutputs.valueAt(i).clear();
      }
      extractor.seek(0, 0);
    }
  }
}
项目:transistor    文件:TestUtil.java   
public static boolean sniffTestData(Extractor extractor, FakeExtractorInput input)
    throws IOException, InterruptedException {
  while (true) {
    try {
      return extractor.sniff(input);
    } catch (SimulatedIOException e) {
      // Ignore.
    }
  }
}
项目:transistor    文件:OggPageHeaderTest.java   
private boolean populatePageHeader(FakeExtractorInput input, OggPageHeader header,
    boolean quite) throws IOException, InterruptedException {
  while (true) {
    try {
      return header.populate(input, quite);
    } catch (SimulatedIOException e) {
      // ignored
    }
  }
}