diff options
author | Chong Zhang <chz@google.com> | 2014-08-12 21:25:48 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-08-14 12:18:48 -0700 |
commit | 1228d6b175de8b21787cbe0c6c4bb5642f4d555e (patch) | |
tree | 187b3da8fd4c4d8b8131f3c3095f0d894863861a /media/libmediaplayerservice/nuplayer/RTSPSource.cpp | |
parent | e6e18e8de729316b3fac7733f9ebc7f1b3feba95 (diff) | |
download | frameworks_av-1228d6b175de8b21787cbe0c6c4bb5642f4d555e.zip frameworks_av-1228d6b175de8b21787cbe0c6c4bb5642f4d555e.tar.gz frameworks_av-1228d6b175de8b21787cbe0c6c4bb5642f4d555e.tar.bz2 |
use dedicated looper for GenericSource
- handle setVideoSurface in deferred action, and return
to client immediately
- handle GenericSource's prepareAsync on its own looper,
instead of sharing looper with NuPlayer
- let HTTPLiveSource share looper with LiveSession, instead
of NuPlayer
- remove reflector in RTSPSource
Bug: 16892748
Change-Id: I1aed557320052012065f5a90adbcb03c238da988
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/RTSPSource.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/RTSPSource.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp index a911f6c..ffacb8f 100644 --- a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp +++ b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp @@ -70,6 +70,7 @@ NuPlayer::RTSPSource::RTSPSource( NuPlayer::RTSPSource::~RTSPSource() { if (mLooper != NULL) { + mLooper->unregisterHandler(id()); mLooper->stop(); } } @@ -80,14 +81,13 @@ void NuPlayer::RTSPSource::prepareAsync() { mLooper->setName("rtsp"); mLooper->start(); - mReflector = new AHandlerReflector<RTSPSource>(this); - mLooper->registerHandler(mReflector); + mLooper->registerHandler(this); } CHECK(mHandler == NULL); CHECK(mSDPLoader == NULL); - sp<AMessage> notify = new AMessage(kWhatNotify, mReflector->id()); + sp<AMessage> notify = new AMessage(kWhatNotify, id()); CHECK_EQ(mState, (int)DISCONNECTED); mState = CONNECTING; @@ -118,7 +118,7 @@ void NuPlayer::RTSPSource::stop() { if (mLooper == NULL) { return; } - sp<AMessage> msg = new AMessage(kWhatDisconnect, mReflector->id()); + sp<AMessage> msg = new AMessage(kWhatDisconnect, id()); sp<AMessage> dummy; msg->postAndAwaitResponse(&dummy); @@ -305,7 +305,7 @@ status_t NuPlayer::RTSPSource::getDuration(int64_t *durationUs) { } status_t NuPlayer::RTSPSource::seekTo(int64_t seekTimeUs) { - sp<AMessage> msg = new AMessage(kWhatPerformSeek, mReflector->id()); + sp<AMessage> msg = new AMessage(kWhatPerformSeek, id()); msg->setInt32("generation", ++mSeekGeneration); msg->setInt64("timeUs", seekTimeUs); msg->post(200000ll); @@ -613,7 +613,7 @@ void NuPlayer::RTSPSource::onSDPLoaded(const sp<AMessage> &msg) { ALOGE("Unable to find url in SDP"); err = UNKNOWN_ERROR; } else { - sp<AMessage> notify = new AMessage(kWhatNotify, mReflector->id()); + sp<AMessage> notify = new AMessage(kWhatNotify, id()); mHandler = new MyHandler(rtspUri.c_str(), notify, mUIDValid, mUID); mLooper->registerHandler(mHandler); |