rtspsrc, rtpbin, rtpjitterbuffer: add new buffer mode to allow client-side...
rtspsrc, rtpbin, rtpjitterbuffer: add new buffer mode to allow client-side flow control of rtp-over-tcp streams.
Added a new mode, "flow-control," to rtpjitterbuffer and exposed it as a new buffer-mode in rtspsrc. This mode allows the server to send RTP data over TCP as fast as it can, with all flow-control happening at the client end, as required by the ONVIF Streaming spec when the "Rate-Control=no" option is supplied to an RTSP PLAY request. When this mode is set, jitterbuffer will emit a new signal, "flow-control," whenever the buffer level rises above or falls below a level defined by the new property, "flow-control-level." The tcp recv loop, gst_rtspsrc_loop_interleaved, reacts to that signal by stopping or re-starting recv calls to the TCP socket. Likewise, in this mode, recv calls won't be made while the pipeline is paused.