From ba32a8ddb8fc929ffe0002aeba559034aabbd7f2 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Mon, 2 Apr 2012 22:10:04 -0700 Subject: [PATCH] Fix an intermittent issue with HLS live streaming An uninitialized return code was causing intermittent playback failure during Widevine HLS live playback Change-Id: Ib45176e7f91e2b6ccf0eb4185c6d58d3be0229b4 related-to-bug: 6277231 --- proprietary/wvm/WVMExtractorImpl.cpp | 4 ++++ proprietary/wvm/WVMMediaSource.cpp | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/proprietary/wvm/WVMExtractorImpl.cpp b/proprietary/wvm/WVMExtractorImpl.cpp index fd7d1d6d..fc1bf12b 100644 --- a/proprietary/wvm/WVMExtractorImpl.cpp +++ b/proprietary/wvm/WVMExtractorImpl.cpp @@ -480,6 +480,10 @@ int64_t WVMExtractorImpl::getCachedDurationUs(status_t *finalStatus) { } else if (status != WV_Status_OK) { *finalStatus = ERROR_IO; } else { + if (mIsLiveStream) + *finalStatus = ERROR_END_OF_STREAM; + else + *finalStatus = OK; durationUs = (uint64_t)(secondsBuffered * 1000000LL); } diff --git a/proprietary/wvm/WVMMediaSource.cpp b/proprietary/wvm/WVMMediaSource.cpp index 5a02068c..ef75db16 100644 --- a/proprietary/wvm/WVMMediaSource.cpp +++ b/proprietary/wvm/WVMMediaSource.cpp @@ -345,9 +345,11 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options) break; #ifdef REQUIRE_SECURE_BUFFERS - ALOGD("buffer overflow"); - mediaBuf->release(); - return ERROR_IO; + if (!mIsLiveStream) { + ALOGD("buffer overflow"); + mediaBuf->release(); + return ERROR_IO; + } #endif //ALOGD("Resizing...");