diff options
author | Andreas Huber <andih@google.com> | 2010-09-01 15:05:28 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-09-01 15:05:28 -0700 |
commit | c9e894872c298b25fe9d74e68aa1e7287a541ac3 (patch) | |
tree | 3b5eba501373e765f359e83e3102af109b0ccd1a /media/libstagefright/rtsp/ARTSPController.cpp | |
parent | bcbe5af62aad9d1ef64f799fcde58ac9a8adace8 (diff) | |
download | frameworks_av-c9e894872c298b25fe9d74e68aa1e7287a541ac3.zip frameworks_av-c9e894872c298b25fe9d74e68aa1e7287a541ac3.tar.gz frameworks_av-c9e894872c298b25fe9d74e68aa1e7287a541ac3.tar.bz2 |
Better support for buffered streaming of rtsp content, if buffer drops below a certain threshold we will temporarily pause playback until we have sufficient data.
Change-Id: Ice8564e902e48c89c9c00f6651c5504b3c41fcad
related-to-bug: 2556656
Diffstat (limited to 'media/libstagefright/rtsp/ARTSPController.cpp')
-rw-r--r-- | media/libstagefright/rtsp/ARTSPController.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/media/libstagefright/rtsp/ARTSPController.cpp b/media/libstagefright/rtsp/ARTSPController.cpp index a89946b..4c53639 100644 --- a/media/libstagefright/rtsp/ARTSPController.cpp +++ b/media/libstagefright/rtsp/ARTSPController.cpp @@ -143,4 +143,26 @@ int64_t ARTSPController::getNormalPlayTimeUs() { return mHandler->getNormalPlayTimeUs(); } +int64_t ARTSPController::getQueueDurationUs(bool *eos) { + *eos = true; + + int64_t minQueuedDurationUs = 0; + for (size_t i = 0; i < mHandler->countTracks(); ++i) { + sp<APacketSource> source = mHandler->getPacketSource(i); + + bool newEOS; + int64_t queuedDurationUs = source->getQueueDurationUs(&newEOS); + + if (!newEOS) { + *eos = false; + } + + if (i == 0 || queuedDurationUs < minQueuedDurationUs) { + minQueuedDurationUs = queuedDurationUs; + } + } + + return minQueuedDurationUs; +} + } // namespace android |