diff options
author | Marco Nelissen <marcone@google.com> | 2015-04-15 14:33:39 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-04-15 14:33:39 -0700 |
commit | be9634d071e79b72a42a4504f64eda9e2a0bceb8 (patch) | |
tree | 5020a5acbb4ce3b522d8a516ee2cf5dbf5680bf4 /media/libstagefright/mpeg2ts/ATSParser.cpp | |
parent | 0958e926fef85d7e1e0eb08f330ff46218b72822 (diff) | |
download | frameworks_av-be9634d071e79b72a42a4504f64eda9e2a0bceb8.zip frameworks_av-be9634d071e79b72a42a4504f64eda9e2a0bceb8.tar.gz frameworks_av-be9634d071e79b72a42a4504f64eda9e2a0bceb8.tar.bz2 |
Signal EOS at end of mpeg video to flush out final sample
Change-Id: I27196a4a4b7fe37da52d3ee99da8cb80294d36d0
Diffstat (limited to 'media/libstagefright/mpeg2ts/ATSParser.cpp')
-rw-r--r-- | media/libstagefright/mpeg2ts/ATSParser.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/media/libstagefright/mpeg2ts/ATSParser.cpp b/media/libstagefright/mpeg2ts/ATSParser.cpp index 482ccff..1eae6cf 100644 --- a/media/libstagefright/mpeg2ts/ATSParser.cpp +++ b/media/libstagefright/mpeg2ts/ATSParser.cpp @@ -136,6 +136,7 @@ private: sp<ABuffer> mBuffer; sp<AnotherPacketSource> mSource; bool mPayloadStarted; + bool mEOSReached; uint64_t mPrevPTS; @@ -493,6 +494,7 @@ ATSParser::Stream::Stream( mPCR_PID(PCR_PID), mExpectedContinuityCounter(-1), mPayloadStarted(false), + mEOSReached(false), mPrevPTS(0), mQueue(NULL) { switch (mStreamType) { @@ -692,6 +694,8 @@ void ATSParser::Stream::signalEOS(status_t finalResult) { if (mSource != NULL) { mSource->signalEOS(finalResult); } + mEOSReached = true; + flush(); } status_t ATSParser::Stream::parsePES(ABitReader *br) { @@ -902,6 +906,10 @@ void ATSParser::Stream::onPayloadData( status_t err = mQueue->appendData(data, size, timeUs); + if (mEOSReached) { + mQueue->signalEOS(); + } + if (err != OK) { return; } |