Merge ""if" statements use curly braces per media style"
Use default values when MPEG4 audio config parsing fails.

MPEG4 audio packets may be multiplexed using the so called
LATM (Low Overhead Audio Transport Multiplex) scheme.
LATM parsing was recently introduced in Stagefright and it
has caused issues in cases when the LATM config element
cannot be parsed correctly. The main problem occurrs when
the AudioSpecificConfig part of the config element contains
more information than what is expected, causing the
frameLengthType parameter to get the wrong value. This fix
introduces default values of some config parameters that are
used in case config parsing fails.

Change-Id: I3cb35df76826f95ca0831dc08c2a1e7c6c2c586d
Use default values when MPEG4 audio config parsing fails.

MPEG4 audio packets may be multiplexed using the so called
LATM (Low Overhead Audio Transport Multiplex) scheme.
LATM parsing was recently introduced in Stagefright and it
has caused issues in cases when the LATM config element
cannot be parsed correctly. The main problem occurrs when
the AudioSpecificConfig part of the config element contains
more information than what is expected, causing the
frameLengthType parameter to get the wrong value. This fix
introduces default values of some config parameters that are
used in case config parsing fails.

Change-Id: I3cb35df76826f95ca0831dc08c2a1e7c6c2c586d
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: I0de6c1eeef174d2529973ff9c6a020ec3dd44c75
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: I0de6c1eeef174d2529973ff9c6a020ec3dd44c75
Handle large AVCC chunks

If enabling seq_scaling_matrix_present_flag = 1 the AVCC chunk can
be larger than the original buffer size. Changed to using ABuffer
instead.

Change-Id: Idacc14b45ea2634c5e608919f3ce567f23363135
Handle large AVCC chunks

If enabling seq_scaling_matrix_present_flag = 1 the AVCC chunk can
be larger than the original buffer size. Changed to using ABuffer
instead.

Change-Id: Idacc14b45ea2634c5e608919f3ce567f23363135
Changed parsing of trkn and disk from 8 bits to 16 bits

The MPEG4Extractor was parsing 8 bits instead of 16 bits when parsing
'trkn' and 'disk'. Also added support for 16 bytes size 'disk'.

Change-Id: I22b4de2ac800881884d5759776cb380917522a87
Changed parsing of trkn and disk from 8 bits to 16 bits

The MPEG4Extractor was parsing 8 bits instead of 16 bits when parsing
'trkn' and 'disk'. Also added support for 16 bytes size 'disk'.

Change-Id: I22b4de2ac800881884d5759776cb380917522a87
MediaCodec: Add a method for getting the component name

If the codec was chosen based on mime type, the caller does
not know what component actually was chosen. This allows
getting essential information (such as supported color formats,
for a video encoder) for this component.

Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
MediaCodec: Add a method for getting the component name

If the codec was chosen based on mime type, the caller does
not know what component actually was chosen. This allows
getting essential information (such as supported color formats,
for a video encoder) for this component.

Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
delete -> free

Strings duplicated with strdup() should be free()d, not deleted.

Change-Id: I42bb3df9625bb8d35f80b02d15364b94c36496f8
Clean up channel count and channel mask

Channel count is uint32_t.
Remove redundant mask parameter to AudioTrack::createTrack_l()
    and AudioRecord::openRecord_l().

Change-Id: I5dc2b18eb609b2c0dc3091994cbaa4628062c17f
Merge "Clean up channel count and channel mask"
fix a typo in SINC resampler that prevented tracks to be mixed

we were always erasing the current mix instead of mixing into it.

Change-Id: Ib229245f9e5a0d384f1727640a59e9f0469211a2
AudioFlinger files reorganization

Audioflinger.cpp and Audioflinger.h files must be split to
improve readability and maintainability.

This CL splits the files as follows:

AudioFlinger.cpp split into:
- AudioFlinger.cpp: implementation of IAudioflinger interface and global methods
- AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread,
DuplicatingThread, DirectOutputThread and RecordThread.
- AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack,
RecordTrack, TrackHandle and RecordHandle.
- AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle.

AudioFlinger.h is modified by inline inclusion of header files containing
the declaration of complex inner classes:
- AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread,
DirectOutputThread and RecordThread
- AFEffects.h: EffectModule, EffectChain and EffectHandle

AFThreads.h includes the follownig headers inline:
- AFTrackBase.h: TrackBase
- AFPlaybackTracks: Track, TimedTrack, OutputTrack
- AFRecordTracks: RecordTrack

Change-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c
Merge "Changed parsing of trkn and disk from 8 bits to 16 bits"
Merge "Changed parsing of trkn and disk from 8 bits to 16 bits"
Merge "Handle large AVCC chunks"
Merge "Handle large AVCC chunks"