Avoid invalid memory access when using extractMetadata()

BpMediaMetadataRetriever::extractMetadata() returns a string
which is returned by readCString() function of the reply parcel object.
However, the parcel object is destroyed at the end of the
extractMetadata() function, and so the returned pointer is invalid.
This patch fixes this problem by storing the metadata string value.

Change-Id: I83fdd9c81f8cae7fcc9fd3315eb1fb943d68a5d9
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
Allow multichannel FLAC files

FLACExtractor had artificial limits which did not allow multichannel
audio, 88.2 or 96 kHz samplerate, these were removed since it is up
to the audio subsystem to handle.

Change-Id: I700fab5509d3f15ec99e4acc194b061a88ae3257
Fix bug in WAVExtractor for 24-bit per sample wav

support stereo/multichannel 24-bit format
kMaxFrameSize is fixed to 32768. When converting 24-bit to 16-bit,
number of samlpes is maxBytesToRead /3.
In this case, if the maxBytesToRead is not multiple of 3,
pcm data is messed when converting.

Bug:7630939
Change-Id: If3d339a86fa6025d489ab44e771378bc0c39083e
Fix bad checks that causes crash when streaming H.263 content.

Remove checks that causes crash for rtsp streamed h.263 content
with certain values in the RTP payload header:
Remove zero check for the five reserved bits in the payload header.
According to RFC 4629 these bits MUST be ignored by receivers.
Remove zero-check for the VRC (Video Redundancy Coding) bit,
skip packet instead.
Remove zero-check for the PLEN bits (extra picture header),
skip packet instead.
Remove zero-check for the PEBIT bits (extra picture header),
skip packet instead.
Remove corresponding zero check for the four resreved bits in the
AMR payload header. According to RFC 4867 these bits MUST be
ignored by receivers.

Change-Id: Ie326ff4943313b4ce3dd758582f327ca54829b58
Initialize and copy mRotationAngle in VideoFrame

When thumbnails were generated they could be generated at random
angles as the mRotationAngle variable was not initialized to any
value. This variable would have to be explicitly overwritten to not
cause random rotation. Changed the implementation to initialize the
value to 0 (no rotation). mRotationAngle was also missing in the
copy constructor.

Change-Id: If994fc4230bd54b1c62e19accc81572d1c414bd6
SoftAMR: Signal the right frame format

The correct enum for the format used is OMX_AUDIO_AMRFrameFormatFSF,
which is the same as is used in amrnb/enc/SoftAMRNBEncoder.cpp,
amrwbenc/SoftAMRWBEncoder.cpp and in OMXCodec and ACodec.

The OMX_AUDIO_AMRFrameFormatConformance enum refers to an odd file
format only used for conformance tests, not used in the wild.

Change-Id: I3f6524ff4834e2cd50669bab0d2b995e9086cd3e
Memory leak solved in MPEG4Extractor::parseChunk for cover art

Repeated leaks detected in mediaserver context. Most chunks small but
some bigger. Adding up it was not uncommon to see 200Mb footprint.
libc memdebug allocation call stack showed the root cause in "covr"
parsing - that explains why content often was empty but sometimes big.

Change-Id: I4396d6d8a8faf0b470909434e847fd5620bee22f