AudioEngine branch - DO NOT REQUEST BINARY BUILDS - Printable Version
+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Development (/forumdisplay.php?fid=93)
+--- Thread: AudioEngine branch - DO NOT REQUEST BINARY BUILDS (/showthread.php?tid=78289)
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
- Calvados - 2012-01-29 11:29
Alright - I have upgraded to latest git, and was not able to play any DTS-HD content. So I looked at the code, compared with the history, and changed back the code to:
#define PERIOD_SIZE_MS 4
#define ALSA_PERIODS 32
before that I tried ALSA_PERIODS of 8, 16... then bumped the PERIOD_SIZE from 20 to 40... which made it worse. I do get an awfull lot of "ERROR: CAESinkALSA::AddPackets - Timeout waiting for space", so I know those settings are not quite right either.
Just my two cents.
- Calvados - 2012-01-29 14:03
Played more with the code... Anything outside of 4 / 32 combination seems to fail for me. Guessing there are some HW limitations here.
Now, as far as the m_timeout is concerned, I find your code funny. I mean if you go back to what the formula means, it basically can be reduced to (PERIOD_SIZE_MS * 1.5f). I don't supposed you intended that, since I assume you wanted to wait longer if the thing is bigger . Late night coding will do that I assume .
- gnif - 2012-01-29 16:23
@Calvados - I will investigate this further tomorrow, its late now, but I am pretty sure the wait timeout calc was correct. ALSA should return once there is at-least one period to fill, 1 period is roughly 20ms depending on hardware, so 20ms * 1.5 gives some room for error in timing, but perhaps not enough.
Edit: and no its not (PERIOD_SIZE * 1.5f)
Edit 2: I have adjusted this now to (* periods) instead of 1.5, if it has to wait this long, there is something seriously wrong.
* @DDDamian has updated WASAPI again with some more patches and tweaks, the logging issue will be corrected soon, from what I understand this should only be logged in exclusive mode, but wont know until I can follow this up with him.
* AE now performs dithering when converting to 16bit, this improves the noise floor considerably, 8bit is soon to come.
* Float -> S16 conversion has been completely re-written to accommodate dithering, but also to squeeze more performance out of SSE, I have not yet profiled the new code, but I can already say it will be faster without a doubt.
* New random functions for use with dithering, these are based on an Intel whitepaper and perform anywhere between 2-5x faster then the standard rand() function. The SSE version is also designed to return a __m128 value if desired, so that it can be directly plugged into other SSE optimized code.
- DDDamian - 2012-01-29 18:20
gnif Wrote:* @DDDamian has updated WASAPI again with some more patches and tweaks, the logging issue will be corrected soon, from what I understand this should only be logged in exclusive mode, but wont know until I can follow this up with him.
Checked MutatedHeros log - got stuck in an endless loop - sink opening in RAW - back to SoftAE:OpenSink and re-open again - see the issue, patch coming. After successfully opening the sink it checks IsCompatible a second time?!? Don't know why that didn't happen for me yet, but just read log. I'll update in about 8hrs.
gnif Wrote:* AE now performs dithering when converting to 16bit, this improves the noise floor considerably, 8bit is soon to come.
That was a *&%*%ing quick port lol! For anyone interested dithering reduces quantization errors (aka distortion) in converting back to 16bit, to the theoretical equivalent of ~16-20db. Hope not too many folks are using 8bit sources, but in almost all cases except 24-bit FLAC this will improve sound quality substantially.
*** Folks - one request while you're doing your tests: please distinguish your platform when posting - maybe put [LINUX] or [Win7] etc in your post. Just makes it easier to know who has to fix. Appreciate your testing efforts! As always logs required - if you can't you shouldn't be testing. Also, given the demanding requirements of high-quality audio pls ensure your compiler's set to optimize the code!
- DDDamian - 2012-01-29 18:29
pike Wrote:Heh, my processor takes 7-10 seonds to adjust between stream changes, so (without me having read exactly what this does) I sure hope it's optional.
@Pike - on my receiver it's ~0.5 - 1.0 seconds, so the switching time's definitely equipment-dependent. Regarding options gnif's intent is to have the tweaks available in advancedsettings.xml, including the audiophile switch. I'd expect releases would have the smoothest/simplest settings as default.
I too have many SACD rips (and DVD-A) and have to use Foobar for them. There's an awesome open-source decoder in SourceForge for Foobar which can open the raw ISO's and convert DSD to PCM at multiple sample rates, and even supports tagging and replaygain metadata. Perhaps we can talk to it's developer and get SACD in AE in the future.
With regards to the upmixing and upsampling - this is gnif's baby (and what a baby!) so he'd have to address that.
I can say that in just a few conversations with him he's one heck of a smart cookie - i think his brain processes the real world in ++
- dado483 - 2012-01-29 18:39
Komet Wrote:It would be great if you could publish you merge-branch!
If you read this thread you found that my brach is already pusblished.
git clone -b AE-betaEden git://github.com/dado483/xbmc.git
- gnif - 2012-01-29 18:44
@dado483 - What is this fork, what is different about it to the official AE branch... I merge AE with whats in master periodically so it is effectively EDEN+AE already.
- Hack_kid - 2012-01-29 19:02
hey how do i enable the audiophile mode? a switch in as.xml? whats the syntak?
- DDDamian - 2012-01-29 19:16
Hack_kid Wrote:hey how do i enable the audiophile mode? a switch in as.xml? whats the syntak?
Should be on by default right now. Will be added to advancedsettings.xml in any release.
- DDDamian - 2012-01-29 19:18
gnif Wrote:@dado483 - What is this fork, what is different about it to the official AE branch... I merge AE with whats in master periodically so it is effectively EDEN+AE already.
@gnif - He's merged with PVR.