diff options
author | Andreas Huber <andih@google.com> | 2010-07-22 13:57:39 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-07-22 13:57:39 -0700 |
commit | f661058d77d1484e5911d1962f8e1e8466240687 (patch) | |
tree | 68a15b2e05afde966fad297d8c95f36951e4d24f /media/libstagefright/rtsp/MyHandler.h | |
parent | 2c81e430f8fb1493084a3b32cd649a368b4201e5 (diff) | |
parent | 3922fe0860f1662f9066f553314b6955702d4956 (diff) | |
download | frameworks_av-f661058d77d1484e5911d1962f8e1e8466240687.zip frameworks_av-f661058d77d1484e5911d1962f8e1e8466240687.tar.gz frameworks_av-f661058d77d1484e5911d1962f8e1e8466240687.tar.bz2 |
am b72d3180: am 81046c8c: Merge "Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes." into gingerbread
Merge commit 'b72d3180dc8d41d6269664bea808b04410bbe40f'
* commit 'b72d3180dc8d41d6269664bea808b04410bbe40f':
Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.
Diffstat (limited to 'media/libstagefright/rtsp/MyHandler.h')
-rw-r--r-- | media/libstagefright/rtsp/MyHandler.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index 719ebf3..15901cd 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -34,19 +34,33 @@ namespace android { struct MyHandler : public AHandler { MyHandler(const char *url, const sp<ALooper> &looper) : mLooper(looper), + mNetLooper(new ALooper), mConn(new ARTSPConnection), mRTPConn(new ARTPConnection), mSessionURL(url), mSetupTracksSuccessful(false), mFirstAccessUnit(true), mFirstAccessUnitNTP(-1) { + + mNetLooper->start(false /* runOnCallingThread */, + false /* canCallJava */, + PRIORITY_HIGHEST); + } + + void connect() { mLooper->registerHandler(this); mLooper->registerHandler(mConn); - mLooper->registerHandler(mRTPConn); + (1 ? mNetLooper : mLooper)->registerHandler(mRTPConn); sp<AMessage> reply = new AMessage('conn', id()); + mConn->connect(mSessionURL.c_str(), reply); } + void disconnect() { + sp<AMessage> reply = new AMessage('disc', id()); + mConn->disconnect(reply); + } + virtual void onMessageReceived(const sp<AMessage> &msg) { switch (msg->what()) { case 'conn': @@ -290,7 +304,6 @@ struct MyHandler : public AHandler { case 'quit': { - mLooper->stop(); break; } @@ -320,8 +333,17 @@ struct MyHandler : public AHandler { accessUnit->meta()->setInt64("ntp-time", ntpTime); - TrackInfo *track = &mTracks.editItemAt(trackIndex); - track->mPacketSource->queueAccessUnit(accessUnit); +#if 0 + int32_t damaged; + if (accessUnit->meta()->findInt32("damaged", &damaged) + && damaged != 0) { + LOG(INFO) << "ignoring damaged AU"; + } else +#endif + { + TrackInfo *track = &mTracks.editItemAt(trackIndex); + track->mPacketSource->queueAccessUnit(accessUnit); + } break; } @@ -344,6 +366,7 @@ struct MyHandler : public AHandler { private: sp<ALooper> mLooper; + sp<ALooper> mNetLooper; sp<ARTSPConnection> mConn; sp<ARTPConnection> mRTPConn; sp<ASessionDescription> mSessionDesc; |