diff options
author | Robert Shih <robertshih@google.com> | 2014-09-25 18:31:52 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-09-25 18:31:52 +0000 |
commit | 39c6d5ea8bc5ddfad2ffd55f1fcb6b40981ce378 (patch) | |
tree | fb1469e1673b618affef417305740ec451e098d0 /media | |
parent | 3709974f26e9661d512ae995123f2b22db51dc66 (diff) | |
parent | ec5206c99694d263ac099bf2c37f8119f43f74f1 (diff) | |
download | frameworks_av-39c6d5ea8bc5ddfad2ffd55f1fcb6b40981ce378.zip frameworks_av-39c6d5ea8bc5ddfad2ffd55f1fcb6b40981ce378.tar.gz frameworks_av-39c6d5ea8bc5ddfad2ffd55f1fcb6b40981ce378.tar.bz2 |
am ec5206c9: Merge "LiveSession: do not drop seek request" into lmp-dev
* commit 'ec5206c99694d263ac099bf2c37f8119f43f74f1':
LiveSession: do not drop seek request
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/httplive/LiveSession.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/media/libstagefright/httplive/LiveSession.cpp b/media/libstagefright/httplive/LiveSession.cpp index a289637..7a9a1a3 100644 --- a/media/libstagefright/httplive/LiveSession.cpp +++ b/media/libstagefright/httplive/LiveSession.cpp @@ -353,10 +353,6 @@ status_t LiveSession::seekTo(int64_t timeUs) { sp<AMessage> response; status_t err = msg->postAndAwaitResponse(&response); - uint32_t replyID; - CHECK(response == mSeekReply && 0 != mSeekReplyID); - mSeekReply.clear(); - mSeekReplyID = 0; return err; } @@ -382,12 +378,16 @@ void LiveSession::onMessageReceived(const sp<AMessage> &msg) { case kWhatSeek: { - CHECK(msg->senderAwaitsResponse(&mSeekReplyID)); + uint32_t seekReplyID; + CHECK(msg->senderAwaitsResponse(&seekReplyID)); + mSeekReplyID = seekReplyID; + mSeekReply = new AMessage; status_t err = onSeek(msg); - mSeekReply = new AMessage; - mSeekReply->setInt32("err", err); + if (err != OK) { + msg->post(50000); + } break; } @@ -422,7 +422,10 @@ void LiveSession::onMessageReceived(const sp<AMessage> &msg) { if (mSeekReplyID != 0) { CHECK(mSeekReply != NULL); + mSeekReply->setInt32("err", OK); mSeekReply->postReply(mSeekReplyID); + mSeekReplyID = 0; + mSeekReply.clear(); } } } @@ -1094,10 +1097,11 @@ status_t LiveSession::onSeek(const sp<AMessage> &msg) { CHECK(msg->findInt64("timeUs", &timeUs)); if (!mReconfigurationInProgress) { - changeConfiguration(timeUs, getBandwidthIndex()); + changeConfiguration(timeUs, mCurBandwidthIndex); + return OK; + } else { + return -EWOULDBLOCK; } - - return OK; } status_t LiveSession::getDuration(int64_t *durationUs) const { @@ -1254,7 +1258,10 @@ void LiveSession::changeConfiguration( if (mSeekReplyID != 0) { CHECK(mSeekReply != NULL); + mSeekReply->setInt32("err", OK); mSeekReply->postReply(mSeekReplyID); + mSeekReplyID = 0; + mSeekReply.clear(); } } } |