Fixed issue in which MediaChunk.seekToStart might not actually seek to the start of the segment.

This commit is contained in:
Oliver Woodman 2014-07-04 00:47:44 +01:00
parent 8cad387393
commit 50b276fe31
4 changed files with 17 additions and 3 deletions

View File

@ -73,9 +73,7 @@ public abstract class MediaChunk extends Chunk {
/**
* Seeks to the beginning of the chunk.
*/
public final void seekToStart() {
seekTo(startTimeUs, false);
}
public abstract void seekToStart();
/**
* Seeks to the specified position within the chunk.

View File

@ -54,6 +54,12 @@ public final class Mp4MediaChunk extends MediaChunk {
this.sampleOffsetUs = sampleOffsetUs;
}
@Override
public void seekToStart() {
extractor.seekTo(0, false);
resetReadPosition();
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) {
long seekTimeUs = positionUs + sampleOffsetUs;

View File

@ -109,6 +109,11 @@ public class SingleSampleMediaChunk extends MediaChunk {
return true;
}
@Override
public void seekToStart() {
resetReadPosition();
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) {
resetReadPosition();

View File

@ -50,6 +50,11 @@ public final class WebmMediaChunk extends MediaChunk {
this.extractor = extractor;
}
@Override
public void seekToStart() {
seekTo(0, false);
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) {
boolean isDiscontinuous = extractor.seekTo(positionUs, allowNoop);