[AudioEngine] Support for AE on Windows platform

  Thread Rating:
  • 4 Votes - 4.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
sw4y Offline
Member
Posts: 75
Joined: Apr 2011
Reputation: 0
Post: #271
Glad to hear you are able to reproduce it and working on it!
THX for that and your time you're spending!
find quote
DDDamian Offline
Team-XBMC Developer
Posts: 3,030
Joined: Sep 2011
Reputation: 254
Location: Canada
Post: #272
(2012-09-01 23:45)sw4y Wrote:  Glad to hear you are able to reproduce it and working on it!
THX for that and your time you're spending!

Patched up - please let me know (anybody) if the issue is resolved with tmo's nightly. Thx.

System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
find quote
Voyager Offline
Team-Kodi Member
Posts: 357
Joined: Apr 2010
Reputation: 5
Location: Belgium
Post: #273
(2012-09-01 23:31)DDDamian Wrote:  
(2012-09-01 23:23)Voyager-xbmc Wrote:  
(2012-09-01 18:14)WiSo Wrote:  A brief look reviled nothing but I could miss something.

@Wiso - as said, I have reverted the commit and everything works great. Just to test the theory a bit further, I commented out the call to SDL_Init in CApplication::CreateGUI (around line 800, inside #ifdef HAS_SDL block) plus the associated if block... and voila, the problem is back!
So this proves that the removal of SDL (and implicitly the call to SDL_Init) has caused all this.
So even though SDL_Init is called with no flags (0), somehow, stuff gets initialized that influences the stability of video playback.
I checked out SDL source code here, and all I see is threading initialization, and timer ticks initialization. All other subsystems are not started because of the "0" parameter. Back to the timer ticker. On Windows SDL calls QueryPerformanceCounter(). That's as far as my analysis goes, everything else would be speculation.

The WASAPI sink also uses QueryPerformanceCounter frequently - although it should be a thread-safe call I wonder if that's locking things up briefly. You can test using a debug build - the calls from the sink to the performance counter are ifdef'd out in debug mode. If this stabilizes it we may be closer to an answer.

@WiSo / @DDDamian - Eureka!! I further analysed the SDL_StartTicks function. The only thing it does is setting Windows-wide timer precision to 1 ms, by calling timeBeginPeriod(1);
I added just that line, and it has the same effect, problem solved. The effect is on the timeGetTime() Windows function, which is used in our XbmcThreads::SystemClockMillis(). Without initialisation, the precision can be as bad as 5 ms, or worse, see Microsoft doc at http://msdn.microsoft.com/en-us/library/...s.85).aspx
Of course increasing timer precision to 1ms may potentially comes at the expense of reduced overall system performance, but it's ok IMO for an HTPC. I'm going to submit a pull request.

EDIT: the reason why some people see this and some don't, is that the precision is system-dependent - see same M$ doc
EDIT 2 : PR submitted: https://github.com/xbmc/xbmc/pull/1352
(This post was last modified: 2012-09-02 08:35 by Voyager.)
find quote
sw4y Offline
Member
Posts: 75
Joined: Apr 2011
Reputation: 0
Post: #274
(2012-09-02 04:45)DDDamian Wrote:  
(2012-09-01 23:45)sw4y Wrote:  Glad to hear you are able to reproduce it and working on it!
THX for that and your time you're spending!

Patched up - please let me know (anybody) if the issue is resolved with tmo's nightly. Thx.

After a few tests no problems with tmo's nightly. Skipping, seeking, play/pause, trailers etc... works perfectly without any audio drop outs, freezes or crashes.

Big Thanks DDDamian for fixing the problem so fast!!
find quote
DDDamian Offline
Team-XBMC Developer
Posts: 3,030
Joined: Sep 2011
Reputation: 254
Location: Canada
Post: #275
@sw4y - fantastic - glad it's good again. I hate wearing the goat-horns lol, but some things are worth a night's breakage to try achieve. For anyone using external players or wanting some power savings this should be a good thing. There are still some annoying issues (many of which just reflect Eden-style sink re-init's) but at least we have a basis to move forward with.

@voyager-xbmc - been following your detective work - good catch Smile

System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
find quote
jpsdr Offline
Fan
Posts: 320
Joined: Oct 2003
Reputation: 0
Post: #276
@voyager-xbmc : Thanks. Apparently it fixes also the ticket 13277 i've opened.
find quote
DDDamian Offline
Team-XBMC Developer
Posts: 3,030
Joined: Sep 2011
Reputation: 254
Location: Canada
Post: #277
(2012-09-02 17:26)jpsdr Wrote:  @voyager-xbmc : Thanks. Apparently it fixes also the ticket 13277 i've opened.

Very nice - marked ticket as resolved and closed it. Great work Voyager.

System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
find quote
maruchan Offline
Senior Member
Posts: 298
Joined: Feb 2009
Reputation: 0
Post: #278
Running the latest nightly, I'm still seeing some FPS oddities on my setup, unfortunately Sad I'll post some logs later tonight. I'm using an old budget receiver that only supports AC3 and while overall it's MUCH improved, a quick test converting 5.1 DTS to 5.1 AC3 is causing stutters every 5 seconds or so. Enabling "Output sound to all speakers" makes the stutter much more pronounced. CPU usage is sitting in the low single digits, so I don't think it's that.
(This post was last modified: 2012-09-02 18:38 by maruchan.)
find quote
Voyager Offline
Team-Kodi Member
Posts: 357
Joined: Apr 2010
Reputation: 5
Location: Belgium
Post: #279
(2012-09-02 18:36)maruchan Wrote:  Running the latest nightly, I'm still seeing some FPS oddities on my setup, unfortunately Sad I'll post some logs later tonight. I'm using an old budget receiver that only supports AC3 and while overall it's MUCH improved, a quick test converting 5.1 DTS to 5.1 AC3 is causing stutters every 5 seconds or so. Enabling "Output sound to all speakers" makes the stutter much more pronounced. CPU usage is sitting in the low single digits, so I don't think it's that.

It seems the fps fix I got in today may be of help. Tomorrow's nightly will include it.
find quote
Voyager Offline
Team-Kodi Member
Posts: 357
Joined: Apr 2010
Reputation: 5
Location: Belgium
Post: #280
(2012-09-02 18:02)DDDamian Wrote:  
(2012-09-02 17:26)jpsdr Wrote:  @voyager-xbmc : Thanks. Apparently it fixes also the ticket 13277 i've opened.

Very nice - marked ticket as resolved and closed it. Great work Voyager.

thank you Damian and all others for the positive feedback!
find quote
maruchan Offline
Senior Member
Posts: 298
Joined: Feb 2009
Reputation: 0
Post: #281
Just had a chance to build a binary from head and the problem still persists Sad Here's a log file:

http://xbmclogs.com/show.php?id=7827&hash=46641207

Let me know if I can provide any other information.
find quote
DDDamian Offline
Team-XBMC Developer
Posts: 3,030
Joined: Sep 2011
Reputation: 254
Location: Canada
Post: #282
(2012-09-03 05:01)maruchan Wrote:  Just had a chance to build a binary from head and the problem still persists Sad Here's a log file:

http://xbmclogs.com/show.php?id=7827&hash=46641207

Let me know if I can provide any other information.

Can you try with Stereo Upmix off and with Dowmix Normalization disabled?

System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
find quote
maruchan Offline
Senior Member
Posts: 298
Joined: Feb 2009
Reputation: 0
Post: #283
Here you go:

http://xbmclogs.com/show.php?id=7843&hash=66766831

Doesn't seem to make too much of a difference.
find quote
maruchan Offline
Senior Member
Posts: 298
Joined: Feb 2009
Reputation: 0
Post: #284
Any thoughts, DDDamian? I'm not asking for a fix, I'm just curious if it's caused by my crusty old receiver or what. It works fine in Eden, so I'm assuming it's the result of the AE merge. Let me know if you need me to provide more details.
(This post was last modified: 2012-09-05 01:55 by maruchan.)
find quote
DDDamian Offline
Team-XBMC Developer
Posts: 3,030
Joined: Sep 2011
Reputation: 254
Location: Canada
Post: #285
@maruchan - it certainly not your receiver. I'm not seeing anything obvious in terms of the log's details on the output formats used nor any deviation from the various functions that should be kicking in. There's very obvious discontinuities in the log reported by dvdplayeraudio.cpp, almost like the engine thread shut down or is bogged down.

Two more things to test: one involves adding an advancedsettings.xml file - see the wiki for info.

Please put in there:
Code:
<advancedsettings>
    <loglevelrem>1</loglevelrem>
    <audio>
        <audiosinkbufferdurationmsec>200</audiosinkbufferdurationmsec>
    </audio>
</advancedsettings>

And try again. This lengthens the output buffering time and if the issue is processing time (although I'm doubtful) this will help.

The other thing to try (seperately as we need to rule things out one-by-one) is this build >>here<<. It is a bit earlier build which does not use SSE optimized methods for the math processing. It is just the xbmc.exe file - just copy it over your existing one.

System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
find quote
Post Reply