diff --git a/include/media/stagefright/foundation/ALooper.h b/include/media/stagefright/foundation/ALooper.h index 153ead9a4bd72..70e0c5e6b3926 100644 --- a/include/media/stagefright/foundation/ALooper.h +++ b/include/media/stagefright/foundation/ALooper.h @@ -19,6 +19,7 @@ #define A_LOOPER_H_ #include +#include #include #include #include @@ -36,6 +37,9 @@ struct ALooper : public RefBase { ALooper(); + // Takes effect in a subsequent call to start(). + void setName(const char *name); + handler_id registerHandler(const sp &handler); void unregisterHandler(handler_id handlerID); @@ -63,6 +67,8 @@ private: Mutex mLock; Condition mQueueChangedCondition; + AString mName; + List mEventQueue; struct LooperThread; diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 7e25e8867f0b8..7daac96b0a48d 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1241,6 +1241,7 @@ status_t AwesomePlayer::finishSetDataSource_l() { } else if (!strncmp("rtsp://gtalk/", mUri.string(), 13)) { if (mLooper == NULL) { mLooper = new ALooper; + mLooper->setName("gtalk rtp"); mLooper->start( false /* runOnCallingThread */, false /* canCallJava */, @@ -1352,6 +1353,7 @@ status_t AwesomePlayer::finishSetDataSource_l() { } else if (!strncasecmp("rtsp://", mUri.string(), 7)) { if (mLooper == NULL) { mLooper = new ALooper; + mLooper->setName("rtsp"); mLooper->start(); } mRTSPController = new ARTSPController(mLooper); diff --git a/media/libstagefright/NuCachedSource2.cpp b/media/libstagefright/NuCachedSource2.cpp index c02b7f3c4e7f9..9171aab8c42dc 100644 --- a/media/libstagefright/NuCachedSource2.cpp +++ b/media/libstagefright/NuCachedSource2.cpp @@ -180,6 +180,7 @@ NuCachedSource2::NuCachedSource2(const sp &source) mLastAccessPos(0), mFetching(true), mLastFetchTimeUs(-1) { + mLooper->setName("NuCachedSource2"); mLooper->registerHandler(mReflector); mLooper->start(); diff --git a/media/libstagefright/foundation/ALooper.cpp b/media/libstagefright/foundation/ALooper.cpp index 77afb010e6301..b7087f83df38f 100644 --- a/media/libstagefright/foundation/ALooper.cpp +++ b/media/libstagefright/foundation/ALooper.cpp @@ -65,6 +65,10 @@ ALooper::~ALooper() { stop(); } +void ALooper::setName(const char *name) { + mName = name; +} + ALooper::handler_id ALooper::registerHandler(const sp &handler) { return gLooperRoster.registerHandler(this, handler); } @@ -100,7 +104,8 @@ status_t ALooper::start( mThread = new LooperThread(this, canCallJava); - status_t err = mThread->run("ALooper", priority); + status_t err = mThread->run( + mName.empty() ? "ALooper" : mName.c_str(), priority); if (err != OK) { mThread.clear(); } diff --git a/media/libstagefright/rtsp/ARTPWriter.cpp b/media/libstagefright/rtsp/ARTPWriter.cpp index d4eed7ce6efba..ce1ee0e8c3587 100644 --- a/media/libstagefright/rtsp/ARTPWriter.cpp +++ b/media/libstagefright/rtsp/ARTPWriter.cpp @@ -31,6 +31,7 @@ ARTPWriter::ARTPWriter(int fd) mReflector(new AHandlerReflector(this)) { CHECK_GE(fd, 0); + mLooper->setName("rtp writer"); mLooper->registerHandler(mReflector); mLooper->start(); diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index 0685a4732af9a..affacc86cb2f0 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -76,7 +76,7 @@ struct MyHandler : public AHandler { mFirstAccessUnitNTP(0), mNumAccessUnitsReceived(0), mCheckPending(false) { - + mNetLooper->setName("rtsp net"); mNetLooper->start(false /* runOnCallingThread */, false /* canCallJava */, PRIORITY_HIGHEST); @@ -389,7 +389,7 @@ struct MyHandler : public AHandler { } mNumAccessUnitsReceived = 0; - msg->post(500000); + msg->post(1000000); break; } @@ -400,7 +400,7 @@ struct MyHandler : public AHandler { if (!mCheckPending) { mCheckPending = true; sp check = new AMessage('chek', id()); - check->post(500000); + check->post(1000000); } size_t trackIndex;