[rbp/omxplayer] Support both analogue and hdmi audio

Part 1: Support
Thanks to stupid-boy for original implementation.
[rbp] Add screenshot implementation that includes video layer

As Pi doesn't use GL for video, a screenshot only contains UI.
Need to use Pi specific function for screenshot.
First implementation of the CRenderCapture interface

RenderCapture implementation for RPi using DispmanX

Minor changes that I reverted to the repo's version

Changed snapshot taking to use g_RBP.CaptureDisplay()

Removed unused fields, and changed implementation to use the width and height parameters
[rbp/omxplayer] Fix for hang following seek after eos

If you seek after the demuxer eof, the eof state is cleared, but we are not clearing the flags relating to sending eos stream to audio/video players
[rbp/omxplayer] Make m_omx_render an object rather than pointer

Seems no reason for it not to be like other components, as it makes merging with command line omxplayer more difficult
[rbp/omxplayer] Make sure swr resampler gets reinited when channel count changes

Just like #2795.
[rbp/omxplayer] Remove commented out code
[rbp/omxplayer] Move openmax pipeline creation into portsettingschanged code

OpenMAX setup becomes more straightforward when components and tunnels are initialised after the first portsettingschanged message.
You get one of these after the first frame is decoded (and also when settings change, like resolution).
Doing the setup here means you know useful information about the stream, like the resolution and you avoid having to disable/enable multiple ports.

It will also make creating a pipline with the deinterlace component possible *after* the decoder has identified if stream is interlaced
[rbp/omxplayer] Support automatic deinterlace correctly.

Previously there was no distinction between deinterlace being automatic and force on.
Both did a hack parse that only worked (sometimes) for h264. Other codecs would always force on.

This change now handles the three modes correctly. Off and force on do as expected.
Automatic now queries the openmax video codec, which can reliably determine if a stream is interlaced
[rbp/omxplayer] Remove unused variable m_pTempOverlayPicture
[rbp/omxplayer] Remove unused Pause/Resume functions

These should be implemented with clock component
[rbp/omxplayer] Remove call to OMXLateCount that will be removed
[rbp/omxplayer] Remove unused clock code
[rbp/omxplayer] Support planar float format audio directly

The update to ffmpeg1.2 has produced a significant performance hit on the Pi when decoding multichannel audio without passthrough.
This is because (most) audio codecs now output planar floating point, rather than interleaved S16 samples.
OpenMax/GPU can handle interleaved S16 samples directly, whereas the floating point planar samples get converted with swr_convert.
This is a slow operation, and a quick profile showed it to be taking about 150MHz of ARM CPU when using 6 channel audio.

I've added support on GPU for a new floating point planar format in audio_decode component.
This PR makes this format also supported for sending audio to the GPU.
The GPU now also handles the 6->8 channel padding so the UpMix() function is no longer required,
which may improve performance compared to pre-ffpeg1.2 version.

[Note: although Frodo doesn't use ffmpeg1.2, this commit still works and improves performance by avoiding the UpMix step]

This PR requires recent GPU firmware. (384946 or later).
[rbp/omxplayer] Merge with current dvdplayer

To make spotting differences between omxplayer and dvdplayer easier in the future,
this is a pretty slavish copy, including dvdplayer's whitespace and header file includes.
You now get a pretty clean diff between dvdplayer.cpp/dvdplayer.h and omxplayer.cpp/omxplayer.h
[rbp/omxplayer] Simplify clock handling

In OMXClock we have an almost complete copy of DVDClock, so just use DVDClock directly.

The passing through of CDVDClock functions from OMXClock is hopefully temporary,
as I think clock manipulation is better handled from OMXPlayer than audio/video players.
[rbp/omxplayer] Add plumbing for audio GetCacheTotal
[rbp/omxplayer] OMX spec says we can transition from execute to idle
[rbp/omxplayer] Workaround for audio_mixer is not required

We have similar code in command line omxplayer, and that has never had this
workaround. I've been running with it removed for some weeks with no problems.

I believe it was working around a bug elsewhere that is no longer present.
[rbp/omxplayer] Add calls for stepping and retreiving the clock adjustment