summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-01-29 00:39:06 -0800
committerLajos Molnar <lajos@google.com>2015-01-29 00:39:06 -0800
commit46246e5b1725a8a1868dbd9f37fffe33c19672fc (patch)
treef6f882212bd117b4b910fc0c2988cd964f3a80d2
parent9c8bce57d37e36f473499f064e787e6ba7fed4ed (diff)
parent59d1d0100e56bc6749c2eccf3b4b06904084944c (diff)
downloadframeworks_av-46246e5b1725a8a1868dbd9f37fffe33c19672fc.zip
frameworks_av-46246e5b1725a8a1868dbd9f37fffe33c19672fc.tar.gz
frameworks_av-46246e5b1725a8a1868dbd9f37fffe33c19672fc.tar.bz2
resolved conflicts for merge of 59d1d010 to lmp-mr1-dev-plus-aosp
Change-Id: I52e17685b3aa058d6c6b0c023659231fa00a8f71
-rw-r--r--media/libstagefright/httplive/PlaylistFetcher.cpp6
-rw-r--r--media/libstagefright/mpeg2ts/AnotherPacketSource.cpp7
2 files changed, 10 insertions, 3 deletions
diff --git a/media/libstagefright/httplive/PlaylistFetcher.cpp b/media/libstagefright/httplive/PlaylistFetcher.cpp
index f66bba3..3f05208 100644
--- a/media/libstagefright/httplive/PlaylistFetcher.cpp
+++ b/media/libstagefright/httplive/PlaylistFetcher.cpp
@@ -50,7 +50,7 @@ namespace android {
const int64_t PlaylistFetcher::kMinBufferedDurationUs = 10000000ll;
const int64_t PlaylistFetcher::kMaxMonitorDelayUs = 3000000ll;
const int32_t PlaylistFetcher::kDownloadBlockSize = 2048;
-const int32_t PlaylistFetcher::kNumSkipFrames = 10;
+const int32_t PlaylistFetcher::kNumSkipFrames = 5;
PlaylistFetcher::PlaylistFetcher(
const sp<AMessage> &notify,
@@ -560,7 +560,7 @@ status_t PlaylistFetcher::onResumeUntil(const sp<AMessage> &msg) {
// Don't resume if we would stop within a resume threshold.
int32_t discontinuitySeq;
int64_t latestTimeUs = 0, stopTimeUs = 0;
- sp<AMessage> latestMeta = packetSource->getLatestDequeuedMeta();
+ sp<AMessage> latestMeta = packetSource->getLatestEnqueuedMeta();
if (latestMeta != NULL
&& latestMeta->findInt32("discontinuitySeq", &discontinuitySeq)
&& discontinuitySeq == mDiscontinuitySeq
@@ -1677,7 +1677,7 @@ void PlaylistFetcher::updateDuration() {
int64_t PlaylistFetcher::resumeThreshold(const sp<AMessage> &msg) {
int64_t durationUs;
- if (msg->findInt64("durationUs", &durationUs)) {
+ if (msg->findInt64("durationUs", &durationUs) && durationUs > 0) {
return kNumSkipFrames * durationUs;
}
diff --git a/media/libstagefright/mpeg2ts/AnotherPacketSource.cpp b/media/libstagefright/mpeg2ts/AnotherPacketSource.cpp
index 0354a2d..f266fe7 100644
--- a/media/libstagefright/mpeg2ts/AnotherPacketSource.cpp
+++ b/media/libstagefright/mpeg2ts/AnotherPacketSource.cpp
@@ -221,9 +221,16 @@ void AnotherPacketSource::queueAccessUnit(const sp<ABuffer> &buffer) {
mLatestEnqueuedMeta = buffer->meta()->dup();
} else {
int64_t latestTimeUs = 0;
+ int64_t frameDeltaUs = 0;
CHECK(mLatestEnqueuedMeta->findInt64("timeUs", &latestTimeUs));
if (lastQueuedTimeUs > latestTimeUs) {
mLatestEnqueuedMeta = buffer->meta()->dup();
+ frameDeltaUs = lastQueuedTimeUs - latestTimeUs;
+ mLatestEnqueuedMeta->setInt64("durationUs", frameDeltaUs);
+ } else if (!mLatestEnqueuedMeta->findInt64("durationUs", &frameDeltaUs)) {
+ // For B frames
+ frameDeltaUs = latestTimeUs - lastQueuedTimeUs;
+ mLatestEnqueuedMeta->setInt64("durationUs", frameDeltaUs);
}
}
}