summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/StreamingSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-11-29 11:57:35 -0800
committerAndreas Huber <andih@google.com>2011-11-29 11:59:10 -0800
commitbfcc8d8ab7c56bc013bd221a29e1ecf3a6390813 (patch)
tree0469bc8cc740ad84a42b502ba57e02b3e520748a /media/libmediaplayerservice/nuplayer/StreamingSource.cpp
parent7cafbb32999049873d4746ba83bd20c88abe6ce6 (diff)
downloadframeworks_av-bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813.zip
frameworks_av-bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813.tar.gz
frameworks_av-bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813.tar.bz2
Updated (internal) API for IStreamSource to signal discontinuities
Change-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96 related-to-bug: 5553055
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/StreamingSource.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/StreamingSource.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/nuplayer/StreamingSource.cpp b/media/libmediaplayerservice/nuplayer/StreamingSource.cpp
index f795654..2e63b3b 100644
--- a/media/libmediaplayerservice/nuplayer/StreamingSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/StreamingSource.cpp
@@ -63,17 +63,22 @@ status_t NuPlayer::StreamingSource::feedMoreTSData() {
mFinalResult = ERROR_END_OF_STREAM;
break;
} else if (n == INFO_DISCONTINUITY) {
- ATSParser::DiscontinuityType type = ATSParser::DISCONTINUITY_SEEK;
+ int32_t type = ATSParser::DISCONTINUITY_SEEK;
- int32_t formatChange;
+ int32_t mask;
if (extra != NULL
&& extra->findInt32(
- IStreamListener::kKeyFormatChange, &formatChange)
- && formatChange != 0) {
- type = ATSParser::DISCONTINUITY_FORMATCHANGE;
+ IStreamListener::kKeyDiscontinuityMask, &mask)) {
+ if (mask == 0) {
+ LOGE("Client specified an illegal discontinuity type.");
+ return ERROR_UNSUPPORTED;
+ }
+
+ type = mask;
}
- mTSParser->signalDiscontinuity(type, extra);
+ mTSParser->signalDiscontinuity(
+ (ATSParser::DiscontinuityType)type, extra);
} else if (n < 0) {
CHECK_EQ(n, -EWOULDBLOCK);
break;