62496886cb4620c09bc5df0de70a883319616c25 |
|
22-Feb-2016 |
Aurimas Liutikas <aurimas@google.com> |
Enable -Werror and fix warnings in frameworks/wilhelm. Bug: 27147881 Change-Id: I5e767007d85a160864a606926ee81adb94eae899
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
52e35b2c9f25450452ab422c46737a7fb5b67380 |
|
04-Mar-2015 |
Lajos Molnar <lajos@google.com> |
stagefright: make AMessage use handler vs handler-id Bug: 19607784 Change-Id: I55accc49eec725ede0da3d1bfab448320fece926
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
e21f91df7afb1175ddb5b0045ebb0d5338df2535 |
|
18-Dec-2012 |
Andy McFadden <fadden@android.com> |
Rename ISurfaceTexture and SurfaceTexture The C++ class names don't match what the classes do, so rename ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to GLConsumer. Bug 7736700 Change-Id: I54f19904e325518a3af8fe23c018d3c0bb6bd807
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
91145ef159d3e165a461cbd76341ff8ed3d72bae |
|
04-May-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
Playback rate on OpenSL ES AudioPlayer playing from URI/FD Allow AudioPlayer to use the platform's 500-2000 range (in permille) of playback rate for audio when the data source is a URI or FD. Since play events for those players are simulated through monitoring the playback position, scale the time between updates so play events are delivered in content time, not presentation time (as defined in OpenSL ES specification, "positions do not scale with changes in playback rate"). Bug 5898620 Change-Id: Ib512caebd7f3983c9e845be62e48dfee8499e59c
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
01e4a8ff63523bba5c8f919a72e0adb66daf4b98 |
|
26-Feb-2012 |
Mathias Agopian <mathias@google.com> |
cleanup includes Change-Id: Ia98b76b2e0c49ee257e1f31c61c2d6f72a9fe894
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
a6c69c7e1665b38da8d6784e65210acbe501b92c |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I270cbf7b920d5f2fbb5f345f3c88426697c4391d
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
1cbcb3d2c9cb208060ad18b16277c8d0e36832f5 |
|
15-Nov-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "More logging of media events for debugging"
|
86d4c6adc589ad73ff38e480151e65e755a7071a |
|
14-Nov-2011 |
Glenn Kasten <gkasten@google.com> |
am e75ba3ef: Merge "Bug 5201321 recover from mediaserver crash" into ics-mr1 * commit 'e75ba3eff247622fdf36974d2216dcaff269ea5c': Bug 5201321 recover from mediaserver crash
|
513222822545c3e954176476b263df52a47f43a4 |
|
10-Nov-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5201321 recover from mediaserver crash Add a media player death notifier to recover from media server crashes. Downgrade some logs. Destructors should be protected. Change-Id: I7774733bcb12fc7fbfe237bdbeffca1adde46e78
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
3c59249869119ec0f1dd53b8b3045f785c514046 |
|
08-Nov-2011 |
Andreas Huber <andih@google.com> |
am e87e28c3: Merge "Remove MediaPlayer::setVideoSurface legacy." into ics-mr1 * commit 'e87e28c32f35ed40a12b18ef51cc6af0f44ec270': Remove MediaPlayer::setVideoSurface legacy.
|
e2e8fa36bd7448b59fbcdf141e0b6d21e5401d91 |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Comments Change-Id: I1592d1979ce5f5811ff5a47b4b60db93e8670313
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
241b9c06493479dc632a8851097c193b724a2b41 |
|
26-Oct-2011 |
Andreas Huber <andih@google.com> |
Remove MediaPlayer::setVideoSurface legacy. Change-Id: I95aa181f39b375087b30ac65fea37589108c9f16
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
b6aed97f98afa0c20f5b1e854ac07ccacfcdacc6 |
|
28-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
am d0b07222: Merge "Bug 5526807 inform client of errors after prepare" into ics-mr0 * commit 'd0b0722276aea9a06a118a64abfc8b3e9498e931': Bug 5526807 inform client of errors after prepare
|
5e4d65e369f28746767aba11b618dee314bb8197 |
|
27-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5526807 inform client of errors after prepare Change-Id: Ic5c88f8e1c8e7d6226a7a71a2a89a70f0fa876f8
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
409b09b0436e0268b0025a935a42076f8274b7d7 |
|
25-Oct-2011 |
Ed Heyl <ed@google.com> |
Merge remote branch 'goog/ics-mr0' into ics-mr1
|
7c40d3b78c609b2a84acd0dd6e874ab24a73f8d7 |
|
24-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5505856 remove incorrect setDataSource(NULL) Change-Id: Id23cbc43b56c014f5931cd1e941c12a773dba2b5
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
1fa5c3206d06bbebdea2dc92f378ce6b8a211e23 |
|
30-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Fix race in getting duration mDuration is protected by mSettingsLock because it is accessed from both the ALooper thread and from the application thread, but only one of the two "set"s was using the lock, and the "get" was not using the lock. Also added some comments about the lock, and moved lock closer inside { }. Change-Id: I7c96186f31baaad1b941d934549cb50d4f82d0c8
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
0384250ce4221e4a6a16db2725e1232c71a60965 |
|
30-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
More logging of media events for debugging Do range-checking of MEDIA_BUFFERING_UPDATE parameters. The other new logs are LOGV so disabled by default. Don't forward empty MEDIA_SET_VIDEO_SIZE notifications, as mediaserver seems to send these even for audio-only tracks. Change-Id: I49063f83cec7bdfedb768b32f94735983755ebf2
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
2f8642e546ca9d53319573616aab840bf6cb2967 |
|
11-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Multithread safety and code reduction"
|
b4393ef4ef3edb785746c37fd7b68950e85283ae |
|
30-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Multithread safety and code reduction Remove unsafe GenericPlayer::getSampleRate(). getSampleRate() was not thread-safe as it accessed a member variable updated in the looper thread without a lock. If getSampleRate() is ever needed again, the sample rate is available in the mPcmFormatValues array, which does have a lock. Replace member variables mChannelMask, mChannelCount, and mSampleRateHz by local variables for locality and performance. Change-Id: Ibf92ed090430153d748ded4d0b835e429df47eea
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
a3de08c6ee93a63643e9c6118dd66c0eb6398de1 |
|
11-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5293383 ~StreamSourceAppProxy wasn't reached"
|
a0fa47f72f47fffb80ab2ae791739ce73de1e8f4 |
|
12-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5293383 ~StreamSourceAppProxy wasn't reached Fix bug where StreamSourceAppProxy destructor wasn't reached, which caused all sorts of other problems later on. To see this, enable the logs StreamSourceAppProxy::~StreamSourceAppProxy and StreamPlayer::~StreamPlayer. You'll see that StreamPlayer was destroyed, but not StreamSourceAppProxy. As StreamSourceAppProxy is child of StreamPlayer, make the reference from StreamSourceAppProxy to StreamPlayer a weak reference in case StreamSourceAppProxy's lifetime exceeds StreamPlayer. It is not supposed to any more with this fix, but the wp<> provides extra safety. StreamPlayer preDestroy no longer bypasses the preDestroy in GenericMediaPlayer. Do a full disconnect in GenericMediaPlayer::preDestroy. Push decremented reference counts for strong pointer through binder to workaround binder's "optimization". Extra error-checking in setListener and setBuffers to verify that mediaserver is calling them correctly. Use mutex mLock consistently in StreamSourceAppProxy. Add an explicit StreamSourceAppProxy::disconnect to break a circular reference, and call it in StreamPlayer destructor. Make methods private: receivedCmd_l and receivedBuffer_l. Add explicit clear during preDestroy to give up references earlier. Warning: setDataSource(NULL) is not supported by NuPlayer yet, this depends on another change in frameworks/base, so it is commented out for now. Rename mPlayerPrepared to mPreparedPlayer to avoid confusion with the enum mPlayerPrepared. Change-Id: Ie5f554c206027d22204eb86edd15489c6281b512
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
e9f0847ff5df38f50b750c87898a19854e029b39 |
|
10-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Don't update prepare state more than once"
|
83c36078465817323d499670a409618cdc134f90 |
|
04-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5385386 missing HEADATNEWPOS"
|
0d1c7e2ccd98bf7e2285c3db98ea263c79b24978 |
|
04-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Don't update prepare state more than once If a MEDIA_ERROR event is received during preparation, it indicates that prepare has completed unsuccessfully. However, MEDIA_ERROR can also legitimately be sent after successful prepare. In that case, don't update the prepare state. Similarly, in the unlikely case that MEDIA_PREPARED is received after prepare has already completed successfully or unsuccessfully, ignore it. This probably indicates a buggy mediaserver, but we wouldn't want that to take down the client also. Change-Id: I2a92e98d13b70d1aa5ff6f440ad528f6896a2ead
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
4c178cd8b962c2bcd84cf8a9e9dcf066bcb2f292 |
|
01-Oct-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Remove dead code"
|
c0a40f3efef1706f861777ff68003fe344730055 |
|
28-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Remove dead code Change-Id: Ic68d4d7b942ef99120ad30ee3ef7ce48ff1d697a
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
a9f22e6f5f53e90daa779e38b22f88e4faa35c95 |
|
29-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5385386 missing HEADATNEWPOS Workaround for mediaserver bug where it does not send MEDIA_SEEK_COMPLETE to the MediaPlayerNotifier after a discontinuity is processed. Instead, we simulate a seek complete event in this case. A short delay is applied to compensate for shared memory latency. A longer-term fix will be to have mediaserver send the event. Change-Id: Id0d01b842a145fa5762d44f03144741152f7b03f
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
91ff087fb814063f9faa23ab37a61e8fe4e38f45 |
|
16-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5334969 MediaPlayerNotificationClient safety Fixed race due to missing mutex around 2 updates to mPlayerPrepared. MediaPlayerNotificationClient had a raw reference to GenericMediaPlayer; if for some reason the binder thread out-lived the GenericMediaPlayer, then it might reference a destroyed object. Made it a weak reference, and issue warning if the GenericMediaPlayer has been destroyed. This has similar effect as a callback protector. Minor related: - mHasVideo is read without mutex, safe since never changed but make it const - GenericMediaPlayer's reference to MediaPlayerNotificationClient is now const also Change-Id: I67b50e861a055c73fd490fb537a3d6d23d25c3d2
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
485a038f9f0f898227b8ab4218e94c5d56b6ed0b |
|
24-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5193695 Fix crash after MediaPlayer destroyed The StreamSource callback thread was continuing to run after the MediaPlayer object was destroyed. Fixed by adding a callback protector and a pre-destroy hook. GenericMediaPlayer::preDestroy now also calls MediaPlayer::stop just in case. Change-Id: I5bd771d4d1936f433d2a8c9959593782c96daed9 Miscellaneous: - added an explicit destructor on CMediaPlayer::mAVPlayer for consistency (probably not a bug since there was a clear on it earlier) - updated comments for CallbackProtector - made some CallbackProtector fields private since no sub-classes yet
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
833251ab9e5e59a6ea5ac325122cf3abdf7cd944 |
|
11-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5153313 keep compatibility of local files URI Also fix a bug in decode from fd to PCM buffer queue, where we were closing the application's fd. Change-Id: I220cd1c242f2f5e240b4dd1b9e8d79c88878bdcd
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
b238f3ed65f3fa2a3adad602a438fbc98b13cba3 |
|
19-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5126938 dependency for video sinks"
|
85edd878a30caa535b0267d8d6e61b4ccc0d5fd0 |
|
13-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5161265 Recover from mediaserver process crash Use the utility method IMediaDeathNotifier::getMediaPlayerService() to get a reference to media player service. It retries after errors, and keeps a single global per-process reference to the service rather than one per object. If we still can't contact the media player service after retries, handle it like an unsuccessful prepare. Miscellaneous: - Remove unused field Parcel metadatafilter Change-Id: I451a64bd76b4a7f157774abe967448ec081f1014
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
35ac702ee1ad91e5c8748c12450222d50b366a52 |
|
08-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5126938 dependency for video sinks Fixing bug 5126938 will involve configuring the video sink in two places: at the initial data locator when creating the MediaPlayer object, and then later in the IAndroidConfiguration interface. This CL is preparation for that. Details: - Abstract out common code into android_Player_setNativeWindow. - Move the code for checking and initializing the video sink from an #ifdef ANDROID in the CMediaPlayer_Realize portable code to into platform-specific android_Player_realize. - Only set one of mSurface or mSurfaceTexture to non-NULL. - For methods which can't fail, replace the SLresult return value by void. Change-Id: Iec8fd91e1a6de45eb64241b35e3f7d7faf63d727
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
1b65b2054448050ded9e1475df7b755421a1e2da |
|
05-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5903270 play interface, events, markers, etc."
|
5933f3d5e532aaac31ce0e6551c59f0197c0ae3c |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5903270 play interface, events, markers, etc. As the media framework does not directly support marker and periodic callbacks, we use a retriggerable one-shot timer at application level to emulate this. This has the advantage of being faster, but is also less accurate than if it were in the framework. Details: - Get position is now synchronous and (mostly) lock-free - Fix regression in SL_PLAYEVENT_HEADATMARKER and SL_PLAYEVENTHEADATNEWPOS - Fix SMP races in GetPlayState, GetCallbackEventsMask, GetMarkerPosition, GetPositionUpdatePeriod - AudioSfDecoder was not updating mPositionMsec when getPositionUsec failed - Updating attributes is relatively expensive, so only do it when a significant change in SetMarkerPosition, ClearMarkerPosition, SetPositionUpdatePeriod - Error on unknown message type in onMessageReceived - Delete an obsolete FIXME - "Clearing" a marker is now equivalent to disabling the marker event, and the default marker position is cleared. - use Android time units and types (int32_t, ANDROID_UNKNOWN_TIME, etc.) where appropriate instead of SLmillisecond and SL_TIME_UNKNOWN Change-Id: Ib78bafa20d883b8d927364769663837389b6ea1d
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
f6445d330c05ccc57d1adcc6ee05735a33f78881 |
|
03-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5110581 SL_PLAYEVENT_HEADATEND while looping Change-Id: Ia4d0433b4a6589bfda2f88addbe5b7eb3d0d9789
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
f152bc273bc3f8471bca626fe9cc966dad304173 |
|
02-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5080320 MediaPlayer volume"
|
99b927751677abfb60a388d65dfeed1fed1db12c |
|
28-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5080320 MediaPlayer volume Details: - re-factor volume-related code yet again - remove dead variables mAmplFromVolLevel, mAmplFromStereoPos, mDirectLevel - add placeholders for kEventPrefetchFillLevelUpdate and kEventPrefetchStatusChange Known issues: - MPEG-2 TS doesn't yet implement the ability to query channel count, so default to stereo Change-Id: Ic0f2297b267dc3d380755e8d314e1d5f0f659d7c
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
2e0ad5a525247b48d6300ab48774503f55da75ea |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5092976 no spurious callbacks on prefetch fail"
|
9f07ea788f57654acf29d1321b40162e41eb122b |
|
26-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5081346 fix whole file looping Change-Id: If4e233f9007d7e48225a342a43f06df7f66cdea7
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
06059e5ee1eaf907589c7f8d1320253f92211348 |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5092976 no spurious callbacks on prefetch fail Change-Id: I754085b4d1e43c4d10bea36e0fb683d8113844e9
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
fa2bd93c3a9852a1f879663eeff598d13cf8fa81 |
|
25-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 4599730 fix mute solo, channel count, volume Change-Id: I1624c744168233c4ef79f2cd3090447b8aa7d53b
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
3610785fa93586ce84a27a27530feb77b8035229 |
|
22-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5045590 preset reverb on audio players Aux effects on MediaPlayer audio players (non-AudioTrack) were broken Change-Id: I5b97bee08d809b12cb9815d6d277934123780581
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
dc93696c78e3a089828188a760ece635cb8d8a09 |
|
22-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Bug 5047695 Handle unsuccessful prepare up to app"
|
49935c51fddcd0caa0030e2aac0c3a7ba3339e3d |
|
21-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5047695 Handle unsuccessful prepare up to app Change-Id: I9f1541b37ad5cda21dc49388e42c7fb08b22fc5b
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
b2549c73290f1955f3a7731bf98446a45f295dfa |
|
21-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Add more verbose logging Change-Id: I0cccee0d59fe3eefc6ef94b22bb6100d96bccdff
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
81e917a2605e14901b8f5e6cac7eafb5667aad0d |
|
20-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5047695 missing cases Change-Id: I9ae27ed4e977568a9687b9dd18eb998651569b24
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
de015407a89018f9422254624e1b75703f38defd |
|
19-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Reduce logging Change-Id: I71c5e016147002fa84a56fc703da52e7b5c8417a
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
35a5a30fdad179ccf38d8d756590411326159a89 |
|
12-Jul-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Implement XAPlayItf::GetPosition on MediaPlayer The play interface was only in place for routing calls to an AudioPlayer in OpenSL ES, not in OpenMAX AL for a MediaPlayer. Change-Id: Icf514be428396264252874faf1060c76ddee9545
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
4b0e0b2860ffd5e246b42c8a434833cca2f068b3 |
|
08-Jul-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Implement GetPosition for players playing from a URI/FD AudioPlayer (OpenSL ES) and MediaPlayer (OpenMAX AL) that play media from a URI or FD are implemented on top of an Android MediaPlayer. This CL implements requesting the current position from the underlying MediaPlayer object inside the event loop. At this stage, GetPosition cannot be called from inside a callback as the callback is made on the same thread that will process the asynchronous part of the GetPosition implementation. Add test app for GetPosition. Change-Id: Ife768bc40e37fc60cc19f6ba84bbe6cb06cc6590
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
2f6d462d89356cdaa77299ca27b60c5cca198d98 |
|
14-Apr-2011 |
Gloria Wang <gwang@google.com> |
- Add another parameter in notify() to be able to send timed text sample through listener during video playback. For feature request 800939. Change-Id: I14aa18d2f803163a62c05f9e6bd990518c58cd3f
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
7ef5526a7bd12eccfa777cc8bc167794634f405a |
|
13-Apr-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Fix stuttering at beginning of playback When an AudioPlayer is created, its playstate is set to STOPPED three times. A stop command is translated into a pause + seek(0). When a seek is underway, any new seek command was postponed. So when playback would start after a first seek(0), the other seeks would be executed, causing the stutterring. This CL verifies that, when seeking to a certain time, any new seek command to the same point in time received while seeking is ignored. It also correct the update of mStateFlags, which should be done BEFORE the command is issued to the player, in case the seek complete notification happens syncronously with the seek command. This CL does NOT fix why a newly created player sees its playstate updated to STOPPED three times in a test app like slesTest_playUri before playback starts. Change-Id: Ic7627678735f559b911ea3c5a0e1e00d7d7534d2
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
e31a69fcbe27894a597176d05a08e04c06092021 |
|
13-Apr-2011 |
Glenn Kasten <gkasten@google.com> |
Fix various bugs found with unit tests ISeek::SetLoop was returning undefined status. Khronos Bug 7614 - sizeof(long) != 32 bits on x86_64. Fix bug in IID hashing due to the above. Fix bug in GenericMediaPlayer::onLoop; was using mPlayer without checking for NULL. Fix wrong API level in tests/sandbox/object.c. Decrease log level from I to V in MediaPlayerNotificationClient::notify and GenericPlayer::~GenericPlayer. Fix memory leak in tests/sandbox/engine.c. Comment out overly verbose log in tests/sandbox/streamSource/slesTestPlayStream.cpp. Change-Id: I322fa9e19ee95ea1e18870a20f6a3c03b8f21208
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
36b700a829b7a02b873b4cd0cdb0a95342b20a31 |
|
11-Apr-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Use reference to sp on GenericPlayer When an object like GenericPlayer is stored in CAudioPlayer or CMediaPlayer by a sp, don't use a pointer to GenericPlayer when the object is passed as a function parameter, but rather use a reference to the sp that maintains it. Change-Id: I49ff219618ac4b657deb43cfffb65f0e0dd6d58d
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
4ee246c55533bdab8ab5fa0f0581744fe58e7c91 |
|
29-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Move support for SL URI and FD playback under GenericPlayer class The SfPlayer class was implementing URI and FD decode and playback in the application process. This CL removes this class entirely and moves its functionality under the GenericPlayer class. This means that the playback of URIs and FDs is now implemented through an android::MediaPlayer object running in the media service. The SfPlayer header had many StageFright and system includes, which are now moved to the relevant files where they are required, instead of automagically coming from sles_allinclusive.h. Note that this CL breaks support for the following OpenSL ES features due to missing Android MediaPlayer features: SLPlayItf.GetPosition HEADATMARKER HEADATNEWPOSITION SLVolumeItf.EnableStereoPosition SetStereoPosition SLMuteSoloItf SLPlaybackRateItf Support for those features will be reintegrated in subsequent CLs. Change-Id: I8d7f6ea006eb7b876ef1ca1909d74b4517335850
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
2b06e20ae32388f6e1dfd088d9773c34e6b1cb45 |
|
29-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Reduce include noise in SL and XA class definitions In classes.h: we should only have to include the headers for the objects that are actually stored as member variables of the OpenSL ES and OpenMAX AL objects (so here AudioTrackProtector, Effect, and GenericPlayer). In CMediaPlayer.c: remove useless includes and change the video surface function prototypes to use const refs to strong pointers instead of pointers to access the GenericMediaPlayer objects. Note that android_SfPlayer.h is still in sles_allinclusive.h because it will be dealt with when the SfPlayer functionality is absorbed under LocAVPlayer. Change-Id: Ic2c9459862588399d9545a247cc15341effc0f66
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
e9236d046fdb5cac0696c42e03443a2439188146 |
|
16-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 clean logs, PTS should be unsigned - Don't pollute logs. - Save MPEG-2 PTS as an unsigned 64bit value, negative values are invalid. Change-Id: I51d427789dd1e42219a63c68159f2e28628f0448
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
37dc2fccf3f122b79ebd554de209d0a3c94ae161 |
|
09-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 Implement streamInformation and volume in OpenMAX AL - Implement StreamInformation for video size notification. - Implement the XAVolumeItf for volume control - Fix bug in GUID -> MPH hash. - Fixed typo in GenericPlayer::pause() log - Do not signal a discontinuity automatically when the ABQ is cleared because clearing the queue doesn't imply there will be a discontinuity in the data (e.g. the same data that was cleared could be reenqueued) - In "native-media" test app: add test code to exercise the XAVolumeItf functionality. Change-Id: I9f69f8cacbdce51b6d96d60141ec1d0f645df991
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
70c49ae2867094072a4365423417ea452bf82231 |
|
07-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 support commands in SLAndroidBufferQueueItf Support for EOS, DISCONTINUITY, and DISCONTINUITY with a PTS. - in IAndroidBufferQueue structure, added buffer type - modified AdvancedBufferHeader structure to have a buffer type-specific structure that contains all the items for each buffer - added parsing of items when enqueueing a buffer - enforce buffer size enqueue to be a multiple of MPEG-2 TS block size for buffer of the corresponding types - when enqueueing a buffer on an empty queue, implemented an asynchronous notification on StreamPlayer to consume the newly queued buffer. Verified this kicks off playback after having starved the framework for buffers. - report unknown duration when using AndroidBufferQueue Change-Id: I9bde97a6c6ffca7d376b4963313b820b35f50a26
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
ad1ab1d13a9b043202b9d5cdc1d8c4ef66cbbca8 |
|
05-Mar-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 3329759 Surface texture as video sink XA_DATALOCATOR_NATIVEDISPLAY now allows either a Surface or SurfaceTexture together with a JNIEnv *. Miscellaneous fixes: - Clarify test button labels. - Line length 100. - Fix typos in XA_DATALOCATOR_ANDROIDFD and XA_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE. Change-Id: I3f3c604dfda3cf66ef7d7adc8689564a83623b2f
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|
68d56b8ebaf60184a3aef988e3d2b09ed8b88c05 |
|
24-Feb-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
OpenMAX AL: consolidate MediaPlayer implementations under superclass The OpenMAX AL MediaPlayer object has two implementations: one for playing from URI/FD (LocAVPlayer) and one for playing from AndroidBufferQueue (StreamPlayer). They both inherit from AVPlayer. This CL makes LocAVPlayer and StreamPlayer inherit from GenericMediaPlayer (new name of AVPlayer) which encapsulates the interaction with an android::MediaPlayer instance running in the media server process. Also it makes GenericMediaPlayer inherit from GenericPlayer, the player superclass also used in OpenSL ES. After this CL, the OpenMAX AL and OpenSL ES have a common class hierarchy for their players. Change-Id: I5f6e279fc29b7f6f26c9ed5c83a9455cfda88ff4
/frameworks/wilhelm/src/android/android_GenericMediaPlayer.cpp
|