Fixing aliasing violations, C++ 11, and gcc 4.7 changes from linaro.

av: Fix duplicate definition of size_t n

Needed to make it build with gcc 4.7+

Change-Id: I78db38b094d9ffc7ee9d410d8d3f642e619eb008
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

stagefright: Fix triple redefinition of i

Needed to fix build with gcc 4.7+

Change-Id: I0767a5a4634f808f779b577cffd74e81dd5439fb
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

frameworks/media: Fix aliasing violations

Change-Id: I0c3ad4d935abe6cf6df222f7d70381d868f15fe8
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

av: Fix aliasing violations in AudioFlinger

Change-Id: Iec37ad0c2e30f34d72f8bf63c6c1aeceba0e3d50
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

libmediaplayerservice: Fix aliasing violation

Change-Id: I70c674e7f563cf76abd078b662bb18598081f29d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

downmix: Fix aliasing violation

Change-Id: I1907da54e9ec40c9afe56c488a974d5286b787e4
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

EffectVisualizer: Fix aliasing violations

Change-Id: I35532464df41a64ed920c34ad4bc1054cf6324b2
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

frameworks/av: Fix build in ISO C++ 11 mode

Fix build in ISO C++ 11 mode: constructs that are being interpreted as
new string literals and const vs. constexpr

Change-Id: Ibdf4867da37b819b1a499180edcf7ad480b6b9de
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

av: More ISO C++ 11 fixes

Change-Id: I84bfab66d561cb0ded6e312b8cfe02e5fe2a182f
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

av: Fix build in ISO C++11 mode

Change-Id: I461d8ce5b24afedee245a6441b600df286c76b63
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

Conflicts:

	media/libmediaplayerservice/MediaPlayerService.cpp

Signed-off-by: Stevespear426 <stephen.k.spear@gmail.com>
frameworks/av : Playing AAC and MP3 clips using LPA.

-AAC and MP3 clips are not playing.
-AAC and MP3 are not using LPA path.
-Enable LPA decoder path and implement LPAPlayer class.

Change-Id: I76438319fc72c4898fad5910f8de874f89287687
Set net_log to NULL unless debugging.

This way methods can exit early instead of logging by testing if the net_log is NULL.

Change-Id: I49e91460967ba3edad7d7b894a90df0589e8ccb2
Implement packet loss calculations in Receiver Reports

In order to support servers that have implemented the
dynamic bandwidth adaptation feature are these
fields added to the receiver report:
      -Fraction
      -Cumulative number of packet loss

The calculation is based on RFC 3550, section A.3.

Change-Id: I9500ee20b2aa393c495bfc79289b26abd1267289
Add .mpga to acceptable file name extensions list.

The *.mpga files are playable, but are not correctly scanned.
This is because they are prevented from being scanned in
StagefrightMediaScanner.cpp.
What this fix does is to add the extension to the list of valid
file extensions so that the scanner handles the filetype properly.
We have previously added the .mpga extension to the framework to
make it playable, but not added it so that the scanner scans it.

Change-Id: I02a44d770adb80d38e8bed77d0d76efa1b28a861
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
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
AudioTrack::dump null mCblk check test

This fix is protecting AudioTrack::dump from SIGSEGEV
when calling dumpsys shell command.

Change-Id: I30d136e195a12d6fdad41e14f557b0ad9e59b8a2
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
Fix of uninitialized mIsDrm variable.

The mIsDrm is a bool that isn't initialized.
This causes it to be true in most default cases.

Change-Id: I41b534514bf6a3ca88a9f0994b814d55fcd7453b
Crash in android::MyHandler::parsePlayResponse

This fix handles problems with several asynchronous calls
within streaming. This case is when the phone has sent a
request to the server and while the response is being sent
back by the server the request is aborted by the user.
The fix is an if case that checks if we have aborted while
waiting for a response from the server. If we have aborted
we should ignore the late response instead of continuing.

Change-Id: I1264bb992f6abcaee1f10a89479e08b54a95e3c2
Unsolicited server responses cause RTSP streaming to crash

If the set up of the RTSP stream contains an incorrect or otherwise
problematic URL, some servers will send an unsolicited server response
that contains a negative number in the sequence number (CSeq) field.

This negative value is not returned from the function findPendingRequest(),
so the check in notifyResponseListener() will not work.  Instead there will
be a crash when 0 is used as the index to find a matching request/response
pair that doesn’t exist.

The fix is to return the received sequence number also when it is an
unsolicited server-client message.

Change-Id: Iedaba8a63dece7b43bce007069baefbfd10970b8
Bug fix for the MediaPlayer::prepare() api.

For an MP3 source, within the prepare command, ID3 tags are checked in search of
gapless playback info. This causes problems for streamed sources. If ID3v2 tags
aren't present, then a check is done for ID3v1 tags. This results in a read
command that asks the cache to jump to the end of the file, and subsequently
make an extra http call to request those bytes. For a streamed source, this
causes the file to not be downloaded automatically when MediaPlayer::prepare()
is called, and causes stuttering and extra buffering time to be needed when
start() is finally called.
The solution is to ignore the ID3v1 tags as the gapless info would never exist
there, and only check for ID3v2 tags.

Change-Id: I7d1b94cffbfe7c38ca094834dedbc92a58855e20
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: I67a5340fdd807c6ab3a3da5eecb09b5b9d5f4666
Uninitialized pointer can cause crash.

mpAudioTrack should be initialized in any case.
If getOutputSamplingRate returns ERROR, this won't be initialized.
As a result, deleting this field in dtor can cause crash.

Change-Id: I950d353361b19635302339dac35752a2514d2d80
Signed-off-by: You Kim <you.kim72@gmail.com>
Long mp3 metadata displays as corrupted file after transfer

Cut the metadata to 1 Byte and return in function
getObjectPropertyList in order to show it properly on a PC.

Change-Id: Iefacf9fa86c20ece2572e6d95d35877a94066fe7
Fix hanging when seeking near end in NuPlayer

If the decoder has already reached EOS when a seek is performed, the
decoder will hang in NuPlayer.

This fix makes sure to restart the decoder in the above case, which
is needed in order to resume playback.

Change-Id: Ia7bce331a5bf787f75e4071fe1308d8c0b392c2c