diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2013-07-08 19:35:13 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-07-08 19:35:13 +0000 |
commit | c158971f13ea4f496dc7836c698f1220fa4e4bba (patch) | |
tree | a302e54672cb84f5f8906670cf4f8a5cbfdf00af /media/libstagefright | |
parent | 365ed394c4135d9d42082c85638c076aed4bd156 (diff) | |
parent | bbbf9c4552402ab18b255f4058e9e6e506f3f106 (diff) | |
download | frameworks_av-c158971f13ea4f496dc7836c698f1220fa4e4bba.zip frameworks_av-c158971f13ea4f496dc7836c698f1220fa4e4bba.tar.gz frameworks_av-c158971f13ea4f496dc7836c698f1220fa4e4bba.tar.bz2 |
Merge "Store rtsp accessunit until PLAY response parsed"
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/rtsp/MyHandler.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index b2f0e5e..88b3e82 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -135,7 +135,8 @@ struct MyHandler : public AHandler { mReceivedFirstRTPPacket(false), mSeekable(false), mKeepAliveTimeoutUs(kDefaultKeepAliveTimeoutUs), - mKeepAliveGeneration(0) { + mKeepAliveGeneration(0), + mPlayResponseParsed(false) { mNetLooper->setName("rtsp net"); mNetLooper->start(false /* runOnCallingThread */, false /* canCallJava */, @@ -1093,6 +1094,7 @@ struct MyHandler : public AHandler { } void parsePlayResponse(const sp<ARTSPResponse> &response) { + mPlayResponseParsed = true; mSeekable = false; if (mTracks.size() == 0) { ALOGV("parsePlayResponse: late packets ignored."); @@ -1244,6 +1246,8 @@ private: Vector<TrackInfo> mTracks; + bool mPlayResponseParsed; + void setupTrack(size_t index) { sp<APacketSource> source = new APacketSource(mSessionDesc, index); @@ -1415,6 +1419,13 @@ private: int32_t trackIndex, const sp<ABuffer> &accessUnit) { ALOGV("onAccessUnitComplete track %d", trackIndex); + if(!mPlayResponseParsed){ + ALOGI("play response is not parsed, storing accessunit"); + TrackInfo *track = &mTracks.editItemAt(trackIndex); + track->mPackets.push_back(accessUnit); + return; + } + if (mFirstAccessUnit) { sp<AMessage> msg = mNotify->dup(); msg->setInt32("what", kWhatConnected); |