Hi folks, Here's a patch set to add a GStreamer-based RTP implementation for module-rtp-send and module-rtp-receive. The rationale for this is that our own RTP implementation is rather basic, and using a more well-established stack will allow us to do more, such as add support for RTCP, clock synchronisation, and compressed formats. This should also reduce our support burden for the RTP stack in theory (although we don't have too much other than the occasional crasher, I think). For compressed formats, in particular, moving to a GStreamer-based implementation lets us not have to deal with messy codec bits within PulseAudio, which is important IMO, since it opens a whole can of worms that I'd rather not deal with at the PulseAudio layer. Conversely, it would be useful to support Opus or other compression since we currently end up flooding the network while streaming raw audio. Patch 1, 2 and 6 are small fixes to the existing code Patch 3 drops support for non-L16 formats which seem to not be useful Patch 4 and 5 refactor the code to hide away the RTP implementation details from the actual modules Patch 7 is minor rtpoll plumbing improvement that was needed Patch 8 is the actual GStreamer implementation >From a packaging perspective, this might be a bit confusing since we add a dependency on the GStreamer package which might in turn depend on PulseAudio (for pulsesrc and pulsesink). The exact dependencies are: * The PulseAudio server has a compile and run time dependency on gstreamer and gst-plugins-base * The PulseAudio server has a run time dependency on gst-plugins-good * gst-plugins-good has a compile and run time dependency on the PulseAudio client library Cheers, Arun