App crashes with callstack
Critical error: java.lang.ArrayIndexOutOfBoundsException
length=7; index=10
com.google.android.exoplayer2.text.ssa.SsaDecoder.parseDialogueLine (SsaDecoder.java:186)
com.google.android.exoplayer2.text.ssa.SsaDecoder.parseEventBody (SsaDecoder.java:120)
com.google.android.exoplayer2.text.ssa.SsaDecoder.decode (SsaDecoder.java:83)
com.google.android.exoplayer2.text.ssa.SsaDecoder.decode (SsaDecoder.java:35)
com.google.android.exoplayer2.text.SimpleSubtitleDecoder.decode (SimpleSubtitleDecoder.java:70)
com.google.android.exoplayer2.text.SimpleSubtitleDecoder.decode (SimpleSubtitleDecoder.java:25)
com.google.android.exoplayer2.decoder.SimpleDecoder.decode (SimpleDecoder.java:222)
com.google.android.exoplayer2.decoder.SimpleDecoder.run (SimpleDecoder.java:188)
com.google.android.exoplayer2.decoder.SimpleDecoder.decode (SimpleDecoder.java:25)
com.google.android.exoplayer2.decoder.SimpleDecoder$1.run (SimpleDecoder.java:66)
I'm getting this issues as automatically submitted in crash reporting system, so I don't have repro or failing media.
It's SSA track (mimeType=text/x-ssa, language=eng) from mkv media streamed from _vaders.tv_ service
2.6.1
NVidia Shield, Android 7.0
Is it expected behavior of exoplayer that all exceptions raised in SimpleDecoder aren't routed via callbacks? There were issues before: https://github.com/google/ExoPlayer/issues/3396, https://github.com/google/ExoPlayer/issues/2957 which got fixes in processors/parsers. But are those parsers (subtitles and co.) ready for users' media, which can be broken?
There are two parts to this:
SsaDecoder to add robustness for the failure above.SsaDecoder has been made robust against this issue, and this change has been included in 2.6.1. A subsequent change avoids crashing the process will land in dev-v2 shortly, for inclusion in subsequent releases.