[pulseaudio-discuss] network audio compression
lennart at poettering.net
Mon Aug 3 12:59:10 PDT 2009
On Mon, 03.08.09 09:15, pl bossart (bossart.nospam at gmail.com) wrote:
> Hi Lennart,
> > I see supporting AC3 pass-thru, Vorbis/Speex decompression and CELT
> > compression+decompression as different sides of a (three-sided...)
> > medal.
> I can see why you'd want to support AC3 pass-thru (multichannel
> receiver) and CELT (network), it's not clear why you'd want
> Vorbis/Speex decompression. Would that be to allow compressed alerts
> in the server cache when using libcanberra?
> Thanks for your feedback.
Allowing a compressed cache would be a side-effect but the main reason
for supporting Vorbis/Speex is to minimize traffic. I.e. if you play a
vorbis file with PA across the network it would make more sense to the
decompression on the server side than on the client side -- which is
what currently happens.
Of course we could support other codecs too, but Vorbis/Speex/CELT
have the advantage that they can be used without getting into any
patent mess, and AC3 is similar because deocding would happen in
hw/pass-thru and not in software.
But this all is really complex, because VBR codecs break the timing
assumptions we currently make. So we'd need some very superficial
decoding of the data to get the timing right on both sides.
Also I have no interest in reimplementing GStreamer, so we need to
come up with some idea where the separation between PA in GSt actually
lies. Maybe PA should just integrate a gst pipeline for the actual
decoding (though probably not given that gobject/gst is hardly useful
for RT stuff). More likely we'd declare that PA would not do any
demuxing on its own, just take raw vorbis/speex/celt/ac3 frames or
so. Dunno, needs to figured out when the day comes.
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
More information about the pulseaudio-discuss