Avoid memory leaks when handling metadata strings

Don't duplicate strings when retrieveing metadata from media
files. As any requests for metadata strings would pass through
the binder, this would cause the reference to the duplicate string
to be lost, causing a memory leak as the duplicate would not be
freed.

Change-Id: I2593733472b1bb589bc502b2c11080f581015bb5
MPEG4Writer: Write a zero-length compressor string

The first byte is the number of bytes in the string to display,
the rest is the actual string (see ISO/IEC 14496-12:2008 page 29,
compressorname in VisualSampleEntry) to display. Currently, all 31
space characters are displayed in certain players (such as Apple
QuickTime Player) instead of the plain codec name (e.g. "H.264").
By writing the string length properly, the actual content of the
remaining 31 bytes is ignored instead of displayed.

Change-Id: I7f93a8966d74a4e86abc46c3dcb70f71780d9cd6
Fixed the wrong timestamps issue about camera recording

On emulator, the camera video recording crashes randomly.
It's caused by wrong timestamp when encoding the video frame.
The element of the vector is erased before accessing it.
Therefore, when reading the timestamp from the element,
the memory of the element has been changed.

Change-Id: I9750417fbb9dc4697ccae1e78e286b23925d3764

Signed-off-by: Panfeng Chang <panfengx.chang@intel.com>
Signed-off-by: Jun Tian <jun.j.tian@intel.com>
Prevent invalid frame durations

Prevent frame duration from being negative when
exporting movie studio project

Change-Id: I459fb243650c777c2b59d1094acc88c3a944bd81
Fix overflow of rand in ARTPConnection

without this fix, (rand()*1000)/RAND_MAX is mainly 0.

Change-Id: I48ae940a7b6974b197d81732774c9dcea107bcf1
Signed-off-by: Yajun Zeng <beanz@marvell.com>
SoftVorbis: Set the right encoding in the port definition

Previously, it set the encoding type to AAC, which is just a typo.

Change-Id: I2dcae1f579e9feb0b35b6f5d334028c534275042
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: I2a2ccba78246175b2845a237679d6cebe881e83b
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
Fix for crash if no content in DESCRIBE response

If DESCRIBE response is received with status 200 but no content,
MyHandler will still set content data for session description
parsing. This will cause NULL Pointer crash.
This fix checks whether DESCRIBE response has content before
parsing session description.

Change-Id: I114ae6fd54ce804e61718f62618ca9008425a433
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: Idc395fc1d4969e33453522d6ec6526876438c526
FileSource: FILE is not closed

Add destructor to call fclose.

Change-Id: I765c56236f8df58af998439492b0b955ab57606f