google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.71k stars 6.02k forks source link

RTSP bagic authentication exception #9428

Closed vidicunt closed 3 years ago

vidicunt commented 3 years ago

I'm trying to connect to a C210 Tapo TP-LINK camera but I'm getting an exception. VLC works fine.

2021-09-15 09:53:11.736 30983-31096/com.bumtzihouse.app E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:624)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:600)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:67)
     Caused by: java.io.IOException: com.google.android.exoplayer2.ParserException: Invalid WWW-Authenticate header Digest realm="TP-Link IP-Camera", nonce="3b3bcc47802955f801a4c753506c1d35"
        at com.google.android.exoplayer2.source.rtsp.RtspMediaPeriod$InternalListener.onSessionTimelineRequestFailed(RtspMediaPeriod.java:562)
        at com.google.android.exoplayer2.source.rtsp.RtspClient.dispatchRtspError(RtspClient.java:261)
        at com.google.android.exoplayer2.source.rtsp.RtspClient.access$500(RtspClient.java:66)
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:525)
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$RtspClient$MessageListener(RtspClient.java:420)
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214) 
        at android.os.HandlerThread.run(HandlerThread.java:67) 
     Caused by: com.google.android.exoplayer2.source.rtsp.RtspMediaSource$RtspPlaybackException: com.google.android.exoplayer2.ParserException: Invalid WWW-Authenticate header Digest realm="TP-Link IP-Camera", nonce="3b3bcc47802955f801a4c753506c1d35"
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:525) 
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$RtspClient$MessageListener(RtspClient.java:420) 
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4) 
        at android.os.Handler.handleCallback(Handler.java:883) 
        at android.os.Handler.dispatchMessage(Handler.java:100) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.os.HandlerThread.run(HandlerThread.java:67) 
     Caused by: com.google.android.exoplayer2.ParserException: Invalid WWW-Authenticate header Digest realm="TP-Link IP-Camera", nonce="3b3bcc47802955f801a4c753506c1d35"
        at com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.parseWwwAuthenticateHeader(RtspMessageUtil.java:437)
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:451)
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$RtspClient$MessageListener(RtspClient.java:420) 
        at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4) 
        at android.os.Handler.handleCallback(Handler.java:883) 
        at android.os.Handler.dispatchMessage(Handler.java:100) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.os.HandlerThread.run(HandlerThread.java:67)

This is the camera: rtsp://google:exoplayer@tommyzat.go.ro:554/stream1

nibblis commented 3 years ago

response from camera contains "-" WWW-Authenticate header Digest realm="TP-Link IP-Camera", nonce="3b3bcc47802955f801a4c753506c1d35"

need to change regex WWW_AUTHENTICATION_HEADER_DIGEST_PATTERN in RtspMessageUtil, add "-"

claincly commented 3 years ago

WIll be fixed soon

christosts commented 3 years ago

The fix will be included in the upcoming 2.15.1 release.