Fix NPE in TextTrackRenderer

Issue: #2081

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=139566990
This commit is contained in:
olly 2016-11-18 04:07:20 -08:00 committed by Oliver Woodman
parent cafe603694
commit 4a30dff524

View File

@ -114,19 +114,11 @@ public final class TextRenderer extends BaseRenderer implements Callback {
@Override @Override
protected void onPositionReset(long positionUs, boolean joining) { protected void onPositionReset(long positionUs, boolean joining) {
clearOutput();
resetBuffers();
decoder.flush();
inputStreamEnded = false; inputStreamEnded = false;
outputStreamEnded = false; outputStreamEnded = false;
if (subtitle != null) {
subtitle.release();
subtitle = null;
}
if (nextSubtitle != null) {
nextSubtitle.release();
nextSubtitle = null;
}
nextInputBuffer = null;
clearOutput();
decoder.flush();
} }
@Override @Override
@ -220,18 +212,10 @@ public final class TextRenderer extends BaseRenderer implements Callback {
@Override @Override
protected void onDisabled() { protected void onDisabled() {
if (subtitle != null) { clearOutput();
subtitle.release(); resetBuffers();
subtitle = null;
}
if (nextSubtitle != null) {
nextSubtitle.release();
nextSubtitle = null;
}
decoder.release(); decoder.release();
decoder = null; decoder = null;
nextInputBuffer = null;
clearOutput();
super.onDisabled(); super.onDisabled();
} }
@ -247,6 +231,19 @@ public final class TextRenderer extends BaseRenderer implements Callback {
return true; return true;
} }
private void resetBuffers() {
nextInputBuffer = null;
nextSubtitleEventIndex = C.INDEX_UNSET;
if (subtitle != null) {
subtitle.release();
subtitle = null;
}
if (nextSubtitle != null) {
nextSubtitle.release();
nextSubtitle = null;
}
}
private long getNextEventTime() { private long getNextEventTime() {
return ((nextSubtitleEventIndex == C.INDEX_UNSET) return ((nextSubtitleEventIndex == C.INDEX_UNSET)
|| (nextSubtitleEventIndex >= subtitle.getEventTimeCount())) ? Long.MAX_VALUE || (nextSubtitleEventIndex >= subtitle.getEventTimeCount())) ? Long.MAX_VALUE