ffmpeg: Add support for high resolution audio

 * Output interleaved 24-bit (32-bit packed) PCM at up to 192KHz for
   use with PCM offload. Falls back to resampling if disabled.

Change-Id: Ie1bd3066c0459fb99a9d4ff9e28d6a65e234408a
stagefright-plugins: Handle 32-bit floating point sample formats

 * Convert these to 24-bit PCM if the system is capable of it.
 * This also fixes that pesky ADSP crash.

Change-Id: Ia464d62f2b6f17986428f3e45ed61784d4c9006f
stagefright-plugins: Audio output port reconfiguration support

 * Add support for reconfiguring the audio output port (PCM) on the
   fly. This enables us to easily control both high resolution
   output as well as downsampling.

Change-Id: Ic5ea3efc966b0da2d62041fa0de2e422c1f9f7fc
stagefright-plugins: Allow use of HW codecs for Windows Media

 * We will still fall back to FFMPEG if these fail.

Change-Id: I74287268f6782e69e0bee624368a85837d2c7969
ffmpeg_source: do not adjust offset on read error/eof

It has been observed that NuCachedSource2 can return a negative
value on attempts to read at EOS (end of stream). Also, the
url_feof from FFMPEG attempts an additional fill_buffer after
a eof_reached condition has been set. If the offset is adjusted
backwards at EOS, then url_feof will never detect the EOS and
will have an infinite stream of data. This is particularly bad
when memory is allocated on each line of data read (eg. when
an hls,applehttp media type is parsed via hls_read_header).

Change-Id: Ieb992e2e9e2a55adaabc28fb407f519e56b10011
ffmpeg_source: add url check to android_open

This check confirms that if a URL is attached to the
android-source in the url string passed to android_open,
that it match the actual URL pointed to by that datasource.

It has been observed that some hls,applehttp sources contain
playlists within the playlist. In these cases, the additional
playlists may be opened by rewriting the original URL. However,
since the "android-source:<%p>" prefix is unmodified, it "opens"
the original URL again. This continues until memory is depleted.

Change-Id: Ieb504393aaa204a641035c982fe4a123a3e61a98
stagefright-plugins: Return real bitwidth in getParameter call

 * ..and store the real parameters during setParameter.

Change-Id: I170b283da649303e6c016458a3bfebd3431b5c42
stagefright-plugins: Add a couple of sample format exceptions

 * DTS and AC3 need to output 24-bit samples if supported.

Change-Id: I84174994d568645e7c7c593901fff30b998bf92a
Disable 24-bit until framework is updated
Disable 24-bit until framework is updated

Change-Id: If3f347ae0371aad3cb31364f67475d992a1889d1
stagefright-plugins: Allow multiple getParameter invocations

 * Previously we asserted that the component was not yet configured
   during getParameter, but SF in Lollipop may need to query the
   component multiple times.  Add support for this.

Change-Id: I5e1de8a57605e682a543614414d4e1efac43d03f
adec: Fix various issues on Stagefright 5.0

 * Return proper values in getParameter calls
 * Send valid timestamp at EOS

Change-Id: Ia78fa4029870ae32d30678316d8f7000db2b75c8
stagefright-plugins: Rename mpeg2v to mpeg2

Change-Id: Ia9fdd6c733bc138f52b843593a140c66f803f045
stagefright-plugins: Implement frame dropping and AV sync

 * Keep the video from lagging behind the audio by dropping
   frames when we're too far behind.
 * Set options to improve video playback performance
 * It's still a quite terrible experience without hardware decoding,
   but prior to this patch it was possible that the first slow
   frame would be droped by Stagefright and the lag would just grow,
   resulting in a black screen.

Change-Id: Ib10933d385d593d8e887bca033f22b68a812bc7c
stagefright-plugins: Return target format in PCM params query

 * If the framework told us to do something else, we should do it.

Change-Id: Ie7777346012a96392a3baa9cca38c3ac31288b5d
stagefright-plugins: Use new OMX type for AC3

 * This is new in Lollipop. Google didn't implement a decoder though,
   so we can handle it.

Change-Id: I755e7f02de38053770bb53acae2a9a41549dfbad
stagefright-plugins: Fix warning

Change-Id: Iadf3666a3899f6f1071ba9042642dfd29cc3e2ee
stagefright-plugins: Use the max aggregated buffer size

 * NuPlayer has a new feature which aggregates small buffers before
   delivering them to the codec. We need to match this size in all
   cases or we will have a bad time.

Change-Id: I353cedbe6f864e89214f185bbffa7314d7caf77c
stagefright-plugins: Enable 24-bit output

 * Always enable it. Audioflinger has conversions for when the hardware
   can't support it.
 * Also fix a bunch of state management issues

Change-Id: I2106b34251bd0c9db0655dd97d3e92c7b635a982
stagefright-plugins: Updates for FFMPEG 2.5

 * Update for API changes in FFMPEG 2.5
 * Clean up all the warnings
 * Remove homegrown timestamp handling, it's no longer needed
 * FFMPEG software video decoders perform quite well-
   We now have a formidable media stack that can play nearly
   anything!

Change-Id: I910e24a60f29968894b62d13b16c6b5c9b3b42a6