[rbp/omxplayer] Add fixed latency mode for live streams
[rbp/omxplayer] Avoid marking non-monotonic timestamps as unknown

Following a single spurious timestamp that is in the future,
all subsequent timestamps will be marked unknown causing out of sync.
[rbp/omxplayer] When opening a stream don't try to update gui so often

The 1ms sleep allows for up to 1000 fps gui overlay update, which when busy when opening a file is a bad idea.
Increase the sleep so it only tries to update at up to 10 times per second
[rbp/omxplayer] Use display time for EDL cut start time

There are reports that EDL commercial break skipping occurs 5-10 seconds too early. This is because the skip occurs when a timestamp
is received at PlayerVideo/PlayerAudio, but it may still be a number of seconds before that frame is presented by the GPU.

Instead use the display time (GetTime) to determine start of cut time
Add caching of infolabels

The functions CGUIInfoLabel::GetLabel and CGUIInfoLabel::GetItemLabel take
a number of strings returned from CGUIInfoManager::GetImage or
CGUIInfoManager::GetLabel, and combine them with various constant strings
which were determined during CGUIInfoLabel::Parse.

Rather than perform all the string operations on every call, this patch
changes to use a two-pass process: first it queries all the GetImage/GetLabel
strings, and then only if at least one of them has changed does it bother
rebuilding the resultant string - otherwise it re-uses the copy built on a
preceding call.

CGUIInfoLabel::GetLabel/GetItemLabel are also changed to return string
references, rather than forcing an additional string copy.

I have measured the effect while the Videos window of the default skin was
open (but idle) on a Raspberry Pi, and this reduced the CPU usage by 0.8%
from 36.2% to 35.4%:

          Before          After
          Mean   StdDev   Mean   StdDev  Confidence  Change
IdleCPU%  36.2   0.5      35.4   0.5     99.9%       +2.2%
Remove asserts in MathUtils::round_int() and MathUtils::truncate_int().

These are very low level functions and get used a *lot*. As a result, even
the tests for the asserts have a measurable impact on performance, Surely
these are best left enabled only in some form of debug build? (Also, the
reaction in the case of overflow or underflow, to terminate the application,
seems severe to use in release builds to me.)

This patch simply wraps them in #if 0. I open the floor to suggestions of a
better switch.

I tested on a Raspberry Pi with the default theme, displaying the front page
with the RSS ticker enabled. This saturates the CPU, so I'm measuring the
improvement using the debug window's FPS figure. This patch improves this from
~49.8 FPS to ~50.8 FPS.
Faster and simpler portable implementation of MathUtils::round_int().

Much as I like a bit of inline assembler, I have also removed the ARM versions
of MathUtils::truncate_int() and MathUtils::round_int(). The former was just
how any sane compiler should have assembled a cast from double to signed int
anyway. The latter was a much too complicated way to achieve the desired
effect, and was switched out in most ARM builds anyway in favour of the old
portable implementation that used floor().

Verified that MathUtils::test() still passes, and that GCC is now able to
inline MathUtils::round_int(), where it didn't previously.

I tested on a Raspberry Pi with the default theme, displaying the front page
with the RSS ticker enabled. This saturates the CPU, so I'm measuring the
improvement using the debug window's FPS figure. This patch improves this from
~50.8 FPS to ~52.6 FPS.
ffmpeg demuxer: faster channel change for PVR addons without internal demuxing
[rbp] Increase jpeg timeouts

We allow multiple jpegs to be submitted to GPU where the locking is done.
The 1 second timeout can be exceeded when multiple threads have submitted jpegs
fix issues with iOS 7 AirPlay streaming
Add time taken to resample to log
logging: Add microsecond timer to log messages
[rbp/omxplayer] Never trust pts in avi files

Currently we play unpacked avi files with slight stutters. The pts values are incorrect and are actually dts values.
Set the flag that says ignore pts.
fix up advertisement in StartAirPlayServer() in NetworkServices.cpp for Gotham
[rbp] Don't override dvdplayer with omxplayer.

Using dvdplayer can be useful on the Pi. We can actually play sd (up to 640x480 MPEG-4 video) video in real time.
This is useful for codec variants like DivX3 which we don't currently play.

This may expose bugs where dvdplayer is incorrectly used as the default player which will need to be fixed
[players] Use default players rather than hard coded DVDPlayer/PAPlayer
[rbp] Don't force dvdplayer for airplay
[rbp] Give plugins omxplayer when they request dvdplayer on pi
[ActiveAE] Provide settings option to enable AC3 transcode

The AC3 encode option is too expensive for Pi, so disable it by default
[PiSink] Fix some issues with buffering and multichannel