diff options
author | Chong Zhang <chz@google.com> | 2013-09-25 17:27:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-25 17:27:15 +0000 |
commit | 58dd07863571951408b67fa0a7f17cb23606fb1c (patch) | |
tree | c99b39666a05e3819ab1653957b11f8707beecd8 /media | |
parent | d2ac3144e201398340cc5b9bb36e5efe39edd9eb (diff) | |
parent | ffd5687c9ece8e28779793a20f06f99c7199ce44 (diff) | |
download | frameworks_av-58dd07863571951408b67fa0a7f17cb23606fb1c.zip frameworks_av-58dd07863571951408b67fa0a7f17cb23606fb1c.tar.gz frameworks_av-58dd07863571951408b67fa0a7f17cb23606fb1c.tar.bz2 |
Merge "Send kWhatConnected in onTimeUpdate() before first access unit" into klp-dev
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/rtsp/MyHandler.h | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index 946f602..f4b5846 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -1681,6 +1681,26 @@ private: return true; } + void handleFirstAccessUnit() { + if (mFirstAccessUnit) { + sp<AMessage> msg = mNotify->dup(); + msg->setInt32("what", kWhatConnected); + msg->post(); + + if (mSeekable) { + for (size_t i = 0; i < mTracks.size(); ++i) { + TrackInfo *info = &mTracks.editItemAt(i); + + postNormalPlayTimeMapping( + i, + info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs); + } + } + + mFirstAccessUnit = false; + } + } + void onTimeUpdate(int32_t trackIndex, uint32_t rtpTime, uint64_t ntpTime) { ALOGV("onTimeUpdate track %d, rtpTime = 0x%08x, ntpTime = 0x%016llx", trackIndex, rtpTime, ntpTime); @@ -1712,6 +1732,8 @@ private: } } if (mAllTracksHaveTime && dataReceivedOnAllChannels()) { + handleFirstAccessUnit(); + // Time is now established, lets start timestamping immediately for (size_t i = 0; i < mTracks.size(); ++i) { TrackInfo *trackInfo = &mTracks.editItemAt(i); @@ -1745,23 +1767,7 @@ private: return; } - if (mFirstAccessUnit) { - sp<AMessage> msg = mNotify->dup(); - msg->setInt32("what", kWhatConnected); - msg->post(); - - if (mSeekable) { - for (size_t i = 0; i < mTracks.size(); ++i) { - TrackInfo *info = &mTracks.editItemAt(i); - - postNormalPlayTimeMapping( - i, - info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs); - } - } - - mFirstAccessUnit = false; - } + handleFirstAccessUnit(); TrackInfo *track = &mTracks.editItemAt(trackIndex); |