XBMC PulseAudio passthrough support (including Nvidia) is available

  Thread Rating:
  • 3 Votes - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
cbxbiker61 Offline
Senior Member
Posts: 148
Joined: Nov 2010
Reputation: 1
Post: #21
Looks like it'll be a day or two before I have a git-branch ready for testing. I just did some testing on the AudioEngine branch and it seems to have problems. I'll be posting some patches for AudioEngine to at least get them compiling with external FFmpeg. If the AudioEngine branch fixes their problems I've got the patches ready to apply.

Considering the AudioEngine branch doesn't seem to currently succeed in handling passthrough, I'll be branching off head. I'm hoping Pulse gets a commit in to their passthrough branch that eliminates the need to patch PulseAudio code at all. It'll just be a matter of git cloning from the right tree.

I'm wrapping the code in conditionals so that it will build Pulse passthrough support if the installed version of Pulse supports passthrough (this should be official in Pulse version 1.0).
find quote
cbxbiker61 Offline
Senior Member
Posts: 148
Joined: Nov 2010
Reputation: 1
Post: #22
OK, I've been burnin the midnight oil so I'm ready for others to test the results.

Download/build/install in order.

git://git.collabora.co.uk/git/user/arun/pulseaudio.git

after you clone pulseaudio.git change into the pulseaudio directory and "git checkout passthrough".

git://github.com/cbxbiker61/audiofilter.git

git://github.com/cbxbiker61/xbmc.git

Configure xbmc with appropriate devices selected in System Settings/Audio, pulse audio devices show up with (pulse) extension.
(This post was last modified: 2011-03-20 23:18 by cbxbiker61.)
find quote
SpectreX Offline
Senior Member
Posts: 278
Joined: Oct 2010
Reputation: -20
Post: #23
Great work cbxbiker61, is it possible to post/upload a compiled version for less tehnical people so we can test out, since i don`t know how to compile/use git? I`m interested mostly in DTS-HD MA and True HD bitstreaming, so i`ll let you know the results on a Denon 2310 receiver.
find quote
cbxbiker61 Offline
Senior Member
Posts: 148
Joined: Nov 2010
Reputation: 1
Post: #24
SpectreX Wrote:Great work cbxbiker61, is it possible to post/upload a compiled version for less tehnical people so we can test out, since i don`t know how to compile/use git? I`m interested mostly in DTS-HD MA and True HD bitstreaming, so i`ll let you know the results on a Denon 2310 receiver.

I feel your pain...but it's probably not a great idea to build a testing binary since it's dependent on a test version of Pulse which will break some of your standard package dependencies. I have my own distribution which I can hack at will, so when I use a testing version of PulseAudio I just rebuild the packages that depend on it.

Now if we could find a user that has your distribution and your OK with breaking some packages that depend on PulseAudio we might get someone to compile a package for you. Other than that, you'll have to wait for PulseAudio 1.0 and Xbmc 11.

Other users might find it useful that my version of xbmc has been patched to work with external Python 2.7 and compiles clean against the latest and greatest git FFmpeg.
find quote
shadow Offline
Senior Member
Posts: 131
Joined: Jan 2011
Reputation: 0
Post: #25
I am having a problem compiling audiofilter, here is the output.

#make -j8
mkdir -p out.x86_64 out.x86
make -C out.x86_64 -f ../GNUmakefile TOP=../.. libAudioFilter.a bsconvert noise mpeg_demux spdifer swab wavdiff
make[1]: Entering directory `/home/shadow/audiofilter/gnu/out.x86_64'
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/Ac3HeaderParser.cpp -o Ac3HeaderParser.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/Ac3Parser.cpp -o Ac3Parser.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/AgcFilter.cpp -o AgcFilter.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/AutoFile.cpp -o AutoFile.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/BitStream.cpp -o BitStream.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/filters/Converter.cpp -o Converter.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/filters/ConvertFunc.cpp -o ConvertFunc.o
g++ -c -D_GNU_SOURCE -g -O -Wall -I../../include -I../../lib ../../lib/filters/Convolver.cpp -o Convolver.o
../../lib/Ac3HeaderParser.cpp:46:6: error: ‘Ac3HeaderParser’ has not been declared
../../lib/Ac3HeaderParser.cpp:142:6: error: ‘Ac3HeaderParser’ has not been declared
make[1]: *** [Ac3HeaderParser.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/shadow/audiofilter/gnu/out.x86_64'
make: *** [all] Error 2
find quote
cbxbiker61 Offline
Senior Member
Posts: 148
Joined: Nov 2010
Reputation: 1
Post: #26
shadow Wrote:I am having a problem compiling audiofilter, here is the output.

It's fixed now, I did a last second header rename.
find quote
shadow Offline
Senior Member
Posts: 131
Joined: Jan 2011
Reputation: 0
Post: #27
Thanks, it worked. Compiling xbmc now then I finally get to test it.
find quote
shadow Offline
Senior Member
Posts: 131
Joined: Jan 2011
Reputation: 0
Post: #28
I can't get it to work. In the audio output setting I have no Pulse choices for the passthrough output device
find quote
cbxbiker61 Offline
Senior Member
Posts: 148
Joined: Nov 2010
Reputation: 1
Post: #29
shadow Wrote:I can't get it to work. In the audio output setting I have no Pulse choices for the passthrough output device

I'd say that you don't have the PulseAudio git installed, or maybe not in a normal location.

/usr/include/pulse/version.h should have:

#define PA_PROTOCOL_VERSION 21

If it doesn't passthrough support isn't built into xbmc.

BTW, you have to rebuild xbmc after you fix that.
find quote
shadow Offline
Senior Member
Posts: 131
Joined: Jan 2011
Reputation: 0
Post: #30
I was in /usr/local

Although I noticed that I I am only at 20 not 21. (stock ubuntu PA was 16)
Am I still having problems or did you miss type?

Recompiling xbmc now.
find quote
Post Reply