diff options
author | Andreas Huber <andih@google.com> | 2011-12-09 18:09:19 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-12-09 18:09:19 -0800 |
commit | aa5ba9a27f4c483ee116b7b296a681f4f8e23e62 (patch) | |
tree | 272b4fa8657fe153eed988e69d5253dd7e0015f7 /media/libstagefright | |
parent | e154d13b47d7a2bf5968a7c6070da15814d3c544 (diff) | |
parent | 62c54ce5b09bab16dfabf18cc1f2dc1d9b35acf8 (diff) | |
download | frameworks_av-aa5ba9a27f4c483ee116b7b296a681f4f8e23e62.zip frameworks_av-aa5ba9a27f4c483ee116b7b296a681f4f8e23e62.tar.gz frameworks_av-aa5ba9a27f4c483ee116b7b296a681f4f8e23e62.tar.bz2 |
am aa82c39b: am 0ba9380a: Merge "Fix Bitreader "putBits" implementation, make sure we emulate timestamps" into ics-mr1
* commit 'aa82c39bdb4ad9c1fdcb09f3bea11be5197d3ce6':
Fix Bitreader "putBits" implementation, make sure we emulate timestamps
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/foundation/ABitReader.cpp | 8 | ||||
-rw-r--r-- | media/libstagefright/rtsp/MyHandler.h | 14 |
2 files changed, 16 insertions, 6 deletions
diff --git a/media/libstagefright/foundation/ABitReader.cpp b/media/libstagefright/foundation/ABitReader.cpp index f07dd4f..5499c32 100644 --- a/media/libstagefright/foundation/ABitReader.cpp +++ b/media/libstagefright/foundation/ABitReader.cpp @@ -79,7 +79,13 @@ void ABitReader::skipBits(size_t n) { } void ABitReader::putBits(uint32_t x, size_t n) { - CHECK_LE(mNumBitsLeft + n, 32u); + CHECK_LE(n, 32u); + + while (mNumBitsLeft + n > 32) { + mNumBitsLeft -= 8; + --mData; + ++mSize; + } mReservoir = (mReservoir >> n) | (x << (32 - n)); mNumBitsLeft += n; diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index dd049c2..21ef298 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -1100,6 +1100,8 @@ struct MyHandler : public AHandler { float npt1, npt2; if (!ASessionDescription::parseNTPRange(val.c_str(), &npt1, &npt2)) { // This is a live stream and therefore not seekable. + + LOGI("This is a live stream"); return; } @@ -1386,12 +1388,14 @@ private: msg->setInt32("what", kWhatConnected); msg->post(); - for (size_t i = 0; i < mTracks.size(); ++i) { - TrackInfo *info = &mTracks.editItemAt(i); + if (mSeekable) { + for (size_t i = 0; i < mTracks.size(); ++i) { + TrackInfo *info = &mTracks.editItemAt(i); - postNormalPlayTimeMapping( - i, - info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs); + postNormalPlayTimeMapping( + i, + info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs); + } } mFirstAccessUnit = false; |