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 571400 - RTSP blocks in gst_element_set_state( GST_STATE_PAUSED ) and incorrect url
RTSP blocks in gst_element_set_state( GST_STATE_PAUSED ) and incorrect url
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.13
Other Linux
: Normal normal
: 0.10.31
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-02-12 06:07 UTC by Dmytro Poplavskiy
Modified: 2011-06-15 22:43 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dmytro Poplavskiy 2009-02-12 06:07:25 UTC
RTSP plugin blocks in gst_element_set_state( GST_STATE_PAUSED ) and incorrect url for quite large amount of time ( something like 30 seconds ).

I noticed it blocks even if the url is correct, but for much smaller amount of time ( like 1 second, depends on network quality ).

I'm using gstreamer 0.10.22 with plugins-good-0.10.13

Here is the backtrace:

  • #0 __kernel_vsyscall
  • #1 ppoll
    from /lib/libc.so.6
  • #2 gst_poll_wait
    at gstpoll.c line 1088
  • #3 gst_rtsp_connection_connect
    at gstrtspconnection.c line 282
  • #4 gst_rtspsrc_open
    at gstrtspsrc.c line 4055
  • #5 gst_rtspsrc_change_state
    at gstrtspsrc.c line 4777
  • #6 gst_element_change_state
    at gstelement.c line 2427
  • #7 gst_element_set_state_func
    at gstelement.c line 2377
  • #8 gst_element_set_state
    at gstelement.c line 2280
  • #9 gst_bin_change_state_func
    at gstbin.c line 2062
  • #10 gst_pipeline_change_state
    at gstpipeline.c line 465
  • #11 gst_element_change_state
    at gstelement.c line 2427
  • #12 gst_element_continue_state
    at gstelement.c line 2134
  • #13 gst_element_change_state
    at gstelement.c line 2464
  • #14 gst_element_set_state_func
    at gstelement.c line 2377
  • #15 gst_element_set_state
    at gstelement.c line 2280

Comment 1 Wim Taymans 2009-02-23 16:54:52 UTC
We should eventually change this code so that it does the network stuff in the streaming thread. 

We can't detect a server error then in the state change but an error will be posted at runtime. I guess this is ok.
Comment 2 Wim Taymans 2011-01-11 20:28:22 UTC
There is a non-blocking branch here:

  http://cgit.freedesktop.org/~wtay/gst-plugins-good/log/?h=progress

It also requires the progress branch of -core:

  http://cgit.freedesktop.org/~wtay/gstreamer/log/?h=progress

These modifications allows for application level timeouts and cancelation of pending requests. See also the design docs: 

  http://cgit.freedesktop.org/~wtay/gstreamer/tree/docs/design/draft-progress.txt?h=progress&id=f161c1a3003e8b7dc82a38e3664ee7accab288e3
Comment 3 Sebastian Dröge (slomo) 2011-05-20 05:35:05 UTC
And this is fixed now:


commit 2873585238280a150558919a217e554326ed8395
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Fri Jan 7 11:40:32 2011 +0100

    rtspsrc: first attempt at async implementation


... and many other commits.