stagefright: Fix metadata/message conversion issues

 * Remove duplication of code between ExtendedCodec and FFMPEGSoftCodec,
   just call into ExtendedCodec and properly ifdef QCOM-only parts.
 * Fix CSD not being converted when AV_ENHANCEMENTS wasn't set- this
   was breaking the software video codecs on Hammerhead.

Change-Id: I9cd4316ce19b15baabf12b78b992498ce48e2697
libstagefright: Fix QCOM_BSP_LEGACY cflags

Change-Id: I432541f4923a42b1fafcff8fcd886c81c94ba3be
Fix compile error after I9cd4316ce19b15baabf12b78b992498ce48e2697

frameworks/av/media/libstagefright/ExtendedCodec.cpp:1187:1: error:
expected '}' at end of input

Change-Id: I7d75e69160f794b177f4235f4a6bb5a188dc0d08
libstagefright: back off exynos4 hacks

Change-Id: I953f502171bc98854b5d59165057c57b3c65cdaa
libstagefright: align YV12 for software codecs on exynos4

YV12 chroma stide should be aligned to 16 according to the
android framework. But, GSC & Mali couldn't accept a seperate
stride for U & V components. They just use Y_stride/2 as a
UV Stride.

Change-Id: Ibeeb3439ee10a4666420e5fa34ff0a6d6ea7c003
libstagefright: fix YV12 stride for software codecs on exynos4

Change-Id: I3612899d2bffa474eb6447788858911757a7f45d
omx: exynos4: bring inline with jellybean

Change-Id: Ic275fd30a721f8161dcc44c2706b86ab5ea213ba
Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions

An overloaded function should take the same parameters as the function
it is overloading.

Change-Id: I8327fe1b363917515cf76c8f76bdbc05b2c0fbf0
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
MPEG4Writer: fix mMoovBoxBuffer memory leak

In some cirumstances the writing of the moov box
leaks memory since mMoovBoxBuffer is not freed.

Change-Id: I441360f6c7e84e31fea06067eca98b66b86b54bc
Prevent ANR when AudioTrack is paused or re-routed

If ClientProxy was interrupted by AudioTrack::pause() just before futex syscall() in obtainBuffer() was called,
It will not call releaseBuffer to wake up AudioTrackThread.
It puts the AudioTrackThread to sleep and then a deadlock occurs.

In this case, CBLK_INTERRUPT flags can't prevent a deadlock,
so this patch set mFutex to FUTEX_WAKE during interrupt() to avoid deadlock.

A similar problem could occur due to re-route or recovery after mediaserver death.

Bug: 18641665
Change-Id: I66fcae43af9a91eb55f6cdb52c644ee6c0999772
Fix AAC recording issue

Fix uninitialized variable that caused ADTS recording to incorrectly
specify LTP object in the header.

Bug: 17895547
Change-Id: I75650f4963f4f371cd191bc635e32c9ab17fa8c9
Truncate file before recording into it.

Recording into an existing file of non-zero length could leave old
data in the file after the recording ends. Best case that wastes
space, worst case it results in a file that's considered corrupt
on playback.

Change-Id: I2c77a107603b2b36790958360ff0856c2b28d677