Ok, so I did a quick run of the liveProxyServer.  See 400 Bad Request below, 
this is when I connect my RTSPClient to rtsp://172.16.10.100/proxyStream (The 
client was gstreamer playbin2)

root@custom:~# live555ProxyServer -V rtsp://172.16.10.109/live.s
dp
LIVE555 Proxy Server
        (LIVE555 Streaming Media library version 2013.10.25)

Opening connection to 172.16.10.109, port 554...
RTSP stream, proxying the stream 
"rtsp://172.16.10.109/live.sdp"<rtsp://172.16.10.109/live.sdp>
        Play this stream using the URL: rtsp://172.16.10.100/proxyStream

(We use port 80 for optional RTSP-over-HTTP tunneling.)
...remote connection opened
Sending request: DESCRIBE rtsp://172.16.10.109/live.sdp RTSP/1.0
CSeq: 2
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25)
Accept: application/sdp


Received 509 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 2
Date: Sun, 3 Nov 2013 1:43:44 GMT
Content-Base: rtsp://172.16.10.109/live.sdp/
Content-Type: application/sdp
Content-Length: 348

v=0
o=RTSP 1383443024 281 IN IP4 0.0.0.0
s=RTSP server
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=0-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 98
b=AS:0
a=rtpmap:98 H264/90000
a=control:trackID=1
a=fmtp:98 packetization-mode=1; profile-level-id=64401f; 
sprop-parameter-sets=J2RAH6wsagFAFumoKDAqAAAH0gAB1MAo,KO4EYsA=

ProxyServerMediaSession["rtsp://172.16.10.109/live.sdp/"<rtsp://172.16.10.109/live.sdp/>]
 added new "ProxyServerMediaSubsession" for RTP/video/H264 track

Opening connection to 172.16.10.109, port 554...
...remote connection opened
Sending request: OPTIONS rtsp://172.16.10.109/live.sdp/ RTSP/1.0
CSeq: 3
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25)


Received 143 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 3
Date: Sun, 3 Nov 2013 1:44:32 GMT
Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN

ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 0)
        Initiated: ProxyServerMediaSubsession["H264"]
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 4232835661)
Opening connection to 172.16.10.109, port 554...
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
...remote connection opened
Sending request: SETUP rtsp://172.16.10.109/live.sdp/trackID=1 RTSP/1.0
CSeq: 4
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25)
Transport: RTP/AVP;unicast;client_port=60278-60279


Received 37 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 400 Bad Request
CSeq: 4



ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 468786568)
Opening connection to 172.16.10.109, port 554...
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
...remote connection opened
Opening connection to 172.16.10.109, port 554...
...remote connection opened
Sending request: OPTIONS rtsp://172.16.10.109/live.sdp/ RTSP/1.0
CSeq: 6
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25)


Received 143 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 6
Date: Sun, 3 Nov 2013 1:45:26 GMT
Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN


-----------


I was looking into the RTSPClient code and in the handleResponseBytes(), it 
does not a handle a 400 Bad request.  Which maybe ideal when not a proxy 
server.  However in the case of being a proxy server you would want to treat a 
failure such as a 400  as a disconnect (I would think) and reconnect as if the 
liveness responded with an error?

As a test I modified handleResponseBytes() to call a virtual function that I 
can override in the ProxyRTSPClient to handle 400 like a disconnect. As if the 
continueAfterLivenessCommand() was called with a resultCode < 0.  It sometimes 
recovers now, but it causes problems with my RTSP Client and fails too.  So I 
wait for your guidence.

Thanks,
Craig



On 11/03/2013 01:32 AM, Ross Finlayson wrote:
Please post an example of the diagnostic output from the *unmodified* proxy 
server, when run with the back-end server that causes you a problem.  I.e., run 
the server with the "-V" command-line option.

(And, as always, make sure you're using the most up-to-date version of the 
code.)

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to