[pulseaudio-discuss] [PATCH 0/8] Add GStreamer-based RTP support

Arun Raghavan arun at accosted.net
Mon Feb 29 11:52:09 UTC 2016


On Mon, 2016-02-29 at 08:46 -0300, Felipe Sateler wrote:
> 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...

I don't see a need to do that in the foreseeable future.

> 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.

Yep, there isn't a circular dependency. Just wanted to clarify that
(though apparently I didn't do a very good job!)

-- Arun


More information about the pulseaudio-discuss mailing list