After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 453630 - Rtspsrc invokes GST_ELEMENT_ERROR in eos when streaming over tcp
Rtspsrc invokes GST_ELEMENT_ERROR in eos when streaming over tcp
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-07-04 09:16 UTC by Tommi Myöhänen
Modified: 2007-08-16 13:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtspsrc.c.patch (403 bytes, patch)
2007-07-06 13:20 UTC, Tommi Myöhänen
none Details | Review

Description Tommi Myöhänen 2007-07-04 09:16:54 UTC
It seems in rtsp there's no end-of-stream signaling from a server when stream ends, but server just stops sending data. So a timeout will be triggered in rtspsrc in eos. Currently when streaming over tcp rtspsrc timeout also invokes GST_ELEMENT_ERROR:

ERROR: from element /playbin0/source: Could not read from resource.
Additional debug info:
gstrtspsrc.c(2312): gst_rtspsrc_loop_interleaved (): /playbin0/source:
Could not receive message. (Timeout while waiting for server response)

Could this error be suppressed to a warning like when streaming over udp, or do you know better ways for rtsp end-of-stream handling?
Comment 1 Wim Taymans 2007-07-05 11:27:31 UTC
I could not find a specification for EOS. I think you are supposed to EOS when the RTP session times out. 
Comment 2 Tommi Myöhänen 2007-07-06 13:20:53 UTC
Created attachment 91301 [details] [review]
rtspsrc.c.patch

Ok. When playing over tcp there's GST_ELEMENT_ERROR invoked every time in eos, attaching patch to suppress this into warning
Comment 3 Wim Taymans 2007-08-16 13:29:22 UTC
        * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
        (gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
        (find_stream), (gst_rtspsrc_create_stream), (new_session_pad),
        (request_pt_map), (gst_rtspsrc_do_stream_eos), (on_bye_ssrc),
        (on_timeout), (gst_rtspsrc_stream_configure_manager),
        (gst_rtspsrc_stream_push_event), (gst_rtspsrc_push_event),
        (gst_rtspsrc_loop_interleaved), (gst_rtspsrc_parse_rtpinfo),
        (gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
        * gst/rtsp/gstrtspsrc.h:
        Add connection-speed property.
        Add find_stream helper functions.
        Handle stream EOS based on BYE messages or SSRC timeout.
        Returns SUCCESS from the state change function as we hide our async
        elements from the parent.