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
Merge tag 'android-4.4.1_r1' into HEAD

Android 4.4.1 Release 1

Conflicts:
	media/libmediaplayerservice/StagefrightRecorder.cpp
	media/libstagefright/AudioSource.cpp
	media/libstagefright/AwesomePlayer.cpp
	media/libstagefright/DataSource.cpp
	media/libstagefright/OMXCodec.cpp
	services/audioflinger/RecordTracks.h
	services/audioflinger/Threads.cpp
	services/audioflinger/Threads.h
	services/audioflinger/Tracks.cpp

Change-Id: Ie17f9030275faae7a0f907b8ccc3195a7657742d
Merge "screenrecord: allow force landscape mode" into cm-11.0
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
Merge remote-tracking branch 'cm/cm-11.0' into kk-4.4
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
Merge remote-tracking branch 'cm/cm-11.0' into kk-4.4
Merge remote-tracking branch 'cm/cm-11.0' into kk-4.4
Merge commit "screenrecord: allow force landscape mode"  into kk-4.4