failed parsing range header when using onvif backchannel
When using clock=now in the range header for a backchannel there is an issue with rtsp-client.c being able to parse it? Am I doing something wrong or does this have something to do with GStreamer?
RTSP response message 0xb3c87b8c
status line:
code: '200'
reason: 'OK'
version: '1.0'
headers:
key: 'CSeq', value: '4'
key: 'Transport', value: 'RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=21D9B6E0;mode="PLAY"'
key: 'Server', value: 'GStreamer RTSP server'
key: 'Session', value: '.e33K_SphGiNJK_O'
0:00:20.548190081 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:736:gst_mini_object_replace:[00m replace (nil) (0) with (nil) (0)
0:00:20.548227155 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:736:gst_mini_object_replace:[00m replace (nil) (0) with (nil) (0)
0:00:20.548869636 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:736:gst_mini_object_replace:[00m replace (nil) (0) with (nil) (0)
RTSP request message 0x195c450
request line:
method: 'PLAY'
uri: 'rtsp://10.10.10.111:8096/LE880/'
version: '1.0'
headers:
key: 'CSeq', value: '5'
key: 'Host', value: '10.10.10.111:8096'
----->key: 'Range', value: 'clock=now-'<---------------
key: 'Scale', value: '1'
key: 'Require', value: 'www.onvif.org/ver20/backchannel'
key: 'Session', value: '.e33K_SphGiNJK_O'
key: 'User-Agent', value: 'Wisenet WAVE/4.2.0.32841 (Hanwha) Mozilla/5.0 (Windows NT 6.1; WOW64)'
body:
0:00:20.550051414 [35m 916[00m 0x166d900 [36mINFO [00m [00m rtspclient rtsp-client.c:3981:handle_request:[00m client 0x17bb618: received a request PLAY rtsp://10.10.10.111:8096/LE880/ 1.0
0:00:20.550091766 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspauth rtsp-auth.c:1191:gst_rtsp_auth_check:<GstRTSPAuth@0x14b3a50>[00m check authorization 'auth.check.url'
0:00:20.550131636 [35m 916[00m 0x166d900 [33;01mLOG [00m [00m rtspmountpoints rtsp-mount-points.c:256:gst_rtsp_mount_points_match:[00m Looking for mount point path /LE880
0:00:20.550157858 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;04m default rtsp-mount-points.c:80:data_item_dump:[00m inspect: /LE880 0x17b70c8
0:00:20.550181469 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;04m default rtsp-mount-points.c:80:data_item_dump:[00m prefix: /LE880 0x17b70c8
0:00:20.550204451 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;04m default rtsp-mount-points.c:80:data_item_dump:[00m result: /LE880 0x17b70c8
0:00:20.550226692 [35m 916[00m 0x166d900 [36mINFO [00m [00m rtspmountpoints rtsp-mount-points.c:305:gst_rtsp_mount_points_match:[00m found media factory 0x17b70c8 for path /LE880
0:00:20.550262081 [35m 916[00m 0x166d900 [33;01mLOG [00m [00m rtspclient rtsp-client.c:1340:default_pre_signal_handler:<GstRTSPOnvifClient@0x17bb618>[00m returning GST_RTSP_STS_OK
0:00:20.550288951 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspmedia rtsp-media.c:5082:gst_rtsp_media_complete_pipeline:<GstRTSPOnvifMedia@0xb3376238>[00m complete pipeline
0:00:20.550313358 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:5795:gst_rtsp_stream_complete_stream:<GstRTSPStream@0xb3378650>[00m complete stream
0:00:20.550361747 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:3702:create_receiver_part:<GstRTSPStream@0xb3378650>[00m create receiver part
0:00:20.550385729 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;34m GST_CAPS gstcaps.c:263:gst_caps_new_empty:[00m created caps 0xb3388e50
0:00:20.550412414 [35m 916[00m 0x166d900 [37mTRACE [00m [00m structure gststructure.c:292:gst_structure_new_id_empty_with_size:[00m created structure 0xb33e9600
0:00:20.550434432 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;34m GST_CAPS gstcaps.c:263:gst_caps_new_empty:[00m created caps 0xb3388c78
0:00:20.550457525 [35m 916[00m 0x166d900 [37mTRACE [00m [00m structure gststructure.c:292:gst_structure_new_id_empty_with_size:[00m created structure 0xb33de6f0
0:00:20.550487395 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:3722:create_receiver_part:<GstRTSPStream@0xb3378650>[00m RTP caps: application/x-rtp RTCP caps: application/x-rtcp
0:00:20.550516303 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:238:gst_object_ref:<media-pipeline>[00m 0xb337f078 ref 1->2
0:00:20.550548062 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:2471:gst_element_sync_state_with_parent:<funnel2>[00m syncing state (PLAYING) to parent media-pipeline PLAYING (PLAYING, VOID_PENDING)
0:00:20.550572969 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:2968:gst_element_set_state_func:<funnel2>[00m set_state to PLAYING
0:00:20.550600395 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3006:gst_element_set_state_func:<funnel2>[00m current PLAYING, old_pending VOID_PENDING, next VOID_PENDING, old return SUCCESS
0:00:20.550625636 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3040:gst_element_set_state_func:<funnel2>[00m final: setting state from PLAYING to PLAYING
0:00:20.550653877 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3357:gst_element_change_state_func:<funnel2>[00m element is already in the PLAYING state
0:00:20.550675081 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3129:gst_element_change_state:<funnel2>[00m element changed state SUCCESS
0:00:20.550697210 [35m 916[00m 0x166d900 [36mINFO [00m [00;01;31m GST_STATES gstelement.c:2817:gst_element_continue_state:<funnel2>[00m completed state change to PLAYING
0:00:20.550720321 [35m 916[00m 0x166d900 [33;01mLOG [00m [00;01;31m GST_STATES gstelement.c:3145:gst_element_change_state:<funnel2>[00m exit state change 1
0:00:20.550744229 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3052:gst_element_set_state_func:<funnel2>[00m returned SUCCESS
0:00:20.550768618 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:265:gst_object_unref:<media-pipeline>[00m 0xb337f078 unref 2->1
0:00:20.550794081 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:238:gst_object_ref:<media-pipeline>[00m 0xb337f078 ref 1->2
0:00:20.550822581 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:2471:gst_element_sync_state_with_parent:<funnel3>[00m syncing state (PLAYING) to parent media-pipeline PLAYING (PLAYING, VOID_PENDING)
0:00:20.550845821 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:2968:gst_element_set_state_func:<funnel3>[00m set_state to PLAYING
0:00:20.550872377 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3006:gst_element_set_state_func:<funnel3>[00m current PLAYING, old_pending VOID_PENDING, next VOID_PENDING, old return SUCCESS
0:00:20.550917099 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3040:gst_element_set_state_func:<funnel3>[00m final: setting state from PLAYING to PLAYING
0:00:20.550941581 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3357:gst_element_change_state_func:<funnel3>[00m element is already in the PLAYING state
0:00:20.550962414 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3129:gst_element_change_state:<funnel3>[00m element changed state SUCCESS
0:00:20.550984581 [35m 916[00m 0x166d900 [36mINFO [00m [00;01;31m GST_STATES gstelement.c:2817:gst_element_continue_state:<funnel3>[00m completed state change to PLAYING
0:00:20.551007395 [35m 916[00m 0x166d900 [33;01mLOG [00m [00;01;31m GST_STATES gstelement.c:3145:gst_element_change_state:<funnel3>[00m exit state change 1
0:00:20.551029414 [35m 916[00m 0x166d900 [37mDEBUG [00m [00;01;31m GST_STATES gstelement.c:3052:gst_element_set_state_func:<funnel3>[00m returned SUCCESS
0:00:20.551053414 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:265:gst_object_unref:<media-pipeline>[00m 0xb337f078 unref 2->1
0:00:20.551077951 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:661:gst_mini_object_unref:[00m 0xb3388e50 unref 1->0
0:00:20.551100506 [35m 916[00m 0x166d900 [37mTRACE [00m [00m structure gststructure.c:547:gst_structure_free:[00m free structure 0xb33e9600
0:00:20.551121747 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;34m GST_CAPS gstcaps.c:218:_gst_caps_free:[00m freeing caps 0xb3388e50
0:00:20.551145006 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:661:gst_mini_object_unref:[00m 0xb3388c78 unref 1->0
0:00:20.551166488 [35m 916[00m 0x166d900 [37mTRACE [00m [00m structure gststructure.c:547:gst_structure_free:[00m free structure 0xb33de6f0
0:00:20.551187414 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;34m GST_CAPS gstcaps.c:218:_gst_caps_free:[00m freeing caps 0xb3388c78
0:00:20.551208377 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:3539:create_sender_part:<GstRTSPStream@0xb3378650>[00m create sender part
0:00:20.551233655 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:3551:create_sender_part:<GstRTSPStream@0xb3378650>[00m tcp: 1, udp: 0, mcast: 0 (ttl: 0)
0:00:20.551261525 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtspstream rtsp-stream.c:5814:gst_rtsp_stream_complete_stream:<GstRTSPStream@0xb3378650>[00m pipeline successfully updated
0:00:20.551284266 [35m 916[00m 0x166d900 [36mINFO [00m [00m rtspstream rtsp-stream.c:4771:update_transport:[00m adding TCP 10.10.10.127
0:00:20.551320932 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtpbin gstrtpbin.c:1128:gst_rtp_bin_get_storage:<rtpbin0>[00m retrieving internal storage object, index: 2
0:00:20.551346932 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:238:gst_object_ref:<rtpstorage2>[00m 0xb190a810 ref 1->2
0:00:20.551386729 [35m 916[00m 0x166d900 [37mDEBUG [00m [00m rtpstorage gstrtpstorage.c:109:gst_rtp_storage_set_property:<rtpstorage2>[00m RTP storage size set to 0:00:00.000000000
0:00:20.551418451 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:238:gst_object_ref:<rtpbin0>[00m 0xb3384098 ref 2->3
0:00:20.551445062 [35m 916[00m 0x166d900 [33;01mLOG [00m [00;01;37;44m GST_PROPERTIES gstobject.c:473:gst_object_dispatch_properties_changed:<rtpbin0>[00m deep notification from rtpstorage2 (size-time)
0:00:20.551472525 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:238:gst_object_ref:<media-pipeline>[00m 0xb337f078 ref 1->2
0:00:20.551517247 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:265:gst_object_unref:<rtpbin0>[00m 0xb3384098 unref 3->2
0:00:20.551542173 [35m 916[00m 0x166d900 [33;01mLOG [00m [00;01;37;44m GST_PROPERTIES gstobject.c:473:gst_object_dispatch_properties_changed:<media-pipeline>[00m deep notification from rtpstorage2 (size-time)
0:00:20.551569247 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstobject.c:265:gst_object_unref:<media-pipeline>[00m 0xb337f078 unref 2->1
----------------------->
0:00:20.551598451 [35m 916[00m 0x166d900 [31;01mERROR [00m [00m rtspclient rtsp-client.c:2023:setup_play_mode:[00m client 0x17bb618: failed parsing range header
0:00:20.551619784 [35m 916[00m 0x166d900 [31;01mERROR [00m [00m rtspclient rtsp-client.c:2252:handle_play_request:[00m client 0x17bb618: seek failed
<----------------------
0:00:20.551645081 [35m 916[00m 0x166d900 [37mTRACE [00m [00;01;31;44m GST_REFCOUNTING gstminiobject.c:736:gst_mini_object_replace:[00m replace (nil) (0) with (nil) (0)
RTSP response message 0xb3c87b8c
status line:
code: '400'
reason: 'Bad Request'
version: '1.0'
headers:
key: 'CSeq', value: '5'
key: 'Server', value: 'GStreamer RTSP server'