stagefright: Don't enforce 16kHz rate for AMR-WB

This breaks android.media.cts.MediaRecorderTest#testRecordingAudioInRawFormats,
which tests specifically with 8kHz.

Change-Id: Ibfa54db4b2a82e502268be18f4ea405a41a88bfd
fw/av: fixup after 4.4.1 merge

*minor formatting issues
*redundant include
*code cleanup

Change-Id: If7fc9bbd279fe53c7c6fe9d0f56f5ed500048eb7
Signed-off-by: Jonathan Steadman <xxwhitehawk@gmail.com>
screenrecord: allow force landscape mode

Some devices' hardware encoder do not support encoding over a
specified height, which may be smaller than the device's display
height in portrait mode. Add a mode which uses landscape encoding
and rotation hint to overcome the limitation.

Change-Id: Icdd8de05d55c2aaaacbcaba4857173c78ef76a24
frameworks/av: Add audio parameter for sound card status

Add a parameter to signal sound card status to audio HAL.
This parameter is set on a change in sound card state.

Change-Id: I9c2265b6197f654f6dab90f7d0b87a3a0921a6fb
AudioFlinger: Handle sound card status change

1) Update Audio HAL with sound card status change
2) Call invalidate tracks API on all playback threads so that the
   associated tracks can handle the sound card status change as a teardown
   event

Change-Id: I9b8c2244eb80cc08935144affe529591e0728616
audio: do not allow FAST output for voice call stream type

- Some VoIP applications set AUDIO_OUTPUT_FLAG_FAST while opening
audio output which causes low latency path to be selected. Clear
the flag explictly if the stream type is STREAM_VOICE_CALL
- Add debug messages in Audio Track and Record to print
the requested audio parameters

Change-Id: I7b3d1353ab107effc3f99b99bd9f78270f63097f
libstagefright: Fix incorrect progress bar display during device switch

 -During offload to nonoffload playback switch (speakr to a2dp)
  audiotear down happens which reset current postion and duration.
 -do not reset the file duration during audio tear down and return
  the cached current position if audioplayer is not created.

Change-Id: I924d270d57aee1a9e79cea1c33bbd6bb731b201d
libstagefright: Fix timestamp corruption during offload playback

-Timestamp gets corrupted at EOS of offload playback.
-This happens because the number of samples played returned from
 HAL could be zero if playback has reached EOS and if compress
 handle is invalid / closed.
-If HAL has posted EOS  avoid the update of real time and media
 time with the timestamp from HAL.

CRs-Fixed: 570368
Change-Id: I5ea75f4eda1df0c110bce780e50e3c8ae9b4cd85
audioflinger: check for condition before waiting

AsyncCallbackThread must check for any condition that
was already been satisfied before waiting.

CRs-Fixed: 581978
Change-Id: I7a37c03cddcf7fdaa61c826d71a4d527979ce9e1
libstagefright: Delay release of wakelock

Delay release of wakelock till the last event
in the event queue of TimedEventQueue has been processed.
This ensures AP shutdown does not happen while an event
is ready but hasn't been processed yet.

CRs-Fixed: 583053
Change-Id: I597c0b9887b02b070c708401e5f3c40a0a2289d0
Revert "frameworks/av: rendering statistics for Stagefright."

This reverts commit 1a65f74eebe15e1533ebde98268a454a8b14f815.

Change-Id: I755e293705a72d90a4a855343439b625226c050b

Revert "libstagefright: adjust AV sync late margin based on property"

This reverts commit 14b0bb438a8b3291edd10fb068656e707a31cfb5.

Change-Id: Ibcc3573283282b3f52a813c789f8586965bbc088

Revert "libstagefright: post video events dynamically - calculate amount of time to delay video event after renderusing the formula: delay = (us between frames)-(us taken by event)-(lateness)"

This reverts commit 1ac2a4f83f7d14b3a4d9c4691a5d6bb62fcc5522.

Change-Id: I06b8023d45a2ea1497a87d5adf7bfa7e74dc0710
stagefright: add an extra buffer to ANW's BUfferQueue

Add an extra buffer to ensure video player has a free buffer to
dequeue rather than wait for the queued buffer to be displayed.
Enable logs to indicate number of buffers allocated.

NOTE: This is not needed for 30fps content on 60fps panel, But
making this change regardless for all framerates till root-cause
is identified in SF

Change-Id: Id1048d7a104b2a75613dda8b9cf166e59bc4bb04
libstagefright: Filewrite in seperate thread for single video track

For files with single video track, the filewrite() and OMXRead()
operations are happening in the samethread. It impacts the
recording performance.

Hence moving filewrite to seperate thread for files with single
video track.

CRs-Fixed: 574807

Change-Id: I3a9bf7869e197973a85783510254cf66b8d1d91b
stagefright: add rendering statistics

 - adds extra fps statistics
 - report via dumpsys
 - prints statistics before reset at the end of playback onto
   logcat
 - adds resume latency, from play_l to render
 - adds seek latency, from seek_l to render
 - enables using persist.debug.sf.statistics 1
 - prints all statistics when seek or resume is issued

Change-Id: I6fa34f3d0180c1b8bbad40da42bd241fb89e6866
libstagefright: print seek statistics even when paused

 - if seek is issued during paused state, SEEK_PREVIEW flag is set
   and statistics needs to be printed even if that happens.

Change-Id: Ida5040d2961bff4dfb8a53b50be01609aaac9976
CRs-Fixed: 512801
libstagefright: Fix intermittent pause during tunnel A-V playback

-Media time is used in onVideoEvent for A-V sync. In offload
 playback we only use realtime(time from DSP).
-Media time should be same as real time. If media time is not
 updated with the real time value A-V sync issues are seen.
-Update media time to real time value to avoid intermittent pause
 during playback.

CRs-Fixed: 572060
Change-Id: Ib1123b7554f3508230ca67cd20a68fa32c753057
Increase kFastTrackMultiplier from 1 to 2

Change-Id: I158f147295eebcea96e4047d7618069bc48bdd7d
stagefright: Fix "add an extra buffer to ANW's BUfferQueue"

OMAP devices, such as maguro, don't work properly with an extra buffer.
This fixes the commit 2bce3e06f60a8d60c81261b0438d0cc6f2bbe7d1.

Change-Id: Id78442831e95b6021ea8b6d3648678db094f4565
frameworks/av: Enable subsystem re-start for LPA/Tunnel

-Audio Daemon in Audio HAL intimates AudioFlinger
 of ADSP status (online/offline) using set_paramaters.
-AudioFlinger send set_parameters to its clients
 which is DirectTrack used for LPA/Tunnel playback.
-In case of ADSP crash during LPA/Tunnel playback,
 clean up of DirectTrack is initiated.

Change-Id: I87f720f305765e00e12032eed3e018aeff952390
(cherry picked from commit 02861e0f092c46640576bb8c700418ed82c266c3)
(cherry picked from commit 5abe97aa9e103420813b87e7abb2b676ffe8d097)
(cherry picked from commit 9a27f1e6c449585095e518f0d2f44e621ef18f52)
Revert extra buffer hack.

 * Breaks too many things, and this is an awful hack anyway.

Revert "stagefright: Fix "add an extra buffer to ANW's BUfferQueue""

This reverts commit dbb2bb90acd47a53d84809b1aa150bac6093f752.

Revert "stagefright: add an extra buffer to ANW's BUfferQueue"

This reverts commit 2bce3e06f60a8d60c81261b0438d0cc6f2bbe7d1.