mirror of
https://github.com/androidx/media.git
synced 2025-05-08 08:00:49 +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) {
|
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
|
// 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.
|
// 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();
|
renderer.setCurrentStreamFinal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Renderer renderer : enabledRenderers) {
|
for (int i = 0; i < renderers.length; i++) {
|
||||||
if (!renderer.hasReadStreamToEnd()) {
|
Renderer renderer = renderers[i];
|
||||||
|
SampleStream sampleStream = readingPeriodHolder.sampleStreams[i];
|
||||||
|
if (renderer.getStream() != sampleStream
|
||||||
|
|| (sampleStream != null && !renderer.hasReadStreamToEnd())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user