summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-09-27 12:12:25 -0700
committerAndreas Huber <andih@google.com>2011-09-27 12:13:37 -0700
commiteac68baf095aeef54865c28b6888924dc6295cbd (patch)
treea1ca9c5de638d21e07be1aab9f25d01e118597e7 /media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
parent797ab6072402b12721dc226a9ebde3546e7640e9 (diff)
downloadframeworks_av-eac68baf095aeef54865c28b6888924dc6295cbd.zip
frameworks_av-eac68baf095aeef54865c28b6888924dc6295cbd.tar.gz
frameworks_av-eac68baf095aeef54865c28b6888924dc6295cbd.tar.bz2
Signal an appropriate error even if there are no active streams yet.
Change-Id: I3ac1053ad288558b62ee18056dfd0a9ce0da8f49 related-to-bug: 5372901
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
index fb14204..079f6fa 100644
--- a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
@@ -41,7 +41,7 @@ NuPlayer::HTTPLiveSource::HTTPLiveSource(
mUIDValid(uidValid),
mUID(uid),
mFlags(0),
- mEOS(false),
+ mFinalResult(OK),
mOffset(0) {
if (headers) {
mExtraHeaders = *headers;
@@ -95,9 +95,9 @@ sp<MetaData> NuPlayer::HTTPLiveSource::getFormat(bool audio) {
return source->getFormat();
}
-bool NuPlayer::HTTPLiveSource::feedMoreTSData() {
- if (mEOS) {
- return false;
+status_t NuPlayer::HTTPLiveSource::feedMoreTSData() {
+ if (mFinalResult != OK) {
+ return mFinalResult;
}
sp<LiveDataSource> source =
@@ -111,12 +111,12 @@ bool NuPlayer::HTTPLiveSource::feedMoreTSData() {
break;
} else if (n < 0) {
if (n != ERROR_END_OF_STREAM) {
- LOGI("input data EOS reached, error %d", n);
+ LOGI("input data EOS reached, error %ld", n);
} else {
LOGI("input data EOS reached.");
}
mTSParser->signalEOS(n);
- mEOS = true;
+ mFinalResult = n;
break;
} else {
if (buffer[0] == 0x00) {
@@ -133,7 +133,7 @@ bool NuPlayer::HTTPLiveSource::feedMoreTSData() {
if (err != OK) {
LOGE("TS Parser returned error %d", err);
mTSParser->signalEOS(err);
- mEOS = true;
+ mFinalResult = err;
break;
}
}
@@ -142,7 +142,7 @@ bool NuPlayer::HTTPLiveSource::feedMoreTSData() {
}
}
- return true;
+ return OK;
}
status_t NuPlayer::HTTPLiveSource::dequeueAccessUnit(
@@ -172,7 +172,7 @@ status_t NuPlayer::HTTPLiveSource::getDuration(int64_t *durationUs) {
status_t NuPlayer::HTTPLiveSource::seekTo(int64_t seekTimeUs) {
// We need to make sure we're not seeking until we have seen the very first
// PTS timestamp in the whole stream (from the beginning of the stream).
- while (!mTSParser->PTSTimeDeltaEstablished() && feedMoreTSData()) {
+ while (!mTSParser->PTSTimeDeltaEstablished() && feedMoreTSData() == OK) {
usleep(100000);
}