From b33d2ac90cfce0fe6db8c3e979e7ae2bbfc28163 Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 1 Jun 2011 15:27:20 -0700 Subject: Do not call getEstimatedBandwidth if the streaming is not HTTP-based Change-Id: I4ab6c57e5b2b989676b8dfbb98402d10a5752261 --- media/libstagefright/NuCachedSource2.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'media/libstagefright/NuCachedSource2.cpp') diff --git a/media/libstagefright/NuCachedSource2.cpp b/media/libstagefright/NuCachedSource2.cpp index b2ed427..77a6602 100644 --- a/media/libstagefright/NuCachedSource2.cpp +++ b/media/libstagefright/NuCachedSource2.cpp @@ -203,13 +203,19 @@ NuCachedSource2::~NuCachedSource2() { } status_t NuCachedSource2::getEstimatedBandwidthKbps(int32_t *kbps) { - HTTPBase* source = static_cast(mSource.get()); - return source->getEstimatedBandwidthKbps(kbps); + if (mSource->flags() & kIsHTTPBasedSource) { + HTTPBase* source = static_cast(mSource.get()); + return source->getEstimatedBandwidthKbps(kbps); + } + return ERROR_UNSUPPORTED; } status_t NuCachedSource2::setCacheStatCollectFreq(int32_t freqMs) { - HTTPBase *source = static_cast(mSource.get()); - return source->setBandwidthStatCollectFreq(freqMs); + if (mSource->flags() & kIsHTTPBasedSource) { + HTTPBase *source = static_cast(mSource.get()); + return source->setBandwidthStatCollectFreq(freqMs); + } + return ERROR_UNSUPPORTED; } status_t NuCachedSource2::initCheck() const { @@ -221,7 +227,9 @@ status_t NuCachedSource2::getSize(off64_t *size) { } uint32_t NuCachedSource2::flags() { - return (mSource->flags() & ~kWantsPrefetching) | kIsCachingDataSource; + // Remove HTTP related flags since NuCachedSource2 is not HTTP-based. + uint32_t flags = mSource->flags() & ~(kWantsPrefetching | kIsHTTPBasedSource); + return (flags | kIsCachingDataSource); } void NuCachedSource2::onMessageReceived(const sp &msg) { -- cgit v1.1