From 79971c747e62cad50359286f18dee0c4de5829da Mon Sep 17 00:00:00 2001 From: Apurupa Pattapu Date: Tue, 14 Oct 2014 15:05:50 -0700 Subject: httplive: Dont resume if we have almost fetched till stop time - Use the last enqueued instead of last dequeued time in ResumeUntil. - Set duration in access unit meta as timestamp difference between the last two queued access units. Bug: 18821145 Change-Id: If53ddee1d87775905a6d4f11a6219fe66f498450 --- media/libstagefright/mpeg2ts/AnotherPacketSource.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'media/libstagefright/mpeg2ts') 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 &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); } } } -- cgit v1.1