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/HTTPLiveSource.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/HTTPLiveSource.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp index c713d39..a003c81 100644 --- a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp +++ b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp @@ -62,17 +62,24 @@ NuPlayer::HTTPLiveSource::HTTPLiveSource( NuPlayer::HTTPLiveSource::~HTTPLiveSource() { if (mLiveSession != NULL) { mLiveSession->disconnect(); - mLiveSession.clear(); + mLiveLooper->unregisterHandler(mLiveSession->id()); + mLiveLooper->unregisterHandler(id()); mLiveLooper->stop(); + + mLiveSession.clear(); mLiveLooper.clear(); } } void NuPlayer::HTTPLiveSource::prepareAsync() { - mLiveLooper = new ALooper; - mLiveLooper->setName("http live"); - mLiveLooper->start(); + if (mLiveLooper == NULL) { + mLiveLooper = new ALooper; + mLiveLooper->setName("http live"); + mLiveLooper->start(); + + mLiveLooper->registerHandler(this); + } sp<AMessage> notify = new AMessage(kWhatSessionNotify, id()); |