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