[rbp/omxplayer] Move the buffer of the decoded audio to output port

The buffers between host and gpu components are duplicated, so 2 seconds of 8 channel 48kHz audio requires 3MB.
That memory is required on both host and gpu. We want this buffering to provide protection from underrun when the arm is busy.

By moving the majority of the buffering from omx_decoder's input to output port, we save that memory on the arm.
Also the output port is 16-bit integer, rather than float, so we halve the size in addition.
[rbp/omxplayer] Remove clock manipulation from a/v players
[rbp/omxplayer] Move start flags out of clock component

Keep track of start flags locally. I believe the behaviour is unchanged now that clock state is controlled only by OMXPlayer.
[rbp/omxplayer] Remove unused function OMXStart
[rbp/omxplayer] Reduce the size of preroll

The preroll defines how much earlier the clock starts compares to timestamps of audio/video.
This needs enough time for GPU side worst video/audio decode/schedule/render.
This should never be more than 200ms.

This makes playback start and seeks 600ms more responsive which is noticable when seeking through a video.
[rbp/omxplayer] Remove flush of video codec when audio codec changes

I believe this was added to work around a race condition that is no longer present.
It discards video and results in a corruption until the next I frame.
[rbp/omxplayer] Add logging for when audio/video EOS is first detected

This is useful for diagnosing streams that hang at end of file
[rbp/omxplayer] Explicitly set number of output channels on audio_mixer
[rbp/omxplayer] Remove unused state from OMXClock

m_has_audio/m_has_video are always set before OMXReset is called, so just make them local parameters.
m_video_start and m_audio_start are unused, so remove them.

This commit should have no functional change
[rbp/omxplayer] Support ff/rew

Big missing feature added for Pi.
It works by increasing the clock and discarding audio when at 2x and 4x.
For rewind and 8x and higher, it uses a different scheme. It pauses video, and single steps.

For both schemes it uses the normal dvd player mechanism of seeking when the clock has diverged by too much.

Notes:
dvdplayer still decodes (then discards) audio when ff/rew.
I'm skipping the decode step (too much cpu at 4x realtime).

I've made GetTime return m_clock.GetClock() when ff/rew. (m_State.time is too jumpy).
Add VFP-accelerated version of synth_filter_float(), used by DTS Coherent Acoustics decoder
1st version of ff_int32_to_float_fmul_scalar_vfp
2nd version of fmul_scalar
Add VFP-accelerated version of imdct_half
Add VFP_accelerated version of dca_lfe_fir
Add VFP-accelerated version of fft16
Avoid flushing fifos when audio/video fifos out of sync
[rbp/omxplayer] Fix build error in types for max

It seems there is a compile error when STDINT_H_AVAILABLE is not defined.
See: http://raspbmc.apt-get.eu/downloads/bin/xbmc/nightlies/xbmc-rbp-20130710.log
[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.
[rbp/omxplayer] Fixes for trickplay

In #2955 we lied in GetTime when in trickplay modes to avoid jittery updates in elapsed time.
This was wrong when GetClock() didn't match the media time (e.g. when playback was started from a bookmark).

The jitter is caused by the DISPLAYTIME messages that don't really work on omxplayer.
Instead bypass the DISPLAYTIME messages and set the time explicity in OMXPlayer (using media time where appropriate).

Also in trickplay, do the seek/flush step more to fix an issue when going from normal to rewind after EOS

Also don't honour the "accurate" seek flag, as it results in corrupt frames being displayed