mirror of
https://github.com/androidx/media.git
synced 2025-05-07 15:40:37 +08:00
Make sure we don't read ahead of deferred enable/disable operations
Issue: #2290
This commit is contained in:
parent
037aeaf764
commit
8a0e76ba32
@ -1138,18 +1138,24 @@ import java.io.IOException;
|
||||
}
|
||||
|
||||
if (readingPeriodHolder.isLast) {
|
||||
for (Renderer renderer : enabledRenderers) {
|
||||
for (int i = 0; i < renderers.length; i++) {
|
||||
Renderer renderer = renderers[i];
|
||||
SampleStream sampleStream = readingPeriodHolder.sampleStreams[i];
|
||||
// Defer setting the stream as final until the renderer has actually consumed the whole
|
||||
// stream in case of playlist changes that cause the stream to be no longer final.
|
||||
if (renderer.hasReadStreamToEnd()) {
|
||||
if (sampleStream != null && renderer.getStream() == sampleStream
|
||||
&& renderer.hasReadStreamToEnd()) {
|
||||
renderer.setCurrentStreamFinal();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
for (Renderer renderer : enabledRenderers) {
|
||||
if (!renderer.hasReadStreamToEnd()) {
|
||||
for (int i = 0; i < renderers.length; i++) {
|
||||
Renderer renderer = renderers[i];
|
||||
SampleStream sampleStream = readingPeriodHolder.sampleStreams[i];
|
||||
if (renderer.getStream() != sampleStream
|
||||
|| (sampleStream != null && !renderer.hasReadStreamToEnd())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user