diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 13c13e8795..e6a6eff6cd 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -110,6 +110,8 @@ ([#9800](https://github.com/google/ExoPlayer/issues/9800)). * Handle when RTSP track timing is not available ([#9775](https://github.com/google/ExoPlayer/issues/9775)). + * Ignores invalid RTP-Info header values + ([#9619](https://github.com/google/ExoPlayer/issues/9619)). * Cast extension * Fix bug that prevented `CastPlayer` from calling `onIsPlayingChanged` correctly ([#9792](https://github.com/google/ExoPlayer/issues/9792)). diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java index 5fd4823b95..5b30d5a039 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java @@ -619,11 +619,18 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; startTimingString == null ? RtspSessionTiming.DEFAULT : RtspSessionTiming.parseTiming(startTimingString); - @Nullable String rtpInfoString = response.headers.get(RtspHeaders.RTP_INFO); - ImmutableList trackTimingList = - rtpInfoString == null - ? ImmutableList.of() - : RtspTrackTiming.parseTrackTiming(rtpInfoString, uri); + + ImmutableList trackTimingList; + try { + @Nullable String rtpInfoString = response.headers.get(RtspHeaders.RTP_INFO); + trackTimingList = + rtpInfoString == null + ? ImmutableList.of() + : RtspTrackTiming.parseTrackTiming(rtpInfoString, uri); + } catch (ParserException e) { + trackTimingList = ImmutableList.of(); + } + onPlayResponseReceived(new RtspPlayResponse(response.status, timing, trackTimingList)); break;