[osxsink] - for devices which report samplerate 0hz - allow user override
with 44.1khz and 48khz
FIX: [droid;x86;ffmpeg] disabling mmx on recent gcc actually causes crashes
[PiSink] Ensure audio buffers use reasonable sized chunks

Previously the sink tried to consume exactly the number of samples required to maintain the desired audio latency.
That has a problem that we reapeatedly get called, and just consume a few samples each call.
As the cost of sending the data to the GPU is quite high, this results in a lot of CPU being used.
This changes the buffering to sleep for a quarter of buffer size, which ensures the samples submitted are always at lease a quarter of the total

Also, now the latency is never more than AUDIO_PLAYBUFFER, so report that directly in GetCacheTotal.
[PiSink] Add support for float and 32-bit formats

Significant CPU is consumed in converting audio to the sink's format, so add support for common formats to the sink.

Requires update firmware to handle this
[PiSink] Fix multichannel and passthough

The current Pi sink has random speaker allocation and plays noise when passthrough is enabled.
This adds messages to gpu to describe speaker layout for multichannel, and signal when passthrough is used
fixing both these issues
[PiSink] Increase Pi Sink's buffering

We do get underruns and breakups at 50ms latency. Increase to 100ms.
[PiSink] Analogue only supports stereo
[Linux] add basic support for Wii U Pro Controller

Since Linux kernel 3.13, the Wii U Pro Controller works out-of-the-box
by simply connecting it as a bluetooth device. This is way better than
the Xbox 360 controller because you don't need a separate adapter.
Additionally the LEDs work properly and the controller has a power button,
so you can actually turn it off instead of having to unplug the battery.

This patch adds basic support for menu navigation and video playback. It
mostly matches the Xbox 360 Controller mappings (from the Wiki) with
some minor differences (e.g. the home button actually takes you home and
the secondary shoulder buttons are not analog).

I also tested this controller on Windows 8.1. You can connect it as a
bluetooth device but it doesn't actually work. The LEDs on the
controller keep blinking and XBMC only detects it as a joystick with 0
buttons, 0 hats and 0 axes. I guess there is simply no driver support but I
haven't looked into it in detail.
Merge pull request #4481 from mus65/wiiupro

[Linux] add basic support for Wii U Pro Controller
Merge pull request #4467 from Memphiz/osxnosamplerate

[osxsink] - for devices which report samplerate 0hz - allow user overrid...
Merge pull request #4460 from koying/fixdroidx86ffmpeg

FIX: [droid;x86;ffmpeg] disabling mmx on recent gcc actually causes crashes
Merge pull request #4475 from popcornmix/pisink_update

[PiSink] Fixes for underrun, passthrough and multichannel
videoplayer: adapt lateness detection and dropping to buffering
video player: present correct pts to user for a/v sync (after buffering in renderer)
videoplayer: some rework and documentation
renderer: bump buffers to 5
videoplayer: update frametime, it might change due to fps detection
videoplayer: give streams with invalid fps a chance for fps detection
dvdplayer: allow rewinding at end of stream, do a seek after rewind
X11: ditch SDL for video and window events