use of com.google.android.exoplayer2.testutil.FakeTrackOutput in project ExoPlayer by google.
the class IndexSeekerTest method seeking_handlesSeekingBackward.
@Test
public void seeking_handlesSeekingBackward() throws Exception {
String fileName = TEST_FILE_NO_SEEK_TABLE;
Uri fileUri = TestUtil.buildAssetUri(fileName);
SeekMap seekMap = TestUtil.extractSeekMap(extractor, extractorOutput, dataSource, fileUri);
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(0);
long firstSeekTimeUs = 1_234_000;
TestUtil.seekToTimeUs(extractor, seekMap, firstSeekTimeUs, dataSource, trackOutput, fileUri);
long targetSeekTimeUs = 987_000;
int extractedFrameIndex = TestUtil.seekToTimeUs(extractor, seekMap, targetSeekTimeUs, dataSource, trackOutput, fileUri);
assertThat(extractedFrameIndex).isNotEqualTo(C.INDEX_UNSET);
assertFirstFrameAfterSeekIsWithinMinDifference(fileName, trackOutput, targetSeekTimeUs, extractedFrameIndex);
assertFirstFrameAfterSeekHasCorrectData(fileName, trackOutput, extractedFrameIndex);
}
use of com.google.android.exoplayer2.testutil.FakeTrackOutput in project ExoPlayer by google.
the class IndexSeekerTest method seeking_handlesSeekToZero.
@Test
public void seeking_handlesSeekToZero() throws Exception {
String fileName = TEST_FILE_NO_SEEK_TABLE;
Uri fileUri = TestUtil.buildAssetUri(fileName);
SeekMap seekMap = TestUtil.extractSeekMap(extractor, extractorOutput, dataSource, fileUri);
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(0);
long targetSeekTimeUs = 0;
int extractedFrameIndex = TestUtil.seekToTimeUs(extractor, seekMap, targetSeekTimeUs, dataSource, trackOutput, fileUri);
assertThat(extractedFrameIndex).isNotEqualTo(C.INDEX_UNSET);
assertFirstFrameAfterSeekIsWithinMinDifference(fileName, trackOutput, targetSeekTimeUs, extractedFrameIndex);
assertFirstFrameAfterSeekHasCorrectData(fileName, trackOutput, extractedFrameIndex);
}
use of com.google.android.exoplayer2.testutil.FakeTrackOutput in project ExoPlayer by google.
the class FlvExtractorSeekTest method seeking_handlesSeekingForward.
@Test
public void seeking_handlesSeekingForward() throws Exception {
String fileName = TEST_FILE_KEY_FRAME_INDEX;
Uri fileUri = TestUtil.buildAssetUri(fileName);
SeekMap seekMap = TestUtil.extractSeekMap(extractor, extractorOutput, dataSource, fileUri);
int trackId = extractorOutput.trackOutputs.keyAt(0);
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(trackId);
long firstSeekTimeUs = seekMap.getDurationUs() / 3;
TestUtil.seekToTimeUs(extractor, seekMap, firstSeekTimeUs, dataSource, trackOutput, fileUri);
long targetSeekTimeUs = seekMap.getDurationUs() * 2 / 3;
int extractedFrameIndex = TestUtil.seekToTimeUs(extractor, seekMap, targetSeekTimeUs, dataSource, trackOutput, fileUri);
assertThat(extractedFrameIndex).isNotEqualTo(C.INDEX_UNSET);
assertFirstFrameAfterSeekIsWithinKeyFrameInterval(fileName, trackId, trackOutput, extractedFrameIndex, targetSeekTimeUs);
}
use of com.google.android.exoplayer2.testutil.FakeTrackOutput in project ExoPlayer by google.
the class FlvExtractorSeekTest method assertFirstFrameAfterSeekIsWithinKeyFrameInterval.
private static void assertFirstFrameAfterSeekIsWithinKeyFrameInterval(String fileName, int trackId, FakeTrackOutput trackOutput, int firstFrameIndexAfterSeek, long targetSeekTimeUs) throws IOException {
long foundFrameTimeUs = trackOutput.getSampleTimeUs(firstFrameIndexAfterSeek);
assertThat(targetSeekTimeUs - foundFrameTimeUs).isAtMost(KEY_FRAMES_INTERVAL_US);
FakeTrackOutput expectedTrackOutput = getTrackOutput(fileName, trackId);
int foundFrameIndex = getFrameIndex(expectedTrackOutput, foundFrameTimeUs);
trackOutput.assertSample(firstFrameIndexAfterSeek, expectedTrackOutput.getSampleData(foundFrameIndex), expectedTrackOutput.getSampleTimeUs(foundFrameIndex), expectedTrackOutput.getSampleFlags(foundFrameIndex), expectedTrackOutput.getSampleCryptoData(foundFrameIndex));
}
use of com.google.android.exoplayer2.testutil.FakeTrackOutput in project ExoPlayer by google.
the class FlvExtractorSeekTest method seeking_handlesSeekToEof.
@Test
public void seeking_handlesSeekToEof() throws Exception {
String fileName = TEST_FILE_KEY_FRAME_INDEX;
Uri fileUri = TestUtil.buildAssetUri(fileName);
SeekMap seekMap = TestUtil.extractSeekMap(extractor, extractorOutput, dataSource, fileUri);
int trackId = extractorOutput.trackOutputs.keyAt(0);
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(trackId);
long targetSeekTimeUs = seekMap.getDurationUs();
int extractedFrameIndex = TestUtil.seekToTimeUs(extractor, seekMap, targetSeekTimeUs, dataSource, trackOutput, fileUri);
assertThat(extractedFrameIndex).isNotEqualTo(C.INDEX_UNSET);
assertFirstFrameAfterSeekIsWithinKeyFrameInterval(fileName, trackId, trackOutput, extractedFrameIndex, targetSeekTimeUs);
}
Aggregations