Loading media/libstagefright/AwesomePlayer.cpp +14 −11 Original line number Diff line number Diff line Loading @@ -139,7 +139,7 @@ void AwesomePlayer::cancelPlayerEvents() { mStreamDoneEventPending = false; } void AwesomePlayer::setListener(const sp<MediaPlayerBase> &listener) { void AwesomePlayer::setListener(const wp<MediaPlayerBase> &listener) { Mutex::Autolock autoLock(mLock); mListener = listener; } Loading Loading @@ -268,10 +268,7 @@ void AwesomePlayer::AudioNotify(void *_me, int what) { case AudioPlayer::SEEK_COMPLETE: { if (me->mListener != NULL) { me->mListener->sendEvent(MEDIA_SEEK_COMPLETE); } me->notifyListener_l(MEDIA_SEEK_COMPLETE); break; } Loading @@ -281,6 +278,16 @@ void AwesomePlayer::AudioNotify(void *_me, int what) { } } void AwesomePlayer::notifyListener_l(int msg) { if (mListener != NULL) { sp<MediaPlayerBase> listener = mListener.promote(); if (listener != NULL) { listener->sendEvent(msg); } } } void AwesomePlayer::onStreamDone() { // Posted whenever any stream finishes playing. Loading @@ -294,9 +301,7 @@ void AwesomePlayer::onStreamDone() { postVideoEvent_l(); } } else { if (mListener != NULL) { mListener->sendEvent(MEDIA_PLAYBACK_COMPLETE); } notifyListener_l(MEDIA_PLAYBACK_COMPLETE); pause_l(); } Loading Loading @@ -643,9 +648,7 @@ void AwesomePlayer::onEvent(int32_t code) { } else { // If we're playing video only, report seek complete now, // otherwise audio player will notify us later. if (mListener != NULL) { mListener->sendEvent(MEDIA_SEEK_COMPLETE); } notifyListener_l(MEDIA_SEEK_COMPLETE); } mFlags |= FIRST_FRAME; Loading media/libstagefright/include/AwesomePlayer.h +4 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ struct AwesomePlayer { AwesomePlayer(); ~AwesomePlayer(); void setListener(const sp<MediaPlayerBase> &listener); void setListener(const wp<MediaPlayerBase> &listener); status_t setDataSource(const char *uri); status_t setDataSource(int fd, int64_t offset, int64_t length); Loading Loading @@ -82,7 +82,7 @@ private: OMXClient mClient; TimedEventQueue mQueue; sp<MediaPlayerBase> mListener; wp<MediaPlayerBase> mListener; sp<ISurface> mISurface; sp<MediaPlayerBase::AudioSink> mAudioSink; Loading Loading @@ -133,6 +133,8 @@ private: static void AudioNotify(void *me, int what); void onStreamDone(); void notifyListener_l(int msg); AwesomePlayer(const AwesomePlayer &); AwesomePlayer &operator=(const AwesomePlayer &); }; Loading Loading
media/libstagefright/AwesomePlayer.cpp +14 −11 Original line number Diff line number Diff line Loading @@ -139,7 +139,7 @@ void AwesomePlayer::cancelPlayerEvents() { mStreamDoneEventPending = false; } void AwesomePlayer::setListener(const sp<MediaPlayerBase> &listener) { void AwesomePlayer::setListener(const wp<MediaPlayerBase> &listener) { Mutex::Autolock autoLock(mLock); mListener = listener; } Loading Loading @@ -268,10 +268,7 @@ void AwesomePlayer::AudioNotify(void *_me, int what) { case AudioPlayer::SEEK_COMPLETE: { if (me->mListener != NULL) { me->mListener->sendEvent(MEDIA_SEEK_COMPLETE); } me->notifyListener_l(MEDIA_SEEK_COMPLETE); break; } Loading @@ -281,6 +278,16 @@ void AwesomePlayer::AudioNotify(void *_me, int what) { } } void AwesomePlayer::notifyListener_l(int msg) { if (mListener != NULL) { sp<MediaPlayerBase> listener = mListener.promote(); if (listener != NULL) { listener->sendEvent(msg); } } } void AwesomePlayer::onStreamDone() { // Posted whenever any stream finishes playing. Loading @@ -294,9 +301,7 @@ void AwesomePlayer::onStreamDone() { postVideoEvent_l(); } } else { if (mListener != NULL) { mListener->sendEvent(MEDIA_PLAYBACK_COMPLETE); } notifyListener_l(MEDIA_PLAYBACK_COMPLETE); pause_l(); } Loading Loading @@ -643,9 +648,7 @@ void AwesomePlayer::onEvent(int32_t code) { } else { // If we're playing video only, report seek complete now, // otherwise audio player will notify us later. if (mListener != NULL) { mListener->sendEvent(MEDIA_SEEK_COMPLETE); } notifyListener_l(MEDIA_SEEK_COMPLETE); } mFlags |= FIRST_FRAME; Loading
media/libstagefright/include/AwesomePlayer.h +4 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ struct AwesomePlayer { AwesomePlayer(); ~AwesomePlayer(); void setListener(const sp<MediaPlayerBase> &listener); void setListener(const wp<MediaPlayerBase> &listener); status_t setDataSource(const char *uri); status_t setDataSource(int fd, int64_t offset, int64_t length); Loading Loading @@ -82,7 +82,7 @@ private: OMXClient mClient; TimedEventQueue mQueue; sp<MediaPlayerBase> mListener; wp<MediaPlayerBase> mListener; sp<ISurface> mISurface; sp<MediaPlayerBase::AudioSink> mAudioSink; Loading Loading @@ -133,6 +133,8 @@ private: static void AudioNotify(void *me, int what); void onStreamDone(); void notifyListener_l(int msg); AwesomePlayer(const AwesomePlayer &); AwesomePlayer &operator=(const AwesomePlayer &); }; Loading