diff options
author | Robert Shih <robertshih@google.com> | 2015-05-11 18:35:36 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-11 18:35:37 +0000 |
commit | a540058ec00b6d147f40a7cdcf6f47acbd70f6c9 (patch) | |
tree | edb283551cedb1823b222dc89fe6deff05ec0f04 | |
parent | 804a77d1045c6c4023f73a0975a09025b2e8eef2 (diff) | |
parent | aabbdc7401ae24a4199f12a283985deb648673c0 (diff) | |
download | frameworks_av-a540058ec00b6d147f40a7cdcf6f47acbd70f6c9.zip frameworks_av-a540058ec00b6d147f40a7cdcf6f47acbd70f6c9.tar.gz frameworks_av-a540058ec00b6d147f40a7cdcf6f47acbd70f6c9.tar.bz2 |
Merge "HLS: invoke signalEOS on ATSParser to flush out final samples" into mnc-dev
-rw-r--r-- | media/libstagefright/httplive/PlaylistFetcher.cpp | 10 | ||||
-rw-r--r-- | media/libstagefright/mpeg2ts/ATSParser.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/mpeg2ts/ESQueue.cpp | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/media/libstagefright/httplive/PlaylistFetcher.cpp b/media/libstagefright/httplive/PlaylistFetcher.cpp index 5a0deec..4851528 100644 --- a/media/libstagefright/httplive/PlaylistFetcher.cpp +++ b/media/libstagefright/httplive/PlaylistFetcher.cpp @@ -1082,6 +1082,16 @@ bool PlaylistFetcher::initDownloadState( mSeqNumber, firstSeqNumberInPlaylist, firstSeqNumberInPlaylist + (int32_t)mPlaylist->size() - 1); + if (mTSParser != NULL) { + mTSParser->signalEOS(ERROR_END_OF_STREAM); + // Use an empty buffer; we don't have any new data, just want to extract + // potential new access units after flush. Reset mSeqNumber to + // lastSeqNumberInPlaylist such that we set the correct access unit + // properties in extractAndQueueAccessUnitsFromTs. + sp<ABuffer> buffer = new ABuffer(0); + mSeqNumber = lastSeqNumberInPlaylist; + extractAndQueueAccessUnitsFromTs(buffer); + } notifyError(ERROR_END_OF_STREAM); } else { // It's possible that we were never able to download the playlist. diff --git a/media/libstagefright/mpeg2ts/ATSParser.cpp b/media/libstagefright/mpeg2ts/ATSParser.cpp index 0d071b2..e8b2219 100644 --- a/media/libstagefright/mpeg2ts/ATSParser.cpp +++ b/media/libstagefright/mpeg2ts/ATSParser.cpp @@ -746,6 +746,7 @@ void ATSParser::Stream::signalDiscontinuity( } mPayloadStarted = false; + mEOSReached = false; mBuffer->setRange(0, 0); bool clearFormat = false; diff --git a/media/libstagefright/mpeg2ts/ESQueue.cpp b/media/libstagefright/mpeg2ts/ESQueue.cpp index 7b5b46a..baf3b15 100644 --- a/media/libstagefright/mpeg2ts/ESQueue.cpp +++ b/media/libstagefright/mpeg2ts/ESQueue.cpp @@ -56,6 +56,8 @@ void ElementaryStreamQueue::clear(bool clearFormat) { if (clearFormat) { mFormat.clear(); } + + mEOSReached = false; } // Parse AC3 header assuming the current ptr is start position of syncframe, |