[Live-devel] RTP over RTSP: client sending RR "early"

Ralf Globisch rglobisch at csir.co.za
Wed Oct 3 04:23:06 PDT 2012


Hi Ross,


Thanks for the quick fix! Preliminary tests confirm that the early RR is
not being sent anymore.


Upon testing the fix we ran into another seemingly related issue.
We now have the situation where the fix is allowing another issue to
appear,
that I have definitely also seen in the past, but at the time didn't
know what 
to make of it.


We suspect that the problem is now reversed: after the client sends the
PLAY request,
it receives RTP/RTCP data over the TCP connection before it receives the
200 OK and
then fails with the "RTSP response was truncated. Increase
"RTSPClient::responseBufferSize" message.


To recap, we are streaming from a live555 server to VLC running on an
Android-based mobile device 
and the delays in the connection allow this issue to appear. 
The issue has *seldomly* occurred when streaming to desktops over
"better" Internet connections.


Attached are the server side and client device wireshark traces. Since
it wasn't immediately apparent from 
the client trace that the client is receiving RTP data, I added some
debug logging to output the buffer contents in RTSPClient.cpp. An
excerpt of the log follows:


10-03 12:44:03.453: D/live555(871): RTSP/1.0 200 OK
10-03 12:44:03.453: D/live555(871): CSeq: 5
10-03 12:44:03.453: D/live555(871): Date: Wed, Oct 03 2012 10:42:28 GMT
10-03 12:44:03.453: D/live555(871): Transport:
RTP/AVP/TCP;unicast;destination=88.75.220.178;source=192.168.122.130;interleaved=2-3
10-03 12:44:03.453: D/live555(871): Session: 51717F51
10-03 12:44:03.453: D/live555(871): 
10-03 12:44:03.453: D/VLC(871): [0x41bf48]: live555 demux setup start:
0.000000 stop:0.000000
10-03 12:44:03.833: D/live555(871): �
10-03 12:44:03.833: D/live555(871): ��
10-03 12:44:03.833: D/live555(871): ���
10-03 12:44:03.833: D/live555(871): ���*
10-03 12:44:03.833: D/live555(871): ���*�
10-03 12:44:03.833: D/live555(871): ���*��
10-03 12:44:03.833: D/live555(871): ���*��g
10-03 12:44:03.833: D/live555(871): ���*��g�
...
...
10-03 12:44:03.838: D/live555(871): ���*��g˓"O�
10-03 12:44:03.838: D/live555(871): Received 
10-03 12:44:03.838: D/live555(871): 1378
10-03 12:44:03.838: D/live555(871):  new bytes of response data:
10-03 12:44:03.838: D/live555(871): ���*��g˓"O�
10-03 12:44:03.893: D/live555(871): Received 
10-03 12:44:03.893: D/live555(871): 1440
10-03 12:44:03.893: D/live555(871):  new bytes of response data:
10-03 12:44:03.893: D/live555(871): ���*��g˓"O�
10-03 12:44:03.918: D/live555(871): Received 
10-03 12:44:03.918: D/live555(871): 1440
10-03 12:44:03.918: D/live555(871):  new bytes of response data:
10-03 12:44:03.918: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:03.918: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:03.958: D/live555(871): Received 
10-03 12:44:03.958: D/live555(871): 1440
10-03 12:44:03.958: D/live555(871):  new bytes of response data:
10-03 12:44:03.958: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:03.958: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:04.073: D/live555(871): Received 
10-03 12:44:04.073: D/live555(871): 1412
10-03 12:44:04.073: D/live555(871):  new bytes of response data:
10-03 12:44:04.078: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:04.078: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:04.303: D/live555(871): Received 
10-03 12:44:04.303: D/live555(871): 1650
10-03 12:44:04.308: D/live555(871):  new bytes of response data:
10-03 12:44:04.308: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:04.308: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:04.623: D/live555(871): Received 
10-03 12:44:04.623: D/live555(871): 1097
10-03 12:44:04.623: D/live555(871):  new bytes of response data:
10-03 12:44:04.623: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:04.623: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:04.783: D/live555(871): Received 
10-03 12:44:04.783: D/live555(871): 1440
10-03 12:44:04.783: D/live555(871):  new bytes of response data:
10-03 12:44:04.783: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:04.783: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:04.848: D/live555(871): Received 
10-03 12:44:04.848: D/live555(871): 358
10-03 12:44:04.853: D/live555(871):  new bytes of response data:
10-03 12:44:04.853: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:04.853: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.133: D/live555(871): Received 
10-03 12:44:05.143: D/live555(871): 1302
10-03 12:44:05.143: D/live555(871):  new bytes of response data:
10-03 12:44:05.143: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.143: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.333: D/live555(871): Received 
10-03 12:44:05.333: D/live555(871): 1440
10-03 12:44:05.338: D/live555(871):  new bytes of response data:
10-03 12:44:05.338: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.338: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.363: D/live555(871): Received 
10-03 12:44:05.363: D/live555(871): 221
10-03 12:44:05.363: D/live555(871):  new bytes of response data:
10-03 12:44:05.363: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.363: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.703: D/live555(871): Received 
10-03 12:44:05.703: D/live555(871): 1328
10-03 12:44:05.703: D/live555(871):  new bytes of response data:
10-03 12:44:05.703: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.703: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.888: D/live555(871): Received 
10-03 12:44:05.888: D/live555(871): 1440
10-03 12:44:05.888: D/live555(871):  new bytes of response data:
10-03 12:44:05.888: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.888: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:05.928: D/live555(871): Received 
10-03 12:44:05.928: D/live555(871): 331
10-03 12:44:05.928: D/live555(871):  new bytes of response data:
10-03 12:44:05.928: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:05.928: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:06.258: D/live555(871): Received 
10-03 12:44:06.258: D/live555(871): 1394
10-03 12:44:06.263: D/live555(871):  new bytes of response data:
10-03 12:44:06.263: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:06.263: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:06.428: D/live555(871): Received 
10-03 12:44:06.428: D/live555(871): 1440
10-03 12:44:06.433: D/live555(871):  new bytes of response data:
10-03 12:44:06.433: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:06.433: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:06.488: D/live555(871): Received 
10-03 12:44:06.488: D/live555(871): 403
10-03 12:44:06.488: D/live555(871):  new bytes of response data:
10-03 12:44:06.488: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:06.488: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:06.773: D/live555(871): Received 
10-03 12:44:06.773: D/live555(871): 1344
10-03 12:44:06.773: D/live555(871):  new bytes of response data:
10-03 12:44:06.773: D/live555(871):
p��{���+�w����*���S*Ӑ���S�9�,r�s����9�%�Z5���9U�G�x��xަ�����
10-03 12:44:06.773: D/live555(871): n*���44�Y8~X,87�i�b�Fw>
��	�7��eP�|�wG`dd�S��*�p�C!�!���L��[�,��+��$
10-03 12:44:07.083: E/VLC(871): [0x41bf48]: live555 demux RTSP PLAY
failed RTSP response was truncated. Increase
"RTSPClient::responseBufferSize"



The full debug log is also attached in case that helps.
I'm guessing that this is the RTP RTCP data and the '$' signs seem to
confirm that.
What are your thoughts on this and any idea how hard it would be to fix?


Best regards,
Ralf



>>> Ross Finlayson <finlayson at live555.com> 11/09/12 6:47 AM >>>
FYI, I've now installed a new version (2012.09.11) of the "LIVE555
Streaming Media" code that fixes the problem with clients occasionally
sending RTCP "RR" packets 'early' (when streaming RTP/RTCP-over-TCP).

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


-- 
This message is subject to the CSIR's copyright terms and conditions,
e-mail legal notice, and implemented Open Document Format (ODF)
standard. 
The full disclaimer details can be found at
http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by
MailScanner, 
and is believed to be clean.

Please consider the environment before printing this email.





-- 
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. 
The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.

Please consider the environment before printing this email.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: client.log
Type: application/octet-stream
Size: 7846 bytes
Desc: not available
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20121003/31d2eba4/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: server.log
Type: application/octet-stream
Size: 52966 bytes
Desc: not available
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20121003/31d2eba4/attachment-0003.obj>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: vlc_live555_log.txt
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20121003/31d2eba4/attachment-0001.txt>


More information about the live-devel mailing list