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