On 29 February 2016 at 07:16, <arun at accosted.net> wrote: > 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 Hmm. Would only the rtp module require gstreamer? If so, would it make sense to split out rtp into a separate package due to this new dependency? I guess if there are plans to add other gstreamer deps it wouldn't... Also, it took me a while to realize there is apparantly no circular dependency: plugins-good comes in a separate source package from the gstreamer parts required by pulseaudio, thus avoiding the circularity. -- Saludos, Felipe Sateler