Commit 50b276fe by Oliver Woodman

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

parent 8cad3873
...@@ -73,9 +73,7 @@ public abstract class MediaChunk extends Chunk { ...@@ -73,9 +73,7 @@ public abstract class MediaChunk extends Chunk {
/** /**
* Seeks to the beginning of the chunk. * Seeks to the beginning of the chunk.
*/ */
public final void seekToStart() { public abstract void seekToStart();
seekTo(startTimeUs, false);
}
/** /**
* Seeks to the specified position within the chunk. * Seeks to the specified position within the chunk.
......
...@@ -55,6 +55,12 @@ public final class Mp4MediaChunk extends MediaChunk { ...@@ -55,6 +55,12 @@ public final class Mp4MediaChunk extends MediaChunk {
} }
@Override @Override
public void seekToStart() {
extractor.seekTo(0, false);
resetReadPosition();
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) { public boolean seekTo(long positionUs, boolean allowNoop) {
long seekTimeUs = positionUs + sampleOffsetUs; long seekTimeUs = positionUs + sampleOffsetUs;
boolean isDiscontinuous = extractor.seekTo(seekTimeUs, allowNoop); boolean isDiscontinuous = extractor.seekTo(seekTimeUs, allowNoop);
......
...@@ -110,6 +110,11 @@ public class SingleSampleMediaChunk extends MediaChunk { ...@@ -110,6 +110,11 @@ public class SingleSampleMediaChunk extends MediaChunk {
} }
@Override @Override
public void seekToStart() {
resetReadPosition();
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) { public boolean seekTo(long positionUs, boolean allowNoop) {
resetReadPosition(); resetReadPosition();
return true; return true;
......
...@@ -51,6 +51,11 @@ public final class WebmMediaChunk extends MediaChunk { ...@@ -51,6 +51,11 @@ public final class WebmMediaChunk extends MediaChunk {
} }
@Override @Override
public void seekToStart() {
seekTo(0, false);
}
@Override
public boolean seekTo(long positionUs, boolean allowNoop) { public boolean seekTo(long positionUs, boolean allowNoop) {
boolean isDiscontinuous = extractor.seekTo(positionUs, allowNoop); boolean isDiscontinuous = extractor.seekTo(positionUs, allowNoop);
if (isDiscontinuous) { if (isDiscontinuous) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment