diff options
author | Andreas Huber <andih@google.com> | 2011-11-29 11:57:35 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2011-11-29 11:59:10 -0800 |
commit | bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813 (patch) | |
tree | 0469bc8cc740ad84a42b502ba57e02b3e520748a /media/libmediaplayerservice/nuplayer/StreamingSource.cpp | |
parent | 7cafbb32999049873d4746ba83bd20c88abe6ce6 (diff) | |
download | frameworks_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.cpp | 17 |
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; |