• 1
  • 14
  • 15
  • 16
  • 17(current)
  • 18
XBMC PulseAudio passthrough support (including Nvidia) is available
Hey All,

I really don't understand why so much work is being put into this code when AE is just around the corner and has been confirmed to be implemented for Frodo. it would be a MUCH better idea to contribute to the Pulse engine in the new AudioEngine and implement this there. When AE is merged into trunk your changes will be completely redundant as NONE of the original audio code is retained in AE.
I am not scared of SVN - Cutting my hands open on the bleeding edge.
Reply
Thumbs Up 
gnif Wrote:Hey All,

I really don't understand why so much work is being put into this code when AE is just around the corner and has been confirmed to be implemented for Frodo. it would be a MUCH better idea to contribute to the Pulse engine in the new AudioEngine and implement this there. When AE is merged into trunk your changes will be completely redundant as NONE of the original audio code is retained in AE.

Hi gnif,
the reason cbxbiker61 is putting a lot of effort in this code is to be able to playback HD audio now.
And we support his work: cbxbiker61 has come up with a working solution few months ago, and it works very well.

For sure AE is much more complex, but it is still under development and as you told me is still an "unsupported experimental code". Also it's based on old EDEN code (september 2011, if I am not wrong) and, as you told me, the merge of AE into latest EDEN beta won't be done "anytime soon"...

For a day by day use, most of us need the latest changes in EDEN.
Bug fixes, new database, etc. And don't forget that most remotes do not work with AE now, but work with cbxbiker61's (JSON calls changed since september). Other things might be broken as well.

So if I want a working solution now, there is no other choice than cbxbiker61's.
Hopefully cbxbiker61 will merge the latest beta 2 in his source, so we will be able to move to beta 2.

I know that Frodo should include the AE but there is no ETA for it.
And when will we have the first Frodo Beta? End 2012?
I really would like to enjoy my HD collection before then.

I really appreciate all the effort and work that you and cbxbiker61 is putting on it in order to have now a fully working solution for HD audio under Linux.

And of course I appreciate your effort in building the new Audio Engine and looking forward to use it in my day by day HTPC.


For sure you could work together in order to speed things up, but that it's up to you two...
Reply
Quote:"unsupported experimental code"

So is this patch, but even more unsupported as the method used is deprecated.

Quote:Also it's based on old EDEN code (september 2011, if I am not wrong) and, as you told me, the merge of AE into latest EDEN beta won't be done "anytime soon"...

AE was merged with the latest code base a few weeks back.

The only way this patch would be useful is if you are stuck using Pulse, either way you need to compile the source to add this support. It would be MUCH more useful if the developer would spend his/her time on adding the support to AE and fixing the Pulse code base as at current, I am left to develop ALSA, OSS, DirectShow, WASAPI and Pulse with no assistance.

PS: TrueHD and DTS-HD both work in AE and did so before cbxbiker61 wrote this code.
I am not scared of SVN - Cutting my hands open on the bleeding edge.
Reply
gnif Wrote:So is this patch, but even more unsupported as the method used is deprecated.



AE was merged with the latest code base a few weeks back.

The only way this patch would be useful is if you are stuck using Pulse, either way you need to compile the source to add this support. It would be MUCH more useful if the developer would spend his/her time on adding the support to AE and fixing the Pulse code base as at current, I am left to develop ALSA, OSS, DirectShow, WASAPI and Pulse with no assistance.

PS: TrueHD and DTS-HD both work in AE and did so before cbxbiker61 wrote this code.

Before I started writing any code I looked at AE and found it pretty broken on Linux. That's why i branched from head. If AE would've been stable at the time, I would've started there. Keep in mind my first goal (quite a long time ago now), was to have a working implementation on my system. Now when you say TrueHD and DTS-HD worked in AE before I started, maybe you mean on Windows.

Anyway I'm going to be re-evaluating where to start from within a week or two. I can surely look at AE again.
Reply
Quote:Before I started writing any code I looked at AE and found it pretty broken on Linux.

Nope, it was working great except for a few small use cases, in which debugging help would have been better then writing your own code and dismissing the branch.

Quote:Now when you say TrueHD and DTS-HD worked in AE before I started, maybe you mean on Windows.

Again, no, I do all my development under Linux (Ubuntu and ArchLinux) much to many people's dismay due to the fact that I often break the windows VC project.

Quote:I can surely look at AE again.

This would be the better option as AudioRenderers are getting removed completely in Frodo. PulseAudio does need some TLC as that code has not been maintained while bugs were squashed in AE, but SoftAE is pretty rock solid as Linux (ALSA/OSS) and Windows (DirectShow/WASAPI) work great.
I am not scared of SVN - Cutting my hands open on the bleeding edge.
Reply
So what's the current state of this build? The original post is from back in November.

Is there a current link to instructions and downloads?

And does this build fully support HD audio - all forms of DTS-HD/MA and TrueHD - on Ubuntu (or other Linux flavor)?

I'm currently running the Windows DSPlayer build, and it's great, but Windows is such a pain that I'd really like to get back on Linux as soon as possible.

But I must have HD audio and native auto-switching refresh rates.

Thanks in advance!
Reply
Question 
cbxbiker61 Wrote:Hey,

After I got a wonderful Onkyo/Polk Audio surround system I just had to have DTS/AC3 passthrough working. So I spent two weeks writing code getting it to happen. It's working great. I fixed a bug or two in XBMC's pulseaudio implementation on the way.

In the process I ported Ac3Filter to Linux (and renamed it AudioFilter, so as not to confuse the two (I changed too many interfaces and improved it's performance). Anyway AudioFilter has become my primary audio library with regard to passthrough support.

Download/build/install in order.

Build PulseAudio 1.1 with patch located at http://forum.xbmc.org/showthread.php?p=9...post938511.

wget http://freedesktop.org/software/pulseaud...1.1.tar.gz
apply patch mentioned above
follow directions in readme

git clone git://github.com/cbxbiker61/audiofilter.git
follow directions in readme
git clone git://github.com/cbxbiker61/xbmc.git
follow directions in readme
Configure xbmc with "Digital Surround 7.1 (HDMI)" selected in System Settings/Audio as passthrough device.

Hi there,

From the sounds of it this should be able to work without XMBC is that correct? Or would whatever program I use also have to be coded to use the audiofilter library, and have passthrough options setup?

Basically I just prefer a standalone player as opposed to the all encompassing XBMC, to play movies with, and would like to get this solution working for VLC or mplayer instead if it's possible...

Or is it an all or nothing solution?
Reply
Hi all,

I bought a new staff for my HTPC Smile, but on the start: houston we have a problemSmile

1) Asrock Z68M-ITX/HT
2) i3-2100T
3) Onkyo TX-SR608
4) XBMCbuntu - Linux xbmc-desktop 3.2.0-15-generic-pae

I connect my htpc to the receiver Onkyo and from onky to TV.

I checked

for f in /proc/asound/card*/eld*; do echo "***** $f *****"; cat $f; done
Quote:***** /proc/asound/card0/eld#3.0 *****
monitor_present 0
eld_valid 0
***** /proc/asound/card0/eld#3.1 *****
monitor_present 1
eld_valid 1
monitor_name
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0x0
product_id 0x0
port_id 0x0
support_hdcp 1
support_ai 0
audio_sync_delay 0
speakers [0x1] FL/FR
sad_count 1
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0xe0] 32000 44100 48000
sad0_bits [0x20000] 16
I didn't information about my onkyo.

aplay -l

Quote:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0

Somebody can help me Smile?
Reply
forall Wrote:Hi all,

I bought a new staff for my HTPC Smile, but on the start: houston we have a problemSmile
1) Asrock Z68M-ITX/HT
2) i3-2100T
3) Onkyo TX-SR608
4) XBMCbuntu - Linux xbmc-desktop 3.2.0-15-generic-pae
I connect my htpc to the receiver Onkyo and from onky to TV.
I checked
for f in /proc/asound/card*/eld*; do echo "***** $f *****"; cat $f; done
I didn't information about my onkyo.
aplay -l
Somebody can help me Smile?

Hmmmm I can see the HDMI audio showing up, but from the specs of your motherboard it doesn't list support of passthrough audio across HDMI (from what I can see)? But why is it showing an HDMI option under aplay -l if it doesn't?!

We can assume it does support it because linux is picking it up (and your not complaining of no sound Tongue).... but I would have thought that would be clear in the specs as a selling point... anyways I digress Tongue

do this at the cli and paste in here:

Code:
sudo dmesg | grep HDMI

That will show us what is supported on your HDMI connection. You may also need to configure your TV as anynet + - cec connection (if your tv supports it), and again if your tv has the option, set the speakers to external. Also check any HDMI connection setup options in the Onkyo - you may need to enable some of them.

What happens by default is the edid information gets passed through the receiver to your PC, and linux/windows picks up the TV's audio information, instead of the receivers - hence your only seeing left and right, and depending on the output of dmesg you may be getting limited "HDMI: Supports...." output if that's the case.

So by enabling anynet+ - cec your tv will detect that it's connected to a receiver and the receiver's audio information will be passed to the PC instead.

For example here is my dmesg output when I have booted linux with my receiver turned off:

Code:
HDMI: detected monitor SAMSUNG
at connection type HDMI
HDMI: available speakers: FL/FR
HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200, bits = 16 20 24

and here is when I have booted my PC with the receiver on:

Code:
HDMI: detected monitor SAMSUNG
at connection type HDMI
HDMI: available speakers: FL/FR LFE FC RL/RR RC RLC/RRC
HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200 176400 192000 384000, bits = 16 20 24
HDMI: supports coding type LPCM: channels = 8, rates = 44100 48000 88200 176400 192000 384000, bits = 16 20 24
HDMI: supports coding type AC-3: channels = 6, rates = 44100 48000 88200, max bitrate = 640000
HDMI: supports coding type DTS: channels = 7, rates = 44100 48000 88200 176400 192000, max bitrate = 1536000
HDMI: supports coding type DSD (One Bit Audio): channels = 6, rates = 48000
HDMI: supports coding type E-AC-3/DD+ (Dolby Digital Plus): channels = 8, rates = 48000 88200
HDMI: supports coding type MLP (Dolby TrueHD): channels = 8, rates = 88200 192000
HDMI: supports coding type DTS-HD: channels = 8, rates = 88200 192000

Notice it's still says Samsung for the monitor, but it is picking up the audio information from the receiver correctly. As long as that is happening for you then don't worry if you can't see Onkyo anywhere in the output.
Reply
mightymouse2045 Wrote:Hmmmm I can see the HDMI audio showing up, but from the specs of your motherboard it doesn't list support of passthrough audio across HDMI (from what I can see)? But why is it showing an HDMI option under aplay -l if it doesn't?!

We can assume it does support it because linux is picking it up (and your not complaining of no sound Tongue).... but I would have thought that would be clear in the specs as a selling point... anyways I digress Tongue

do this at the cli and paste in here:

Code:
sudo dmesg | grep HDMI

That will show us what is supported on your HDMI connection. You may also need to configure your TV as anynet + - cec connection (if your tv supports it), and again if your tv has the option, set the speakers to external. Also check any HDMI connection setup options in the Onkyo - you may need to enable some of them.

What happens by default is the edid information gets passed through the receiver to your PC, and linux/windows picks up the TV's audio information, instead of the receivers - hence your only seeing left and right, and depending on the output of dmesg you may be getting limited "HDMI: Supports...." output if that's the case.

So by enabling anynet+ - cec your tv will detect that it's connected to a receiver and the receiver's audio information will be passed to the PC instead.

For example here is my dmesg output when I have booted linux with my receiver turned off:

Code:
HDMI: detected monitor SAMSUNG
at connection type HDMI
HDMI: available speakers: FL/FR
HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200, bits = 16 20 24

and here is when I have booted my PC with the receiver on:

Code:
HDMI: detected monitor SAMSUNG
at connection type HDMI
HDMI: available speakers: FL/FR LFE FC RL/RR RC RLC/RRC
HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200 176400 192000 384000, bits = 16 20 24
HDMI: supports coding type LPCM: channels = 8, rates = 44100 48000 88200 176400 192000 384000, bits = 16 20 24
HDMI: supports coding type AC-3: channels = 6, rates = 44100 48000 88200, max bitrate = 640000
HDMI: supports coding type DTS: channels = 7, rates = 44100 48000 88200 176400 192000, max bitrate = 1536000
HDMI: supports coding type DSD (One Bit Audio): channels = 6, rates = 48000
HDMI: supports coding type E-AC-3/DD+ (Dolby Digital Plus): channels = 8, rates = 48000 88200
HDMI: supports coding type MLP (Dolby TrueHD): channels = 8, rates = 88200 192000
HDMI: supports coding type DTS-HD: channels = 8, rates = 88200 192000

Notice it's still says Samsung for the monitor, but it is picking up the audio information from the receiver correctly. As long as that is happening for you then don't worry if you can't see Onkyo anywhere in the output.

@mightymouse2045 - thx for reply.
For test I installed windows 7 and I ran movie with the same connection: hdmi from my box to receiver and from receiver to TV.
In sound settings under windows I saw my onkyo receiver and I choosed it. When I played movie with soundtrack DTS-MA I saw this on my onkyo 608Smile
It's working very well.

Under linux with XBMC I haved sound bun only DTS.


Info about HDMI when XBMC is starting:


dmesg |grep HDMI
Quote:[ 11.742720] HDMI hot plug event: Codec=3 Pin=7 Presence_Detect=1 ELD_Valid=1
[ 11.742859] HDMI status: Codec=3 Pin=7 Presence_Detect=1 ELD_Valid=1
[ 11.742900] HDMI status: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=0
[ 11.742995] HDMI status: Codec=3 Pin=7 Presence_Detect=1 ELD_Valid=1
[ 11.749849] HDMI: detected monitor at connection type HDMI
[ 11.749852] HDMI: available speakers: FL/FR
[ 11.749856] HDMI: supports coding type LPCM: channels = 2, rates = 32000 44100 48000, bits = 16
[ 11.749861] HDMI hot plug event: Codec=3 Pin=7 Presence_Detect=1 ELD_Valid=1
[ 11.749932] HDMI status: Codec=3 Pin=7 Presence_Detect=1 ELD_Valid=1
[ 11.749983] HDMI: detected monitor at connection type HDMI
[ 11.749986] HDMI: available speakers: FL/FR
[ 11.749989] HDMI: supports coding type LPCM: channels = 2, rates = 32000 44100 48000, bits = 16
[ 11.750074] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input4
[ 11.750160] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input5
[ 11.753492] HDMI: detected monitor at connection type HDMI
[ 11.753495] HDMI: available speakers: FL/FR
[ 11.753500] HDMI: supports coding type LPCM: channels = 2, rates = 32000 44100 48000, bits = 16

The same results I had when I changed in my TV speaker settings: internal to external....

Put Nvidia graphic to box and connecting hdmi from receiver:

dmesg |grep HDMI

Quote:dmesg |grep HDMI
[ 9.834285] HDMI status: Codec=0 Pin=5 Presence_Detect=0 ELD_Valid=0
[ 9.858255] HDMI status: Codec=1 Pin=5 Presence_Detect=0 ELD_Valid=0
[ 9.882230] HDMI status: Codec=2 Pin=5 Presence_Detect=0 ELD_Valid=0
[ 9.906190] HDMI status: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=0
[ 9.906299] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input4
[ 9.906400] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input5
[ 9.906486] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input6
[ 9.906570] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input7
[ 26.385635] HDMI hot plug event: Codec=1 Pin=5 Presence_Detect=1 ELD_Valid=0
[ 26.392848] HDMI status: Codec=1 Pin=5 Presence_Detect=1 ELD_Valid=0
[ 26.405169] HDMI hot plug event: Codec=1 Pin=5 Presence_Detect=1 ELD_Valid=1
[ 26.412825] HDMI status: Codec=1 Pin=5 Presence_Detect=1 ELD_Valid=1
[ 27.179845] HDMI: detected monitor TX-SR608
[ 27.179847] at connection type HDMI
[ 27.179852] HDMI: available speakers: FL/FR LFE FC RL/RR RLC/RRC
[ 27.179858] HDMI: supports coding type LPCM: channels = 2, rates = 32000 44100 48000 96000 176400 192000 384000, bits = 16 20 24
[ 27.179863] HDMI: supports coding type LPCM: channels = 8, rates = 32000 44100 48000 96000 176400 192000 384000, bits = 16 20 24
[ 27.179878] HDMI: supports coding type AC-3: channels = 8, rates = 32000 44100 48000, max bitrate = 640000
[ 27.179881] HDMI: supports coding type DTS: channels = 8, rates = 44100 48000, max bitrate = 1536000
[ 27.179883] HDMI: supports coding type DSD (One Bit Audio): channels = 6, rates = 44100
[ 27.179885] HDMI: supports coding type E-AC-3/DD+ (Dolby Digital Plus): channels = 8, rates = 44100 48000
[ 27.179888] HDMI: supports coding type DTS-HD: channels = 8, rates = 44100 48000 96000 176400 192000 384000
[ 27.179891] HDMI: supports coding type MLP (Dolby TrueHD): channels = 8, rates = 48000 176400 384000
and : for f in /proc/asound/card*/eld*; do echo "***** $f *****"; cat $f; done

Quote:***** /proc/asound/card0/eld#0.0 *****
monitor_present 0
eld_valid 0
***** /proc/asound/card0/eld#1.0 *****
monitor_present 1
eld_valid 1
monitor_name TX-SR608

connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0xcb3d
product_id 0xa62
port_id 0x20000
support_hdcp 0
support_ai 0
audio_sync_delay 0
speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC
sad_count 8
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0x1ee0] 32000 44100 48000 96000 176400 192000 384000
sad0_bits [0xe0000] 16 20 24
sad1_coding_type [0x1] LPCM
sad1_channels 8
sad1_rates [0x1ee0] 32000 44100 48000 96000 176400 192000 384000
sad1_bits [0xe0000] 16 20 24
sad2_coding_type [0x2] AC-3
sad2_channels 8
sad2_rates [0xe0] 32000 44100 48000
sad2_max_bitrate 640000
sad3_coding_type [0x7] DTS
sad3_channels 8
sad3_rates [0xc0] 44100 48000
sad3_max_bitrate 1536000
sad4_coding_type [0x9] DSD (One Bit Audio)
sad4_channels 6
sad4_rates [0x40] 44100
sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels 8
sad5_rates [0xc0] 44100 48000
sad6_coding_type [0xb] DTS-HD
sad6_channels 8
sad6_rates [0x1ec0] 44100 48000 96000 176400 192000 384000
sad7_coding_type [0xc] MLP (Dolby TrueHD)
sad7_channels 8
sad7_rates [0x1480] 48000 176400 384000
***** /proc/asound/card0/eld#2.0 *****
monitor_present 0
eld_valid 0
***** /proc/asound/card0/eld#3.0 *****
monitor_present 0
eld_valid 0

So question is, why if I connected HDMI to onboard I didn't get the same results?
Reply
forall Wrote:@mightymouse2045 - thx for reply.
For test I installed windows 7 and I ran movie with the same connection: hdmi from my box to receiver and from receiver to TV.
In sound settings under windows I saw my onkyo receiver and I choosed it. When I played movie with soundtrack DTS-MA I saw this on my onkyo 608Smile
It's working very well.

Under linux with XBMC I haved sound bun only DTS.


Info about HDMI when XBMC is starting:


dmesg |grep HDMI


The same results I had when I changed in my TV speaker settings: internal to external....

Put Nvidia graphic to box and connecting hdmi from receiver:

dmesg |grep HDMI


and : for f in /proc/asound/card*/eld*; do echo "***** $f *****"; cat $f; done



So question is, why if I connected HDMI to onboard I didn't get the same results?

Ah ok there you go then - your onboard only supports 2 channel over HDMI.

Under windows are you getting DTS-HD MA when you are connected to the onboard, or is that when connected via your NVIDIA card?
Reply
Question 

Hi cbxbiker61,

Is there any way around the alsa audio device being blocked by XBMC or is that an Alsa limitation?

When XBMC is running I cannot use VLC passthrough, even when XBMC is not playing anything.

I know in the past that one of the reasons for pulse being implemented in Ubuntu and other distributions was because of the limitations of other audio drivers sharing the hardware, but pulse audio is the device that is selected in XBMC (which I know is just passing it through to Alsa), but it isn't playing nicely with other software...
Reply
mightymouse2045 Wrote:Ah ok there you go then - your onboard only supports 2 channel over HDMI.

Under windows are you getting DTS-HD MA when you are connected to the onboard, or is that when connected via your NVIDIA card?

It's strange, because under windows I have the same connection like under linux: connected cable to hdmi onboard and now I see in sound settings my onkyo receiver and it support: DTS/DTS-HD,DTS-MA and otherSmile
So it's really strange, maybe under windows is problem with some module..
Reply
forall Wrote:It's strange, because under windows I have the same connection like under linux: connected cable to hdmi onboard and now I see in sound settings my onkyo receiver and it support: DTS/DTS-HD,DTS-MA and otherSmile
So it's really strange, maybe under windows is problem with some module..

hmmm that is strange - ok but if you play a DTS-HD MA file in windows while connected to the onboard does it display correctly on the receiver?

OK - I tracked down the problem:

From the manual for your motherboard RTFM Tongue
Quote:Under Grpahics:

Supports Auto Lip Sync, xvYCC and HBR (High Bit Rate
Audio) with HDMI (Compliant HDMI monitor is required)

(see CAUTION 6)


CAUTION!

6. xvYCC is only supported under Windows® 7 64-bit / 7. HBR is supported
under Windows® 7 64-bit / 7 / VistaTM 64-bit / VistaTM.

HBR audio is not supported under linux - this is probably something you could get working but you would need to do some investigation on how to get it working if it's at all possible.
Reply
mightymouse2045 Wrote:hmmm that is strange - ok but if you play a DTS-HD MA file in windows while connected to the onboard does it display correctly on the receiver?




OK - I tracked down the problem:

From the manual for your motherboard RTFM Tongue


HBR audio is not supported under linux - this is probably something you could get working but you would need to do some investigation on how to get it working if it's at all possible.

Yes, is display corectly on the receiver under windows.

Now I found the same info in manual. To resolve this problem I must buy a nvidia card.
Reply
  • 1
  • 14
  • 15
  • 16
  • 17(current)
  • 18

Logout Mark Read Team Forum Stats Members Help
XBMC PulseAudio passthrough support (including Nvidia) is available3