History log of /frameworks/base/media/libstagefright/AwesomePlayer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f0f1ceeb517ff226532a407da6d55602f195e5b5 14-Apr-2011 Andreas Huber <andih@google.com> DO NOT MERGE: Make sure we restart the prefetcher immediately when trying to satisfy a read.

Change-Id: I27c2b5d20ae577e71936d32522f70f6ba08cc247
related-to-bug: 4286618
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
a2ab9aace3f7c2b283e6244a510a6378ce4650c3 20-Jan-2011 Andreas Huber <andih@google.com> DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.

The latter is an operation that otherwise could block on the datasource
for a significant amount of time. During that time we'd be unable to
abort the preparation phase without this prefill.

Change-Id: I3bc889b264f599bfd5c2bbdf48b88ccb55d86172
related-to-bug: 3362836
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
da1b16ad41f7a4abf2531f86e1ba6053b588dae8 09-Dec-2010 James Dong <jdong@google.com> When INFO_FORMAT_CHANGED event comes in before the renderer was initialized, go back to read from source again

bug - 3264094

Change-Id: I291a9b09b335d0eb4acf91f992e59fc44bc57d01
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
0fb258d6c360c1fca42c594527792314e358ce93 30-Oct-2010 Andreas Huber <andih@google.com> After seeking display the first new video frame right away without concern for A/V sync. This looks much more responsive to the user.

Change-Id: Ifb1f8c91e95a5cafe30ae1035973316c210b98a5
related-to-bug: 3152363
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
122a9ccbcdcdaf00a349813555d28d86709a6ed9 12-Nov-2010 Andreas Huber <andih@google.com> DO NOT MERGE - Instead of asserting that ISurface successfully registered buffers, report an error and propagate it up to the java client.

Change-Id: Ibb14e5aff20920da4917d85de38ba3a8ee71d0bd
related-to-bug: 3188835
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
31dc911aee2b50752c0eb7785176075cdaed139c 04-Nov-2010 Andreas Huber <andih@google.com> Support post-decode video rotation.

Change-Id: Ia371316e73a57e44610de86adce3eaa560afbf84
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4d450a86572e549f845d335ab98eac0fd13d2c85 19-Oct-2010 Andreas Huber <andih@google.com> If we encounter video stream EOS while seeking we may still need to seek audio.

Change-Id: Ie260942247b6810ca94e86328a3725d75b12181d
related-to-bug: 3108724
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4deb3eb534fea073c1b4afb032f4f1c643abb8e1 13-Oct-2010 Andreas Huber <andih@google.com> Attempt to derive the avg. bitrate of the entire stream from metadata.

related-to-bug: 3093224
Change-Id: I4726b023373e04468cc12fd64f7fe6ee923add95
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
54d09724e3ea2af4e08dff47d7ade92a95784127 12-Oct-2010 Andreas Huber <andih@google.com> HTTP Live content that are tagged as complete are now seekable.

Change-Id: I9d0d2f009f883e5baf3e9de8c5c0aa05760e4bde
related-to-bug: 2368598
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
0c46b69f612da61ed39b32823d2d6baf2e8215e9 09-Oct-2010 Andreas Huber <andih@google.com> RTSP seeking is now asynchronous, MediaPlayer is not notified that the seek is complete until it actually is. Ignore seek requests on live streams.

Change-Id: Ie61230cd60dd6c682baf72529100369ad6291189
related-to-bug: 3073955
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
10b9b3f3fe47cea0833fe2c7d5ed08a1185f9006 08-Oct-2010 Andreas Huber <andih@google.com> Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.

Change-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2
related-to-bug: 3073955
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4c19bf9833f59f58a9aaea566f0eb98a7fb7e2ea 08-Sep-2010 Andreas Huber <andih@google.com> Work to support switching transport streams mid-stream and signalling discontinuities to the decoder.

Change-Id: I7150e5e7342e1117c524856b204aadcb763e06ed
related-to-bug: 2368598
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
1e1941638398e5e3e1d7b9ad88e66f574576bcfa 07-Oct-2010 Andreas Huber <andih@google.com> On this particular device the hardware video decoder spits out buffers that don't actually contain our video data, so we cannot use them to restore the video frame after suspend/resume.

Change-Id: I1b8fe68c1766299844fe84ebbff49cb8b3e4cc7c
related-to-bug: 3070094
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c743f4506f88a14189449c719a6ec1cfe5f0f812 05-Oct-2010 Andreas Huber <andih@google.com> Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.

Change-Id: Id574a0203efcb5e565f1b0fe77869fc33b9a9d56
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
05f6787b887f0e731e7372ede0fb955e8939f703 04-Oct-2010 Andreas Huber <andih@google.com> Make sure to finish the preparation phase even EOS occurs before we consider the cache to be completely filled up.

Change-Id: I29143e357fb6ea7b860636100e010f2ea7436798
related-to-bug: 3037389
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
1913c1aeabc1ff8d288c2be269fc50f010ad5f0f 04-Oct-2010 Andreas Huber <andih@google.com> Don't retrieve metadata unless necessary for ogg-vorbis ringtone auto-looping.

Change-Id: Iaf5880bb3376f9cbf22aefe198878eaf6f3f08c7
related-to-bug: 3037389
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
21d28a2a13b3a587705908f446a35dd8660172f3 01-Oct-2010 Andreas Huber <andih@google.com> Remove development-only code.

Change-Id: Ic2ca0efb631eb779ca157fb01b02aa19a1222c06
related-to-bug: 2368598
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
b72c7e36a2d9f51ff8a5023dc1de0986ee47e279 01-Oct-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 46744c7697f29aec71aed8de3c95ce035c284d97
Author: Andreas Huber <andih@google.com>
Date: Thu Sep 30 16:44:57 2010 -0700

better separation of access units

Change-Id: I5a9e2138aed341f0bcf22cfe368a15ca5ea5a73c

commit d34952ac0feb1ae722ff65824d7353335502219b
Author: Andreas Huber <andih@google.com>
Date: Thu Sep 30 15:35:01 2010 -0700

Support for ES packets that do not start on PES packet boundaries.

Change-Id: I2cf012833948eddfb20b16a1901206cf22ce71e4
related-to-bug: 2368598

Change-Id: Ib9329bd6bb7149b5a6e2483788a96b1b158952fc
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
2b359ed5b5ba4775609c13408b2cf1336c2cc45b 28-Sep-2010 Andreas Huber <andih@google.com> Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.

Change-Id: I43875b6adaf96d4e982ef3dfc3d6c8f7034ac51d
related-to-bug: 3036592
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
9fee0b2a02daa6fcf286ed930e45400dd3ba8dba 03-Sep-2010 Andreas Huber <andih@google.com> Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.

Change-Id: Ifb564c6cdf6137eac14869f9ca7d471f05a5556a
related-to-bug: 2974691
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
87ab9cdd0fde6bfb1205805c6a13423aafadeaaa 03-Sep-2010 Andreas Huber <andih@google.com> Properly buffer a certain amount of data on streaming sources before finishing prepare().

Change-Id: I39bf3c6dafcbe003b51dea4795742dcd8548f207
related-to-bug: 2875110
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4d8f66bce32fbc8700b4ae5b2f6673a9cf1d20ad 02-Sep-2010 Andreas Huber <andih@google.com> Better support for buffered streaming of rtsp content, if buffer drops below a certain threshold we will temporarily pause playback until we have sufficient data.

Change-Id: Ice8564e902e48c89c9c00f6651c5504b3c41fcad
related-to-bug: 2556656
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4dcc6a10205ec333922be6351cf328871924f239 01-Sep-2010 Andreas Huber <andih@google.com> Properly extract all raw_data_blocks from an ADSP mpeg4 audio buffer.

Change-Id: I15e21eae50beb6057024ea42a7e9bf3b8d8a0603
related-to-bug: 2368598
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c4e0b70a21fadb47d70955c71fc31ce1473da925 28-Aug-2010 Andreas Huber <andih@google.com> ALoopers can now be named (useful to distinguish threads).

Change-Id: Ieabaddb2e3a9e3a7a5bc36e55cd0721b60dbd50e
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
eeb97d91b97f1fc0b26815f098515e9c06d219b8 27-Aug-2010 Andreas Huber <andih@google.com> Better support for rtsp (normal play-)time display. Better seek support, timeout if no packets arrive for too long.

Change-Id: Id491541a6ae501604cda815f8e961a3bfe26db7d
related-to-bug: 2556656
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c23296ef2d168f29bcfc3c93d33f78e1c393177a 25-Aug-2010 Andreas Huber <andih@google.com> Ensure that buffering updates eventually hit 100% after we download everything.

Change-Id: I43bb85b1128fa9c1bc8632970d7101006393bcc8
related-to-bug: 2844095
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
e0dd7d396051942ccce0429d7a1fe968d63ac3f7 24-Aug-2010 Andreas Huber <andih@google.com> A first shot at proper support for seeking of rtsp streams.

Change-Id: I9604f2d09feedc0074c0e715be58e719d4483760
related-to-bug: 2556656
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
8741dfacf2ed0520e06b93af5109fa3b6042e4f6 13-Aug-2010 Mike Dodd <mdodd@google.com> Support getting codec, width, and height in URL for gtalk playback.

Format is rtsp://gtalk/codec/width/height

For example:
rtsp://gtalk/H263-1998/320/200

Change-Id: If7c73fea1e1d0de89b22a8f0d12acba1c862d6fe
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
6fa131105d632b6e6a0110b9db32949964470cad 10-Aug-2010 Andreas Huber <andih@google.com> Remove some obsolete code.

Change-Id: Ic4d21afe3721173d48db44b8ee4f836deee017ad
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
f88f84414ae7baead03497f1d650ad8ea2f87688 10-Aug-2010 Andreas Huber <andih@google.com> We're now going to ignore timestamps completely in gtalk video conferencing, playing video as soon as it comes in. We also make up fake timestamps in the rtp code, ignoring rtcp SR information to enable early startup.

Change-Id: Idc3df74b42000f7a6aa3eae090718dc9d9c4186f
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
3eaa3006a8230bd607375bedd79b2e328b0fc6b7 05-Aug-2010 Andreas Huber <andih@google.com> Better support for fake timestamps in RTP, H.263 video now also requests FIR.

Change-Id: I2385461887197fe4062d329086e0204f6d6620fc
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
426b650e1bf18b6fd0df67af323318a9611053f5 04-Aug-2010 Andreas Huber <andih@google.com> Specification of codec specific data as part of the session description is now optional.

Change-Id: Ie1953909e1d241381add3cc82a7a1f7d7d1540f2
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
57648e4eec7dd2593af467877bc7cce4aa654759 04-Aug-2010 Andreas Huber <andih@google.com> Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.

Change-Id: I95b8dd487061add9bade15749e563b01cd99d9a6
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
6624c9fd0bc5e3858a22a04c05b5059445c1c367 21-Jul-2010 Andreas Huber <andih@google.com> Support finer seek control on MediaSources.

related-to-bug: 2858448

Change-Id: Ifb4b13b990fd5889113e47e2c62249ac43391fa1
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
971305d4af1c4058596c5a3feac301585682d15c 07-Jul-2010 Andreas Huber <andih@google.com> Only send the playback complete notification if a) an error occurred on any track or b) all tracks have finished playing. The previous behaviour was to send the notification as soon as the first track finished playing.

Change-Id: Icac8104d14f18b719aa0b8f1ab3215f24003b152
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
3a53dc5ad9c2fa808b87195cfde9f3a065d6fa5b 11-Jun-2010 Andreas Huber <andih@google.com> Restore feature parity with the old HTTPDataSource as far as support for extra headers (cookies?) and socket-timeout are concerned.

Change-Id: I506dc501faec60e974bf4968d8ba661df7a49aa8
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4d61f602bf67fe61256c23f090d6119992ad5160 10-Jun-2010 Andreas Huber <andih@google.com> Switch stagefright's approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages.

Change-Id: If8185ba329ce8b6663b1ad39a4efb0ad3be81df2
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
7a747b8e0dadf909ea4ac0b67fd88fc14b4eb3f8 08-Jun-2010 Andreas Huber <andih@google.com> Initial checkin of preliminary rtsp support for stagefright.

Change-Id: I0722aa888098c0c1361c97a4c1b123d910afc207
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
202348e0d4aa07e81fc5b2fb2fd6340131d752ce 07-Jun-2010 Andreas Huber <andih@google.com> Initial checkin of preliminary support for "http live" streaming in stagefright.

Change-Id: I20399f63d63af86a3ba22641c0e43385a108fb3f
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
1919e5af3d8eb8bcf08e50efae2e79eaf065cf6b 20-May-2010 Andreas Huber <andih@google.com> Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.

Change-Id: I5cba02ee85a41e43c2623053de40f26e2cf2efe4
related-to-bug: 2699505
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
3c78a1b58957e31d2991fb6a609abecbb1987b3b 13-May-2010 Andreas Huber <andih@google.com> Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.

Change-Id: Ie084ed4df5a5d286abd36d9149c2138f8e7ed08a
related-to-bug: 2682221
QA-impact: none
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
62f7ffe106a7126ef31b199552c5cfc6599bc3d1 06-May-2010 Andreas Huber <andih@google.com> Disable vorbis seek when streaming from localhost.

Change-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f
related-to-bug: 2654400
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
b19da8e187db1cf223463809148b7cb2d9e9751a 13-Apr-2010 Gloria Wang <gwang@google.com> Fix for 2581725. Keep the last frame after resume(), and delete it
in the next suspend() or reuse it if no new frame is available.

Change-Id: I84286030eaae9061077d6ccb485b7dd53ef05341
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
d0332ad8d212d87fbf909fc780e6378b4d2c20c1 13-Apr-2010 Andreas Huber <andih@google.com> Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don't have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.

Change-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af
related-to-bug: 2587341
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
040301cad17e447d760e7b7e54b79c8c294415ea 12-Apr-2010 Andreas Huber <andih@google.com> Start sending out buffering updates earlier (after preparation has completed) instead of only after playback has started.

Change-Id: Ieaa90cc9b54bd56963aa5f4daced2ba243801acf
related-to-bug: 2585913
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
a51250bdc753c02b0cae1dd83750ae6e2c1036c7 08-Apr-2010 Andreas Huber <andih@google.com> Increase the size of the pages used in CachingDataSource (total amount of memory used remains the same) to compensate for reduced locality of audio/video data requests. Also fixes a mistaken trailing "\r\n" in the range header and better error handling on http connection.

Change-Id: Ic9a6ef204362bc9afdc61e081c76bc62e5ef92ad
related-to-bug: 2580785
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
ddb709c45e6b1a2127db7f34f6a4f1c09402d76b 07-Apr-2010 Andreas Huber <andih@google.com> Report the requested seek time while seek is in progress.

Change-Id: I862bfb801701f9ce54dede51c492e4eb37591894
related-to-bug: 2576102
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
8e2b941e7bc44dbe392aa220d28c2182aa023035 31-Mar-2010 Andreas Huber <andih@google.com> Properly send a MEDIA_SEEK_COMPLETE notification for a seek request while paused (legacy behaviour).

Change-Id: I64da5eb97c75b269b4668b3628ed0f05f2e36e51
related-to-bug: 2557482
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
252573cb821259e883843630e6d69317cfb76850 26-Mar-2010 Andreas Huber <andih@google.com> Finer-grained locking in AwesomePlayer, position and duration are now protected by a separate mutex that's only held for brief moments of time.

Change-Id: I989baf5a0ea8923985c560c2ec274abda0780242
related-to-bug: 2546577
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
f71daba4cd68882442c043b636c754acf8fd942f 24-Mar-2010 Andreas Huber <andih@google.com> Enable early termination of the prefetcher's preparation phase.

Change-Id: I929ac9b0fd0b6ebd98c1bc56be18ac8f8378d48c
related-to-bug: 2537407
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
9b732dec07b506acd4a78c3377c4c003c4b4d857 23-Mar-2010 Andreas Huber <andih@google.com> Clear the local prefetcher strong reference before signalling that prepare() was cancelled early in order to avoid a race condition that occasionally triggered an assertion from the main thread.

Change-Id: I0db198fe5fd0fbe9a6c90a8e5924a2df05432c4c
related-to-bug: 2538486
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
1fbf63abf41ca1fb9ae2c5d82088e74475279414 16-Mar-2010 Andreas Huber <andih@google.com> "isPlaying" should never block, acquiring the mutex here is unnecessary, rather than investing in a separate mutex guarding just "mFlags" we accept returning "true" from isPlaying one too many times.

Change-Id: I597577cbb3ad1afd3cb3ca91979ef24cc1a44658
related-to-bug: 2518319
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
edbb4d8f398dfbce7b766d4bd207685dab582847 12-Mar-2010 Andreas Huber <andih@google.com> HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.

Change-Id: I6d73defe6d276693853a469db267bb2668d07af5
related-to-bugs: 2475845,2414536
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
dc9927d4641066fc966c9c69856167b8410abf90 09-Mar-2010 Andreas Huber <andih@google.com> The audio track was accidentally not participating in the prefetch since it wasn't started at the time prepare() was called. Also, properly report the cached duration even near the end when the source has no more data to fetch.

Change-Id: I66a92fec24c9bfb25f1c186f1c877127bae2b4f9
related-to-bug: 2444425
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
55864df7b64d14a79fe3a193f3bb0005f64b9452 08-Mar-2010 Andreas Huber <andih@google.com> Increase the amount of data buffered at preparation time. Make sure to start preparing after the codecs have been started, otherwise no buffering will happen.

Change-Id: I2c54db085cc76f4069ab381177e94e1b81005b02
related-to-bug: 2474091
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
3ac94efc21c9dbcdf83ab2c630ab35dce229c9dc 05-Mar-2010 Andreas Huber <andih@google.com> Instead of allocating the decoder instances in response to a call to setDataSource, postpone allocation to the preparation phase where it belongs.

related-to-bug: 2492205
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
d7d22eba3c1bb7212ccc566fedb16dbee44f51a2 23-Feb-2010 Andreas Huber <andih@google.com> Propagate errors all the way through the MediaSources and send either MEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR depending on the final reason for running out of buffers to play back.

related-to-bug: 2463749
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
406a18b5b3d53466a3e03b66413ff3a50243a6a8 19-Feb-2010 Andreas Huber <andih@google.com> Implement legacy behaviour for MediaPlayer's behaviour of starting from the start of the media on a start() call instead of resuming at the current position, if previously reached the end of the stream. Also properly report number of frames played to audio flinger. Finally, delay spawing the queue thread until actually used.

related-to-bug: 2453220
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c0178f10972304027c990a930d6c81060e772abe 18-Feb-2010 Andreas Huber <andih@google.com> We are cancelling this event during reset, but the event may have already been dispatched at the time, blocking on the mutex. While it's blocking, reset() cancels the event, we're then unblocked and bad things(tm) happen.

related-to-bug: 2451174
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
7b73cfcc7530114ac81556bb9c58aff4181da92d 12-Feb-2010 Andreas Huber <andih@google.com> Preserve a preview frame to be restored after resuming the playback session.

related-to-bug: 2231576
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
ba7ec917ea91364598de1ba7a29910cec08fd5de 12-Feb-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 427e927298449826bb5b98327b0c05957aa051e6
Author: Andreas Huber <andih@google.com>
Date: Fri Feb 12 10:39:07 2010 -0800

Fixing a race condition in AwesomePlayer and support for suspend/resume.

commit 96201a04b6657b6bd69ec6100f4de66aebcaa0b4
Author: Andreas Huber <andih@google.com>
Date: Fri Feb 12 10:36:15 2010 -0800

Protect MPEG4Source's sanity by properly locking.

related-to-bug: 2231576
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
000479f9e325b4e426a67033abd92d47da412725 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4ab5a6fe78fafff9b409a6008f3ac51fecc5281d 11-Feb-2010 Andreas Huber <andih@google.com> Support for rendering through an overlay on the droid even if a software renderer is active.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
ffdf4782d43df5fc59808de60c346f1edd695bd9 09-Feb-2010 Andreas Huber <andih@google.com> Defer actual work of setDataSource given a URI to the prepare phase in order to not block the calling thread for any significant amount of time...

related-to-bug: 2431117
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
4a9375ef2a06fc36ec308835ef9e7e4eea2ba69f 09-Feb-2010 Andreas Huber <andih@google.com> A little less verbosity in stagefright and special treatment for the error state while shutting down.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
6be780ebd4d5733857e539b5dd30b532cd0fad80 08-Feb-2010 Andreas Huber <andih@google.com> Properly implement asynchronous preparation of media playback.

related-to-bug: 2413002
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
7085b684c6e1dcd87686fd32d72498ffabd22677 04-Feb-2010 Andreas Huber <andih@google.com> Defer creating the video renderer until we see the first video frame.

This avoids having to instantiate the renderer twice in case the video decoder sends a format change before the first frame.

related-to-bug: 2375037
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
70d10c0156f5d2d1c639d0ebe62de8ec950d4306 03-Feb-2010 Andreas Huber <andih@google.com> Fix a deadlock caused by the AudioPlayer notifying the observer that the stream had ended at the same time the observer was shutting down the AudioPlayer.

related-to-bug: 2414536
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
62eac008504fefd05fa53bc74f7e001bf0a51975 29-Jan-2010 Andreas Huber <andih@google.com> Properly forward errors returned by AudioTrack up to the player.

related-to-bug: 2300197
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
98b48dee325bd22ae73029cd6a42047036ed5ab1 29-Jan-2010 Andreas Huber <andih@google.com> Make sure the OMX component is synchronously shutdown before we try to instantiate another one. Also properly cleanup the software AVC decoder to avoid leaking memory.

related-to-bug: 2404786
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
433c9acaf7715eec080426af03cf1bf288076fe8 28-Jan-2010 Andreas Huber <andih@google.com> Support the specification of additional HTTP headers in the creation of a DataSource.

related-to-bug: 2393577
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
b9e63830c69231c53dc23a5e29f5b58a1d9d3668 27-Jan-2010 Andreas Huber <andih@google.com> Better support for HTTP streaming media content, fixes to the way HTTPDataSource streams the data, prefetcher implementation.

related-to-bug: 2295438
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
3522b5a579090f09ec4d304ee4b8fca6c755d39c 22-Jan-2010 Andreas Huber <andih@google.com> Make sure to release the renderer before shutting down the hardware codec, qcom's hardware decoder will otherwise crash.

related-to-bug: 2387981
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
a3f4384ce829132d7ffcd3d284d641e73a8896a6 21-Jan-2010 Andreas Huber <andih@google.com> Fix circular dependency between StagefrightPlayer and AwesomePlayer that prevented proper cleanup.

related-to-bug: 2355922
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c79827a76f91fd36c2f3d598dc7288f6abb86745 05-Jan-2010 Andreas Huber <andih@google.com> I must have broken raw-audio decoding in the recent past, this fixes it.

related-to-bug: http://b/issue?id=2352199
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
b1f5ee41e9326dff132ad59de169cb3e79930f07 15-Dec-2009 Andreas Huber <andih@google.com> It's important that seek requests are only specified in the initial call to MediaSource::read and are not repeated in subsequent calls.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
1314e73786afacb49ddbff7c3d0c1cf9d2c688c9 14-Dec-2009 Andreas Huber <andih@google.com> AwesomePlayer now renders either remote (IOMXRenderer) or locally depending on what kind of decoder was instantiated. Split off color conversion code into its own shared library.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
6ddcf01a9033ee7ff4230efd117d7bcc8b5b3cc1 11-Dec-2009 Andreas Huber <andih@google.com> remote destructors are not synchronously executed by the binder...
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
c1d5c921d62475fb0b9eec46ce1a9278c96fd9e2 11-Dec-2009 Andreas Huber <andih@google.com> Fix seek-on-startup behaviour in AwesomePlayer.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
a67d538881413c4b73e7c9854e293b71b407e9c2 11-Dec-2009 Andreas Huber <andih@google.com> remote destructors are not synchronously executed by the binder...
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
24b0a95de7d1e8b57aa2cda1a04a0e40e80a4372 23-Nov-2009 Andreas Huber <andih@google.com> The original delay after which we dropped a frame was too aggressive. 40ms lateness seems more appropriate (about 25fps).
/frameworks/base/media/libstagefright/AwesomePlayer.cpp
27366fc9540cb642ee4856957dabffe7ddf1f901 20-Nov-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 1efc38dc3c33fef57b759002db3965ed07a28cb0
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 19 14:36:14 2009 -0800

Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed.

Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed.

commit 51973062eb5ee63fd64b845d72bac517cc3369cf
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 14:01:43 2009 -0800

Fix one more unit test, properly send seek-complete notification only after seek actually completed.

commit cb22250b34b1fcfe1bf459723a761fd003950229
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:31:36 2009 -0800

Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails.

commit 25eb9241138ddf7bb27ce90657116c5f8a94d880
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:30:40 2009 -0800

Support seeking and duration in AMRExtractor, assuming all frames are the same size.

commit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 10:21:44 2009 -0800

MediaPlayerImpl is dead, long live AwesomePlayer.

commit c5b52d3c0674f5dc94db506afbce52401cceddac
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 09:42:23 2009 -0800

New implementation of the stagefright mediaplayer.
/frameworks/base/media/libstagefright/AwesomePlayer.cpp