AE: Pulse Audio fix crash on player stop.

PA is calling back functions on stream destruction and may try
to read a free'd stream variable. (trac bug 13903)

Signed-off-by: Michael Cronenworth <mike@cchtml.com>
AE: Pulse Audio fix buffer underruns.

The cache buffer size was being initialized to the write size
of a PA stream, which is not the buffer size of the PA server.
The cache buffer size will now use the PA server buffer size.
(trac bug 13902)

Signed-off-by: Michael Cronenworth <mike@cchtml.com>
Remove spam log message in CGUIWindowSlideShow::RenderErrorMessage().
Support the shorten filename output of http directory.
[AE] ALSA: Do not try to bypass dmix for other sample rates

Currently the ALSA sink tries to bypass ALSA dmix when the audio sample
rate is different from dmix sample rate (usually 48000). This is done by
opening "front" device instead of "default" (or "sysdefault").

However, this has the effect that stereo audio is only played on the
front speakers, while "default" device might have routed the audio to
multiple speakers on a multichannel system. This effect is triggered
even on systems that have a hardware mixer and therefore no dmix in the
first place.

To avoid this issue, remove the bypass behavior that was added between
11.0 and 12.0. This change affects stereo audio only as multichannel
audio does not normally have ALSA dmix in the first place.

It would not have been feasible to limit the previous behavior to dmix
systems only, since the ALSA design does not allow us to easily detect
dmix, since user applications should not care about that. If dmix is not
wanted, the user should not have it enabled in the first place.
[python] Add removeItem to ControlList
Templatize some of the more repetitive initialize-check logic so that
we can just try and create every individual type, see if creation succeeded
and then return true if it did.
[Fix] Change from DarwinCFStringRefToString to DarwinCFStringRefToUTF8String.
[rbp] Add reporting of fifo fullness for use with hdmi_status_show in debug builds
[rbp] Move m_messenger.Init from constructor to OnStartup

This makes omxplayer constistent with dvdplayer.
It avoids an initial stray message to immediately try and go normal speed when it should be buffering.
[rbp] Expose GetAudioRenderingLatency

This could be useful for detecting underrun conditions
[rbp] Add OMXLateCount to query if packets have arrived late

Could be useful for detecting underrun conditions
[rbp] Add more debug logging
[rbp] Use CurrentHostCounter consistently
[rbp] Use correct size when determining fifo has space in it

This can cause player to get a decode error from audio_decode component
closing stream when packet doesn't actually fit.
[rbp] Always acquire lock when using OMXMediaTime

I don't believe the lock=false call should ever be done unless caller already has lock
[rbp] Cosmetics
[rbp] The stillframe logic doesn't work on Pi and causes stuttering
[rbp] Avoid coming out of stalled state due to uninitialised variable

m_endtime is only initialised when we underrun. Use m_av_clock->OMXAudioBuffer() to protect access to uninitialised variable.
allow fullscreen actions such as next subtitle, audio stream, audio/subs delay etc. to be handled in other places