stagefright: Allow devices to use older widevine blobs

Devices may have widevine plugins built with an older MediaSource
interface.  Trying to use them fails because of the change in
interface in the object (it calls the destructor in the blob when
attempting to call setBuffers).

This commit restores the interface for ! QCOM_HARDWARE devices.

Fixes: JIRA-4944.

Change-Id: I4ce24a16f3eceab0c4def4b09850ed569eb392ab
libstagefright: Adds some parsing capability

o Adds AC3, EAC3 and DTS mime types
o Adds AC3/EAC3 support in MP4 parser
o Adds MPEG4 video, MPEG Audio, AC3, DTS, EAC3 support
in mkv extractor.

Change-Id: I9895c0e40e5ad38976004a9569200f1340d525de
Audio stops after seeking AVI clip with MP3 audio (special contents without proper key samples)

During seek in AVI, nearest Sync sample was searched both for
audio and video. Sync samples are useful only in case of
video. We can ignore Sync field for non-video tracks.

Change-Id: Ibaeda8f14afb83905e19087625a7d72fb1b3c8d6
Signed-off-by: Arulselvan M <arulselvan.m@intel.com>
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Correct the time returned by AudioPlayer::getMediaTime

The change 80a68deec52c9a1b47215ed68526206ec88197f8 was added to
eliminate returning negative media positions.

In the change all negative values of realTimeOffset were discarded.
The value realTimeOffset accounts for the latency and the
number of samples played since last feeding the AudioTrack and is
generally negative. By discarding this value for negative values the
time returned does not account for latency or the number of samples
played.

Change-Id: I470450934228732e34539c227365a225be74ccc8
stagefright: Fix seeking in MPEG4 container - do not merge

- seek based on user-visible timestamp
- seek to previous, next and closest exactly
- also update OggExtractor seek to same logic

Bug: 12786906
Change-Id: I2d5e1fbff6469b6f081a284be2222a4cb50aa754
stagefright: Enable 24-bit mode for DTS audio

 * FFMPEG will convert floating point samples to 24-bit PCM
   if the system is capable of it.

Change-Id: I14fb015468166e567a17bf8758474788e1c285e9
fw/av: Use project pathmap

Change-Id: I4c2753c663613094da6c2082e72d67e3af0e0ab9
av: audioflinger: Fix SRS build

Change-Id: I1c8bbf62e2a96ce7ccf303427d18a542dbbc0af2
audioflinger: Allow FAST tracks for any supported sample rate

Change-Id: I3c749c8ec5d3b372ed186fb2e706fcbd63e07625
stagefright: More high-resolution audio support

 * Clean up the "error driven" fallback code we had before and
   reconfigure components if the output bit width needs to change
   (a2dp/usb fallback).
 * Decode various formats (AC3/DTS/EAC3) which output floating point
   samples using FFMPEG, which will output 24-bit PCM for us.

Change-Id: I94f5fa59f5f737be8969df4c5ad4295c45cb8657
stagefright: Use multiaac decoder for multiaac :)

 * Fix the channel count and use the non-OMX multiaac codec.
 * This fixes a DSP crash with certain files.

Change-Id: I7fe14b7b647db8017724676f87c083301c2295a8
audio: Audio resampler support for 192Khz playback

-Current AudioResampler limits input sampling rate to be
maximum of twice of output sampling rate to downsample.
The output sampling rate being 48khz, maximum input sampling
rate that be supported is 96khz.
Support is added to use qti resampler for playback upto 192khz.

Change-Id: Ia8f24a0874ebf6e16ef7bd1f2759a14f47149875
stagefright: Resolve turf war between FFMPEG and mm-parser

 * There is overlap between the supported codecs, and the extractors
   generally do the right thing. The current code will blindly call
   into the FFMPEG specific functions when some QC codec should
   be used though, so add checks on the component name first.
 * This resolves hitting asserts when using hardware WMA/WMV codecs.
 * Also add a contraint to block the VC1 codec from try to play ancient
   WMV formats, as it will fail.

Change-Id: I3b8aafaef7ae7c0f2e058f78b043380f04a41e73
libmedia: Add flag for non-native FAST tracks.

Change-Id: Ied9004c0bdc6314541b12095ca1defd0f291eb1a
stagefright: STEVE BUYS DONUTS

 * Unbreak the Hammerhead build.

Change-Id: I139a8a15d05c3b1bf8811b50a3d0b33292b0eb63
stagefright: Scan for ".ts" files

Change-Id: Icd837ccbb188524a393de07a6c261b9f95ffb0ca
stagefright: Fix CTS failures

Change-Id: Ibe30029409667912ff150df47e3be8dd2956844b
effects: miscellaneous fixes

fixes of KW issues 8887, 8888

Change-Id: I824daa76d23456fed2c299c59f934d3e2ac78b84
libstagefright: Handle INFO_FORMAT_CHANGED for dolby clips

  -For dolby clips when device is switched from headset to
   BT multiple times, media error is observed, and playback
   stops
  -When end device is changed, s/w Dolby decoder generates
   format change event which in certain condition leads to
   media error and playback stops
  -Make sure format change error is handled in AudioPlayer
   layer

CRs-Fixed: 706801

Change-Id: I3ff3ef84b15ea5f9d3288215c1491dc30d17a413
libstagefright: extend the interface to switch rtp transport

- rtp transport can be changed by setting property "rtsp.
  transport.TCP" and udp is the first choice as
  default. But the property is the global variable and
  affects each instance's behaviour.
  Extend the interface of MyHandler to let each client make
  its own choice. If the client wants to choose tcp first,
  add the string/value "rtp.transport.TCP"/"true" in the headers
  when calling MediaPlayer.setDataSource.

Change-Id: I19b6192da36d5c00e62c9f69de446f366f10c75c
Crs-Fixed: 696569