rtspsrc: do not change state to PLAYING if currently chaning state
authorAleix Conchillo Flaque <aleix@oblong.com>
Thu, 27 Sep 2012 19:17:58 +0000 (12:17 -0700)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 10 Dec 2012 14:13:22 +0000 (15:13 +0100)
commit3503aef946649da39e9b423adebe173f7a692b89
tree34ffe0a949868ceccb39187d5feba3c38f37b447
parentd4622c974f330afc44435e1327feee99c64e870d
rtspsrc: do not change state to PLAYING if currently chaning state

* gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be
  happening in the application thread, so we don't change the state to
  PLAYING in the gstrtspsrc thread unless it is safe.

  A specific case is when chaning the state to NULL from the application
  thread. This will synchronously try to stop the task (with the element
  state lock acquired), but we will try a gst_element_set_state from
  gstrtspsrc thread which will block on the element state lock causing a
  deadlock.

  https://bugzilla.gnome.org/show_bug.cgi?id=684312
gst/rtsp/gstrtspsrc.c