summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-11-29 16:33:02 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-11-29 16:33:02 -0800
commitc089d02cf2bddf1bba6eaa2b2fcce149dc44633e (patch)
treeb1370ec48d21e9052eb0b040814f91638ebc3a18 /media
parenteca36b5a1759970bc3d0373d72d6fec7c9b7e944 (diff)
parent6bf045c85526312b198733ac8113cc213c8d79c9 (diff)
downloadframeworks_av-c089d02cf2bddf1bba6eaa2b2fcce149dc44633e.zip
frameworks_av-c089d02cf2bddf1bba6eaa2b2fcce149dc44633e.tar.gz
frameworks_av-c089d02cf2bddf1bba6eaa2b2fcce149dc44633e.tar.bz2
am 074133b2: am 351143fb: Merge "Updated (internal) API for IStreamSource to signal discontinuities" into ics-mr1
* commit '074133b260f8d12e484e93b9aa5a33a4983b7349': Updated (internal) API for IStreamSource to signal discontinuities
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/IStreamSource.cpp2
-rw-r--r--media/libmediaplayerservice/nuplayer/StreamingSource.cpp17
2 files changed, 12 insertions, 7 deletions
diff --git a/media/libmedia/IStreamSource.cpp b/media/libmedia/IStreamSource.cpp
index b311f35..078be94 100644
--- a/media/libmedia/IStreamSource.cpp
+++ b/media/libmedia/IStreamSource.cpp
@@ -30,7 +30,7 @@ namespace android {
const char *const IStreamListener::kKeyResumeAtPTS = "resume-at-PTS";
// static
-const char *const IStreamListener::kKeyFormatChange = "format-change";
+const char *const IStreamListener::kKeyDiscontinuityMask = "discontinuity-mask";
enum {
// IStreamSource
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;