Properly release sample streams for DASH

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132301223
This commit is contained in:
olly 2016-09-06 03:31:09 -07:00 committed by Santiago Seifert
parent e296d10c3f
commit 5f39b93d30
3 changed files with 11 additions and 3 deletions

View File

@ -626,12 +626,12 @@ import java.io.IOException;
}
}
enabledRenderers = new Renderer[0];
releasePeriodHoldersFrom(playingPeriodHolder != null ? playingPeriodHolder
: loadingPeriodHolder);
if (mediaSource != null) {
mediaSource.releaseSource();
mediaSource = null;
}
releasePeriodHoldersFrom(playingPeriodHolder != null ? playingPeriodHolder
: loadingPeriodHolder);
isTimelineReady = false;
isTimelineEnded = false;
playingPeriodHolder = null;

View File

@ -91,6 +91,12 @@ import java.util.List;
}
}
public void release() {
for (ChunkSampleStream<DashChunkSource> sampleStream : sampleStreams) {
sampleStream.release();
}
}
@Override
public void maybeThrowPrepareError() throws IOException {
manifestLoaderErrorThrower.maybeThrowError();

View File

@ -182,7 +182,9 @@ public final class DashMediaSource implements MediaSource {
@Override
public void releasePeriod(MediaPeriod mediaPeriod) {
periodsById.remove(((DashMediaPeriod) mediaPeriod).id);
DashMediaPeriod dashMediaPeriod = (DashMediaPeriod) mediaPeriod;
dashMediaPeriod.release();
periodsById.remove(dashMediaPeriod.id);
}
@Override