rtspsrc: fix and improve async handling
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 6 Apr 2011 13:49:01 +0000 (15:49 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 17 May 2011 09:56:22 +0000 (11:56 +0200)
commitf7ddf811d76285229f6e0a4a5ce8cce83e1729a9
tree9655c62998a8cf917ee8d8fdfe06e37c69923b1b
parente6798ad54ccf6100c9eb37106526005291a1f340
rtspsrc: fix and improve async handling

Simplify the command handling; passing a command to thread means we really
want it to get the message, which means to always flush provided the command
can handle being interrupted.  Command thread indicates whether command
allows interruption and ensure non-flushing connection as it subsequently
needs it.

In particular, this also makes the TEARDOWN sequence interruptable
and also prevents races where _loop_ could miss a command and would
continue receiving (or at least trying to).

See #632504.
gst/rtsp/gstrtspsrc.c
gst/rtsp/gstrtspsrc.h