screenrecord: Raise time limit to 30 minutes

Change-Id: I4e3466e7cf83b80dea48d4b2ca24ad9ead96f321
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
screenrecord: Add audio support

Adds audio recording to the screenrecord system. Note that
while recording, the audio is muted from the device output,
and that the audio volume is controlled separately (so make
sure to turn up your volume if you hear nothing).
Audio from the microphone can also be recorded by adding
--microphone to the command line.

Change-Id: I97dfcaf3d93b786c5466e1f4215549e3d015bcf0
fix screenrecord abort issues

Change-Id: I95ae71e49506d3dfa7df691f0a9b6464ff691ff1
screenrecord: Enable SUBMIX_IN as well and cleanup on exit

While on Nexus 5/Nexus 7 (AOSP QCOM audio), trying to turn on
SUBMIX_IN fails and is not needed, it is required on Find 5
and N1 (CAF QCOM audio), or otherwise SUBMIX_OUT won't turn
on.
We also now release the audio routing as it wouldn't revive
the audio speakers otherwise.

Change-Id: I0f80a232304733e0b0a834b188b8cfa5b88915f3
Screenrecord: allow force mic for audio

Some older devices audio blobs do not support audio submix,
allow those devices to force using the mic for audio while
screenrecording.

Change-Id: Ief3a14e00d0bf32cc131742fb82556621f54be36
audio: Increase kFastTrackMultiplier from 1 to 2

- Fast Track implementation is modified to use single
  buffer in kitkat. This is causing audio breaks when
  long DTMF tones are played
- Fix is to use double buffering to avoid audio breaks

Change-Id: Idc811ee7fe0d7f49bfa95ad34bc6e88bd04b734e
CRs-Fixed: 561567