Kodi Community Forum
[PATCH] Dual Audio Output support for XBMC (Eden Updated) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: [PATCH] Dual Audio Output support for XBMC (Eden Updated) (/showthread.php?tid=86038)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48


- Leopold - 2011-11-09

... So I now have an ION i386 build of OpenELEC with this dual audio patch, which I am successfully using with my Acer Revo 3610. I can post it somewhere if anyone would like to use it.

If anyone wants to build it themselves for a different platform I can also post the steps that I took to make the build.

Great work xhbl!


- schumi2004 - 2011-11-09

Leopold Wrote:I'm sure it will never be "officially" added to OpenELEC, but I have made my own build with this patch applied. I'm going to test it out tonight and report back...

It would be great if the patch could be updated to work with Eden final Big Grin, then I could use it for an OE 2.0 build. Post Eden when AE is applied I guess it would need a lot more work.

Probably like many people here I want HDMI audio out for my AV amp zone 1 and analog output for the zone 2, because digital sources don't work on zone 2. I don't care about the outputs being in sync, I just don't want to have to change XBMC settings to use zone 2.
Maybe i need to learn compiling my own OE build then.


- Leopold - 2011-11-09

schumi2004 Wrote:Maybe i need to learn compiling my own OE build then.

It's easier than you might think. Start here

In addition to the above instructions, I had to:

1. git checkout openelec-1.0

To build the 1.0 branch (Dharma) instead of the latest devel branch (pre-Eden)

2. echo 1.0.3 > VERSION

Otherwise some remote packages are not found.

3. To patch XBMC you'll need to put xbmc-10.1-Dharma-500-add_dual_audio_support-0.1.patch into packages/mediacenter/xbmc/patches before you run the build.

I used Ubuntu 10.04 in VirtualBox on Windows 7. I needed to install (sudo apt-get install) these packages to get a successful build:

build-essential nasm flex bison gawk autopoint gperf autoconf automake m4 cvs libtool byacc texinfo gettext zlib1g-dev libncurses5-dev libreadline6-dev libssl-dev xsltproc libxml-perl



- uspino - 2011-11-10

Leopold Wrote:I can post it somewhere if anyone would like to use it.

I have a Revo 3700 (I guess is the same as yours) and the only thing missing from OpenElec perfection is the dual audio output. "Compiling" sounds like a scary word to me. Any chance you can share your effort?

Thanks!


- teeedubb - 2011-11-11

I don't think I've ever been happy about a feature not making it into a xbmc release and I'm looking forward to seeing (or should I say hearing? :p ) dual audio in Eden.

Thanks again xbhl!


- methcat - 2011-11-11

Leopold Wrote:If anyone wants to build it themselves for a different platform I can also post the steps that I took to make the build.

i'd dig it too, hopefully xhbl updates to eden.

thanks allNod


- mrdally204 - 2011-11-12

Just a reminder from the first page of this thread

"make a patch, and link to it. distributing a binary without the sources is a gpl violation."

If you list the binary and the code here, you are good to go. And please do so if you have it working! We can help each other out till this thread gets more attention.

If you are willing to do so, post:
Binary
Source
What build its made for (build date of XBMC/platform)
A diff file (if possible)

And anything else that would be of interest or to further the knowledge of the end user. Thanks guys!


- Leopold - 2011-11-12

uspino Wrote:I have a Revo 3700 (I guess is the same as yours) and the only thing missing from OpenElec perfection is the dual audio output. "Compiling" sounds like a scary word to me. Any chance you can share your effort?

Thanks!

OpenELEC-ION.i386-1.0.3.tar.bz2

I think the 3700 is the new ION 2 version of the 3610 so this build should be fine. It's from a snapshot of the 1.0 branch, hence the 1.0.3 version number.

The source changes are exactly as posted by xhbl. I generated a diff against Dharma 10.1 and posted that previously.


- uspino - 2011-11-12

Leopold Wrote:OpenELEC-ION.i386-1.0.3.tar.bz2

I think the 3700 is the new ION 2 version of the 3610 so this build should be fine. It's from a snapshot of the 1.0 branch, hence the 1.0.3 version number.

The source changes are exactly as posted by xhbl. I generated a diff against Dharma 10.1 and posted that previously.

Awesome! Works as a charm. I had some trouble setting up the audio thrugh HDMI but the "plughw:1,7" ended up working for me.

There's only one concern: dual audio seems to introduce a slight delay on the SPDIF out signal. Sounds like an echo if you keep both volumes up. If you watch through optical out, there is slightly noticeable lip-syncing delay. I guess it is due to the fact that the patch requires more processing from the OpenELEC engine.

Does it happen to you? Thanks again


- methcat - 2011-11-14

uspino Wrote:There's only one concern: dual audio seems to introduce a slight delay on the SPDIF out signal. Sounds like an echo if you keep both volumes up. If you watch through optical out, there is slightly noticeable lip-syncing delay. I guess it is due to the fact that the patch requires more processing from the OpenELEC engine.

per the op...

xhbl Wrote:There is no synchronization mechanism between the two outputs for music playback, so you'll hear echo/double beat due to different output device cache size. And for video playback the synchronization algorithm allows max 50ms deviation between the two outputs, so you'll hear underwater effect.
Accurate synchronization mechanism will cause jitter of the 2nd audio output. so the time difference between two output is inevitable.
In other words, The two output speakers should not be turned on at the same place and same time. As mentioned above by darkscout
"don't use this to try and listen through 2 things at the same time, but switch in between 2 sinks just by muting my TV or muting my Yamaha."



- schumi2004 - 2011-11-14

Leopold Wrote:It's easier than you might think. Start here

In addition to the above instructions, I had to:

1. git checkout openelec-1.0

To build the 1.0 branch (Dharma) instead of the latest devel branch (pre-Eden)

2. echo 1.0.3 > VERSION

Otherwise some remote packages are not found.

3. To patch XBMC you'll need to put xbmc-10.1-Dharma-500-add_dual_audio_support-0.1.patch into packages/mediacenter/xbmc/patches before you run the build.

I used Ubuntu 10.04 in VirtualBox on Windows 7. I needed to install (sudo apt-get install) these packages to get a successful build:

build-essential nasm flex bison gawk autopoint gperf autoconf automake m4 cvs libtool byacc texinfo gettext zlib1g-dev libncurses5-dev libreadline6-dev libssl-dev xsltproc libxml-perl

Thanks, i'll try that.

I'm running a pre-eden build here on a fusion system but the instructions are the same i guess? (if the patch gets out)

First going to try a Dharma build instead.


- Leopold - 2011-11-14

uspino Wrote:Awesome! Works as a charm. I had some trouble setting up the audio thrugh HDMI but the "plughw:1,7" ended up working for me.

There's only one concern: dual audio seems to introduce a slight delay on the SPDIF out signal. Sounds like an echo if you keep both volumes up. If you watch through optical out, there is slightly noticeable lip-syncing delay. I guess it is due to the fact that the patch requires more processing from the OpenELEC engine.

Does it happen to you? Thanks again

Yeah as mentioned previously this is a known issue.

I have a problem that when playing music the hdmi audio output begins to stutter after playing for a while. The analog output is always fine though and videos through hdmi are also fine.

Have you noticed this?

Here's my debug log in case an expert knows what the problem is. I assume it has something to do with this:

19:08:25 T:3009342320 M:1343725568 DEBUG: CALSADirectSound::AddPackets - buffer underun (tried to write 1024 frames)
19:08:29 T:3009342320 M:1343852544 WARNING: CALSADirectSound::GetSpace - get space failed. err: -32 (Broken pipe)
19:08:42 T:3020216128 M:1343750144 WARNING: Previous line repeats 5 times.



- ubuntuf4n - 2011-11-26

dharma patch works perfect on win7.


- armitatz - 2011-11-28

Perfect!

However I have a small note. I have a dv5 pavillion as a media center with xbmc live installed. This is connected through hdmi to an LG lw5500. Also it has an external sound blaster and the card is connected through spdif to my pioneer vsx1014 receiver. I have configured the first audio output to be to the hdmi and the second to be the creative optical.
The two outputs have a small time difference caused by the tv!. The tv is delaying the sound because as all modern tv's applies image processing to the movie thus delaying the sound (~100-200ms). The receiver does not delay the sound.
This creates the bathtub effect that has been described before in this thread.

After I saw the files of the patch (I'm not an experienced programmer ...) I saw that the solution creates a second sound object and it is send to the second output. I don't know how to do it but perhaps by adding a second delay option in the sound delay menu and applying only to the second sound object the problem could be solved?


- darkscout - 2011-11-28

armitatz Wrote:Perfect!

However I have a small note. I have a dv5 pavillion as a media center with xbmc live installed. This is connected through hdmi to an LG lw5500. Also it has an external sound blaster and the card is connected through spdif to my pioneer vsx1014 receiver. I have configured the first audio output to be to the hdmi and the second to be the creative optical.
The two outputs have a small time difference caused by the tv!. The tv is delaying the sound because as all modern tv's applies image processing to the movie thus delaying the sound (~100-200ms). The receiver does not delay the sound.
This creates the bathtub effect that has been described before in this thread.

After I saw the files of the patch (I'm not an experienced programmer ...) I saw that the solution creates a second sound object and it is send to the second output. I don't know how to do it but perhaps by adding a second delay option in the sound delay menu and applying only to the second sound object the problem could be solved?

Possible, but I doubt you'll ever get it perfect. But that does sound like it might be fun to dig into. It all depends on when they inject the sound delay.