Opened 14 years ago

Last modified 13 years ago

#88 closed enhancement

sound support: use gstreamer+pulseaudio to provide efficient sound in/out over network — at Version 5

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 0.12
Component: Global Keywords:
Cc:

Description (last modified by Antoine Martin)

What we have there kinda works, but there are many issues that need improving/resolving:

  • bandwidth: pulseaudio's TCP protocol is a bandwidth pig... We must ensure we only use it over fast links (need better detection?)

Edit: see original description for the approach that was abandoned (pure pulseaudio)

Change History (5)

comment:1 Changed 14 years ago by Antoine Martin

Milestone: 0.9.20.9.3
Owner: changed from Antoine Martin to Antoine Martin
Status: newaccepted

comment:2 Changed 14 years ago by Antoine Martin

Summary: sound supportsound support: use pactl to remove hacks

comment:3 Changed 14 years ago by Antoine Martin

Milestone: 0.9.30.9.4

comment:4 Changed 14 years ago by Antoine Martin

Milestone: 0.9.41.0

comment:5 Changed 14 years ago by Antoine Martin

Description: modified (diff)
Summary: sound support: use pactl to remove hackssound support: use gstreamer+pulseaudio to provide efficient sound in/out over network

Went a completely different route: pulseaudio simply could not be made to not suck up all the bandwidth, so I implemented the sound pipes using gstreamer's rtp module:

  • initial network stuff: messages to request start/stop sound (both for server and client): r2561
  • more network stuff: some tricky code to get right to set the ports to use (set by server if tunneled, by client if not!) and remove pulseaudio from xpra via a patch + command line switch (would conflict with what we do), also remove pulseaudio from win32 build: we no longer need it. r2556
  • Use an external process as it appears that gstreamer+twisted+pygtk does not seem to play nice (and in any case, we need the ability to daemonize the process on the server): r2587 and r2585
  • Allow users to select the sound devices to use for input and output: r2645
  • Win32 needs its own .EXEs (and its own build file and DLLs, and directory...) for the gstreamer RTP code: r2653
Last edited 13 years ago by Antoine Martin (previous) (diff)
Note: See TracTickets for help on using tickets.