Kodi Community Forum
AudioEngine branch - DO NOT REQUEST BINARY BUILDS - 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: AudioEngine branch - DO NOT REQUEST BINARY BUILDS (/showthread.php?tid=78289)



- liquidskin76 - 2011-01-22

steelman1991 Wrote:Respect to Gnif - its obviously not at the stage for public consumption and in deference to his wishes I won't be uploading anything at this stage.

Gnif - though that patch from voyman certainly fixes the build issue, there appears to be other issues at work, that once built there is a failure to start the app, crash on loading.

That might be due to my attempt to carry out voyman's fix on my build files. I might have made a mistake? Steelman used my build and we both had the same problem.


- steelman1991 - 2011-01-22

liquidskin76 Wrote:That might be due to my attempt to carry out voyman's fix on my build files. I might have made a mistake? Steelman used my build and we both had the same problem.
Liquidskin - managed to build my own as well late last night and had the same problem.


- gnif - 2011-01-22

Well, as stated below, without a backtrace I can not fix the problem, if you dont know how to produce one from Visual C++, you should not be trying to use this branch.

I do NOT use windows, let alone Visual C++.


- Dullie - 2011-01-23




- gnif - 2011-01-23

@Dullie: not bothered, but just want to make it very clear to those that read this thread that until it is ready and merged into the master branch, this is to be considered usable to only those that can identify and fix the problems, or at-least point me to where the program is crashing with detailed information.

CrystalP has just resolved the deadlock issue and updated the build for Windows, props to him Big Grin


- voyman - 2011-01-23

@gnif - was about to send the patch but CrystalP was faster - also, his libmms fix is a lot cleaner than my quick hack.

I was just curious to try out the win32 for a few of my audiophile friends who keep bugging me for bitperfect audio playback on windows. This seems to work fine btw, like I wrote I had some crashes with video playback but I didn't spend time on debugging as I'm not really a win32 kind of person Wink

Currently I'm working on porting some of Anssi's ffmpeg code to get HD bitstreaming to work.


- darkscout - 2011-01-29

gnif Wrote:No, multiple output to multiple cards is a technical nightmare, there is NO way to make this work properly, just achieving low latency on one output is hard, let alone on multiple. And then keeping them in sync would be an even bigger nightmare, the way audio hardware is designed makes this infeasible, and out of the scope of XBMC.

I'm really hoping you'll reconsider this. I finally got the latest git (c99bbf45e1f8d2f7d590231190351ef3090d263b) patched with the dual audio and IMHO it's hands down one of the best features that XBMC has 'added' in a long time. I can dump to TV or Stereo no switching settings. Sync may not be perfect, but it's close enough for my ears.


- topfs2 - 2011-01-29

darkscout Wrote:I'm really hoping you'll reconsider this. I finally got the latest git (c99bbf45e1f8d2f7d590231190351ef3090d263b) patched with the dual audio and IMHO it's hands down one of the best features that XBMC has 'added' in a long time. I can dump to TV or Stereo no switching settings. Sync may not be perfect, but it's close enough for my ears.

Why reinvent the wheel, pulseaudio already supports this, I agree with gnif, it will just lead to nightmare code for us


- erhnam - 2011-02-02

topfs2 Wrote:Why reinvent the wheel, pulseaudio already supports this, I agree with gnif, it will just lead to nightmare code for us

I do not agree; OSX for example does not support this. I tried everything (aggregated devices, JackOSX, etc) but a dual output configuration is not possible at the moment. Would be a nice addition to have this in place. Even as a config script only.


- voyman - 2011-02-03

A quick update for those interested in HD bitstreaming: the basic "low-level" stuff is done and works standalone with alsa (my only target for now). However, I'm having a hard time getting actual streams to come out of xbmc playable - this has mostly to do with me trying to understand how the bits flow from the file you're playing through the (rather complex) internals of dvdplayer to then arrive at my code, be handled and then shipped off to alsa... but I'm getting there.

On a sidenote that might be slightly off-topic: can someone who wants dual audio output explain to me what possible use case would be served by that? I honestly dont get what the big fuss is about unless I totally misunderstood the idea and "dual" actually refers to two different outputs rather than twice the same.


- erhnam - 2011-02-03

voyman Wrote:On a sidenote that might be slightly off-topic: can someone who wants dual audio output explain to me what possible use case would be served by that? I honestly dont get what the big fuss is about unless I totally misunderstood the idea and "dual" actually refers to two different outputs rather than twice the same.

We need twice the same stream. In my example the machine is hooked up to two different receivers; one only used for audio, one for video. Most of the people asking for dual output have these kind of setup's.


- darkscout - 2011-02-03

voyman Wrote:A quick update for those interested in HD bitstreaming: the basic "low-level" stuff is done and works standalone with alsa (my only target for now). However, I'm having a hard time getting actual streams to come out of xbmc playable - this has mostly to do with me trying to understand how the bits flow from the file you're playing through the (rather complex) internals of dvdplayer to then arrive at my code, be handled and then shipped off to alsa... but I'm getting there.

Quick switching between sources really doesn't work right now. As you cycle through "Analog, HDMI, Optical/Coax" really doesn't do anything other than enable/disable the passthrough.

I have HDMI out connected to my TV and coax connected to my 5.1 receiver. My TV doesn't do any decoding, so you can't use passthrough with it. So I have both setup. If I'm watching a TV show I just turn off my receiver. If I switch over to a movie, I mute the TV and turn on the receiver, no going back into settings and cycling through stuff, enabling passthough, etc.

I did have alsa configured so that I could dump analog 2.0 out to both at the same time, but I haven't figured out how to do it with passthrough, or passthrough on AC3/DTS to just the receiver and have it convert to analog for the TV, etc.


- gnif - 2011-02-03

Quote:Quick switching between sources really doesn't work right now. As you cycle through "Analog, HDMI, Optical/Coax" really doesn't do anything other than enable/disable the passthrough.

This is fixed in AE


- gnif - 2011-02-06

Time for another update:

I have finally tracked down the passthrough issues with HDMI and changed Optical/Coax output to default to non-transcoded output for AC3 & DTS streams, all others will be transcoded to AC3.

There was an issue with playback of streams such as TVHeadend when corruption occurred which would cause choppy audio until the stream was paused/resumed, or restarted. This was because the stream was underunning and then not waiting for its buffers to fill again to recover properly.

Things I am working on.

* General stability, there are still a few crash issues with changing audio output settings on the fly
* The GUI settings for audio configuration, these need to be re-designed now that we have more abilities, and settings for > 5.1 on Optical/Coax need to be removed.
* DTS-MA and TrueHD passthrough
* PAPlayer has an issue with queuing the next track when xfade is enabled on VBR mp3 files due to not having a proper track length. TagLib was investigated to fix this, but it also can not report the correct length of a VBR mp3 file.

Semi-Unrelated to AE

* I have started implementing TagLib into XBMC, it is a little delayed currently though because TagLib does not have any way to do IO abstraction so our VFS cant be implemented. I am working with the TagLib devs to add this support.


- ashlar - 2011-02-06

Thx for the update. Keep up the good work! Smile