The TP-LINK network camera, when using rtsp connection, there is an exception in parsing sdp. Through breakpoint tracking, the complete sdp data is as follows:
An error occurred when parsing the following media description, which does not comply with the rules of RFC 8866 Section 5.14:
m=application/TP-LINK 0 RTP/AVP smart/1/90000
FFmpegignored this part when parsing because the media type application/TP-LINK is not one of the media types allowed by FFmpeg: video, audio, application, text
Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:717)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:693)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.io.IOException: androidx.media3.common.ParserException: Malformed SDP media description line: application/TP-LINK 0 RTP/AVP smart/1/90000{contentIsMalformed=true, dataType=4}
at androidx.media3.exoplayer.rtsp.RtspMediaPeriod$InternalListener.onSessionTimelineRequestFailed(RtspMediaPeriod.java:699)
at androidx.media3.exoplayer.rtsp.RtspClient.dispatchRtspError(RtspClient.java:336)
at androidx.media3.exoplayer.rtsp.RtspClient.-$$Nest$mdispatchRtspError(Unknown Source:0)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:696)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:529)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0(RtspClient.java:522)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.$r8$lambda$8deRm6rk5jv7dwvT8Gw1eQhwNr8(Unknown Source:0)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.rtsp.RtspMediaSource$RtspPlaybackException: androidx.media3.common.ParserException: Malformed SDP media description line: application/TP-LINK 0 RTP/AVP smart/1/90000{contentIsMalformed=true, dataType=4}
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:696)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:529)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0(RtspClient.java:522)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.$r8$lambda$8deRm6rk5jv7dwvT8Gw1eQhwNr8(Unknown Source:0)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.common.ParserException: Malformed SDP media description line: application/TP-LINK 0 RTP/AVP smart/1/90000{contentIsMalformed=true, dataType=4}
at androidx.media3.exoplayer.rtsp.SessionDescriptionParser.parseMediaDescriptionLine(SessionDescriptionParser.java:250)
at androidx.media3.exoplayer.rtsp.SessionDescriptionParser.parse(SessionDescriptionParser.java:195)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:640)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:529)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0(RtspClient.java:522)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.$r8$lambda$8deRm6rk5jv7dwvT8Gw1eQhwNr8(Unknown Source:0)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.lang.NumberFormatException: For input string: "smart/1/90000"
at java.lang.Integer.parseInt(Integer.java:747)
at java.lang.Integer.parseInt(Integer.java:865)
at androidx.media3.exoplayer.rtsp.SessionDescriptionParser.parseMediaDescriptionLine(SessionDescriptionParser.java:248)
at androidx.media3.exoplayer.rtsp.SessionDescriptionParser.parse(SessionDescriptionParser.java:195)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:640)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:529)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0(RtspClient.java:522)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener.$r8$lambda$8deRm6rk5jv7dwvT8Gw1eQhwNr8(Unknown Source:0)
at androidx.media3.exoplayer.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Media
Not applicable
Bug Report
[ ] You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.
Version
Media3 1.3.1
More version details
The TP-LINK network camera, when using rtsp connection, there is an exception in parsing sdp. Through breakpoint tracking, the complete sdp data is as follows:
An error occurred when parsing the following media description, which does not comply with the rules of RFC 8866 Section 5.14:
FFmpeg
ignored this part when parsing because the media typeapplication/TP-LINK
is not one of the media types allowed byFFmpeg
:video
,audio
,application
,text
SessionDescriptionParser did not ignore the above situation when parsing
Devices that reproduce the issue
All devices
Devices that do not reproduce the issue
None
Reproducible in the demo app?
Not tested
Reproduction steps
Expected result
Media playback successful
Actual result
Media
Not applicable
Bug Report
adb bugreport
to android-media-github@google.com after filing this issue.