title: Sending and Receiving custom RTCP packets/events with GStreamer
body: <p>I am looking to build an MCPTT(Push to talk) kind of application where the Floor Control is handled by sending RTCP packets</p>
  <p>RTCP packets in context of MCPTT floor types are as defined at <a href="https://www.wireshark.org/docs/dfref/r/rtcp.html" rel="nofollow noreferrer">https://www.wireshark.org/docs/dfref/r/rtcp.html</a> (search keyword 'floor')</p>
  <p>I am using GStreamer media library for audio video streaming. For example if I have a pipeline as below,</p>
  <p>Sender 1:</p>
  <pre><code>videotestsrc ! vp8enc ! rtphvp8pay name=pay1 ! udpsink host=X port=5001
  </code></pre>
  <p>Sender 2:</p>
  <pre><code>videotestsrc ! vp8enc ! rtphvp8pay name=pay2 ! udpsink host=X port=5002
  </code></pre>
  <p>Receiver:</p>
  <pre><code>udpsrc port=5001 ! rtpvp8depay name=depay1 !
                                               input-selector name=select1 ! rtpvp8pay ! udpsink
  udpsrc port=5002 ! rtpvp8depay name=depay2 !
  </code></pre>
  <p>I will actually write above in C code, above is only for pipeline representation</p>
  <p>Here in above context, based on RTCP floor event sent from <em>pay1/pay2</em> and received at <em>depay1/depay2</em> I will control the <strong>active</strong> <em>sink-pad</em> of input selector</p>
  <p>I would like to know how to create a custom RTCP event in GStreamer and send them and receive/parse them at receiver end</p>
  <p>Also please suggest if this approach is valid for this kind of use case or any other approach/library suits well here</p>