Change prepare() for maybePrepare() in HlsSampleStreamWrapper

This will allow asynchronous preparation.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136176854
This commit is contained in:
aquilescanta 2016-10-14 11:16:16 -07:00 committed by Oliver Woodman
parent dca4d16bef
commit e873b4b6ab
2 changed files with 9 additions and 6 deletions

View File

@ -328,7 +328,7 @@ import java.util.List;
sampleStreamWrappers = new HlsSampleStreamWrapper[] { sampleStreamWrappers = new HlsSampleStreamWrapper[] {
buildSampleStreamWrapper(C.TRACK_TYPE_DEFAULT, baseUri, variants, null, null)}; buildSampleStreamWrapper(C.TRACK_TYPE_DEFAULT, baseUri, variants, null, null)};
pendingPrepareCount = 1; pendingPrepareCount = 1;
sampleStreamWrappers[0].prepare(); sampleStreamWrappers[0].continuePreparing();
return; return;
} }
@ -369,16 +369,16 @@ import java.util.List;
selectedVariants.toArray(variants); selectedVariants.toArray(variants);
HlsSampleStreamWrapper sampleStreamWrapper = buildSampleStreamWrapper(C.TRACK_TYPE_DEFAULT, HlsSampleStreamWrapper sampleStreamWrapper = buildSampleStreamWrapper(C.TRACK_TYPE_DEFAULT,
baseUri, variants, masterPlaylist.muxedAudioFormat, masterPlaylist.muxedCaptionFormat); baseUri, variants, masterPlaylist.muxedAudioFormat, masterPlaylist.muxedCaptionFormat);
sampleStreamWrapper.prepare();
sampleStreamWrappers[currentWrapperIndex++] = sampleStreamWrapper; sampleStreamWrappers[currentWrapperIndex++] = sampleStreamWrapper;
sampleStreamWrapper.continuePreparing();
} }
// Build audio stream wrappers. // Build audio stream wrappers.
for (int i = 0; i < audioVariants.size(); i++) { for (int i = 0; i < audioVariants.size(); i++) {
HlsSampleStreamWrapper sampleStreamWrapper = buildSampleStreamWrapper(C.TRACK_TYPE_AUDIO, HlsSampleStreamWrapper sampleStreamWrapper = buildSampleStreamWrapper(C.TRACK_TYPE_AUDIO,
baseUri, new HlsMasterPlaylist.HlsUrl[] {audioVariants.get(i)}, null, null); baseUri, new HlsMasterPlaylist.HlsUrl[] {audioVariants.get(i)}, null, null);
sampleStreamWrapper.prepare();
sampleStreamWrappers[currentWrapperIndex++] = sampleStreamWrapper; sampleStreamWrappers[currentWrapperIndex++] = sampleStreamWrapper;
sampleStreamWrapper.continuePreparing();
} }
// Build subtitle stream wrappers. // Build subtitle stream wrappers.

View File

@ -144,8 +144,10 @@ import java.util.LinkedList;
pendingResetPositionUs = positionUs; pendingResetPositionUs = positionUs;
} }
public void prepare() { public void continuePreparing() {
continueLoading(lastSeekPositionUs); if (!prepared) {
continueLoading(lastSeekPositionUs);
}
} }
/** /**
@ -154,7 +156,8 @@ import java.util.LinkedList;
*/ */
public void prepareSingleTrack(Format format) { public void prepareSingleTrack(Format format) {
track(0).format(format); track(0).format(format);
endTracks(); sampleQueuesBuilt = true;
maybeFinishPrepare();
} }
public void maybeThrowPrepareError() throws IOException { public void maybeThrowPrepareError() throws IOException {