[rbp] Fix type of transform parameter to match latest firmware
[rbp/omxplayer] Support frame advance (single step) with right arrow when paused
[rbp/omxplayer] Avoid flushing fifos when audio/video fifos out of sync

This was intended to be a never happens event that could reset the state when something bad happens.
However it does trigger in some reasonable cases (like audio codec change) and makes things worse.
[rbp/omxplayer] Fix audio sync with visualisation

As GPU can buffer a few seconds of audio, and the visualisation is updated immediately, they are badly out of sync.
The solution is to push the visualisation data through a queue, and retrieve it from queue when the media time is reached.
[rbp/omxplayer] Apply deinterlace changes immediately

Currently on Pi the deinterlace state is only sampled when opening the player.
This means to change deinterlace settings, you need to change in the video OSD then manually quit and restart the video.
This commit detects a change in current deinterlace settings and closes and opens the video player which applies the setting.

For seekable streams, seeking to "now" makes the video restart quicker.
Without the seek, the video does reappear, but takes a number of seconds
[rbp/omxplayer] Support both analogue and hdmi audio

Thanks to stupid-boy for original implementation.
Revert "[rbp/omxplayer] Support both analogue and hdmi audio"

This reverts commit 7813a29b3289ab29b039041e1980b38663db0225.
[3D] Support switching to 3D resolutions

Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes.
Also remove the old code that treated 3D modes differently when assigning a score.

I've also added a small weight to higher multiples of the desired framerate, so if display supports 30, 60 and 120Hz
and the video is 30fps then 30 will now be chosen rather than 120. This reduces the overhead of rendering the gui.
[confluence] Use animated gif as a cheaper working spinner
[rbp] Switch from libshairport to libshairplay for airplay
[rbp/omxplayer] Do we need discontinuity handling?

So far I've not seen what this is needed for and it does cause problems for some files.
[ffmpeg] - backport - avio: Add an internal function for reading without copying

As long as there is enough contiguous data in the avio buffer,
just return a pointer to it instead of copying it to the caller
provided buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
[ffmpeg] - backport - mpegts: Remove one memcpy per packet

This was being performed to ensure that a complete packet was held in
contiguous memory, prior to parsing the packet. However, the source buffer
is typically large enough that the packet was already contiguous, so it is
beneficial to return the packet by reference in most cases.

         Before          After
         Mean   StdDev   Mean   StdDev  Change
memcpy    720.7  32.7     649.8  25.1   +10.9%
Overall  2372.7  46.1    2291.7  21.8    +3.5%

Signed-off-by: Martin Storsjö <martin@martin.st>
[ffmpeg] - backport - mpegts: Make discard_pid() faster for single-program streams

When a stream contains a single program, there's no point in doing a
PID -> program lookup. Normally the one and only program isn't disabled,
so no packets should be discarded.

              Before          After
              Mean   StdDev   Mean   StdDev  Change
discard_pid()   73.8  9.4       20.2  1.5    +264.8%
Overall       2300.8 28.0     2253.1 20.6      +2.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
[ffmpeg] - backport - mpegts: Remove one 64-bit integer modulus operation per packet

The common case of the pointer having increased by one packet (which results
in no change to the modulus) can be detected with a 64-bit subtraction,
which is far cheaper than a division on many platforms.

           Before          After
           Mean   StdDev   Mean   StdDev  Change
Divisions   248.3  8.8      51.5   7.4    +381.7%
Overall    2773.2 25.6     2372.5 43.1     +16.9%

Signed-off-by: Martin Storsjö <martin@martin.st>
[ffmpeg/patches] Add backported mpegts optimisations
Add missing h264dsp initialisation call

Each AVStream struct for an H.264 elementary stream actually has two copies
of the H264DSPContext struct (and in fact all the other members of
H264Context as well):

((H264Context *) ((AVStream *)st)->codec->priv_data)->h264dsp
((H264Context *) ((AVStream *)st)->parser->priv_data)->h264dsp

but only the first of these was actually being initialised. This prevented
the addition of platform-specific implementations of parser-related functions.
New h264dsp method, h264_find_start_code_candidate

This performs the start code search which was previously part of
h264_find_frame_end() - the most CPU intensive part of the function.
arm: Add assembly version of h264_find_start_code_candidate

               Before          After
               Mean   StdDev   Mean   StdDev  Change
This function   479.8  16.7     181.0  11.1   +165.1%
Overall        2898.0  24.4    2738.2  26.3     +5.8%