Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -663,6 +663,19 @@ void NuPlayer::renderBuffer(bool audio, const sp<AMessage> &msg) { sp<AMessage> reply; CHECK(msg->findMessage("reply", &reply)); if (IsFlushingState(audio ? mFlushingAudio : mFlushingVideo)) { // We're currently attempting to flush the decoder, in order // to complete this, the decoder wants all its buffers back, // so we don't want any output buffers it sent us (from before // we initiated the flush) to be stuck in the renderer's queue. LOGV("we're still flushing the %s decoder, sending its output buffer" " right back.", audio ? "audio" : "video"); reply->post(); return; } sp<RefBase> obj; CHECK(msg->findObject("buffer", &obj)); Loading media/libstagefright/mpeg2ts/ATSParser.cpp +13 −32 Original line number Diff line number Diff line Loading @@ -111,8 +111,6 @@ private: sp<ABuffer> mBuffer; sp<AnotherPacketSource> mSource; bool mPayloadStarted; DiscontinuityType mPendingDiscontinuity; sp<AMessage> mPendingDiscontinuityExtra; ElementaryStreamQueue *mQueue; Loading @@ -125,9 +123,6 @@ private: void extractAACFrames(const sp<ABuffer> &buffer); void deferDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra); DISALLOW_EVIL_CONSTRUCTORS(Stream); }; Loading Loading @@ -347,12 +342,8 @@ ATSParser::Stream::Stream( : mProgram(program), mElementaryPID(elementaryPID), mStreamType(streamType), mBuffer(new ABuffer(192 * 1024)), mPayloadStarted(false), mPendingDiscontinuity(DISCONTINUITY_NONE), mQueue(NULL) { mBuffer->setRange(0, 0); switch (mStreamType) { case STREAMTYPE_H264: mQueue = new ElementaryStreamQueue(ElementaryStreamQueue::H264); Loading Loading @@ -382,6 +373,11 @@ ATSParser::Stream::Stream( } LOGV("new stream PID 0x%02x, type 0x%02x", elementaryPID, streamType); if (mQueue != NULL) { mBuffer = new ABuffer(192 * 1024); mBuffer->setRange(0, 0); } } ATSParser::Stream::~Stream() { Loading @@ -391,6 +387,10 @@ ATSParser::Stream::~Stream() { void ATSParser::Stream::parse( unsigned payload_unit_start_indicator, ABitReader *br) { if (mQueue == NULL) { return; } if (payload_unit_start_indicator) { if (mPayloadStarted) { // Otherwise we run the danger of receiving the trailing bytes Loading Loading @@ -429,6 +429,10 @@ void ATSParser::Stream::parse( void ATSParser::Stream::signalDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra) { if (mQueue == NULL) { return; } mPayloadStarted = false; mBuffer->setRange(0, 0); Loading @@ -453,8 +457,6 @@ void ATSParser::Stream::signalDiscontinuity( if (mSource != NULL) { mSource->queueDiscontinuity(type, extra); } else { deferDiscontinuity(type, extra); } break; } Loading @@ -465,15 +467,6 @@ void ATSParser::Stream::signalDiscontinuity( } } void ATSParser::Stream::deferDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra) { if (type > mPendingDiscontinuity) { // Only upgrade discontinuities. mPendingDiscontinuity = type; mPendingDiscontinuityExtra = extra; } } void ATSParser::Stream::signalEOS(status_t finalResult) { if (mSource != NULL) { mSource->signalEOS(finalResult); Loading Loading @@ -658,10 +651,6 @@ void ATSParser::Stream::onPayloadData( const uint8_t *data, size_t size) { LOGV("onPayloadData mStreamType=0x%02x", mStreamType); if (mQueue == NULL) { return; } CHECK(PTS_DTS_flags == 2 || PTS_DTS_flags == 3); int64_t timeUs = mProgram->convertPTSToTimestamp(PTS); Loading @@ -681,14 +670,6 @@ void ATSParser::Stream::onPayloadData( mElementaryPID, mStreamType); mSource = new AnotherPacketSource(meta); if (mPendingDiscontinuity != DISCONTINUITY_NONE) { mSource->queueDiscontinuity( mPendingDiscontinuity, mPendingDiscontinuityExtra); mPendingDiscontinuity = DISCONTINUITY_NONE; mPendingDiscontinuityExtra.clear(); } mSource->queueAccessUnit(accessUnit); } } else if (mQueue->getFormat() != NULL) { Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -663,6 +663,19 @@ void NuPlayer::renderBuffer(bool audio, const sp<AMessage> &msg) { sp<AMessage> reply; CHECK(msg->findMessage("reply", &reply)); if (IsFlushingState(audio ? mFlushingAudio : mFlushingVideo)) { // We're currently attempting to flush the decoder, in order // to complete this, the decoder wants all its buffers back, // so we don't want any output buffers it sent us (from before // we initiated the flush) to be stuck in the renderer's queue. LOGV("we're still flushing the %s decoder, sending its output buffer" " right back.", audio ? "audio" : "video"); reply->post(); return; } sp<RefBase> obj; CHECK(msg->findObject("buffer", &obj)); Loading
media/libstagefright/mpeg2ts/ATSParser.cpp +13 −32 Original line number Diff line number Diff line Loading @@ -111,8 +111,6 @@ private: sp<ABuffer> mBuffer; sp<AnotherPacketSource> mSource; bool mPayloadStarted; DiscontinuityType mPendingDiscontinuity; sp<AMessage> mPendingDiscontinuityExtra; ElementaryStreamQueue *mQueue; Loading @@ -125,9 +123,6 @@ private: void extractAACFrames(const sp<ABuffer> &buffer); void deferDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra); DISALLOW_EVIL_CONSTRUCTORS(Stream); }; Loading Loading @@ -347,12 +342,8 @@ ATSParser::Stream::Stream( : mProgram(program), mElementaryPID(elementaryPID), mStreamType(streamType), mBuffer(new ABuffer(192 * 1024)), mPayloadStarted(false), mPendingDiscontinuity(DISCONTINUITY_NONE), mQueue(NULL) { mBuffer->setRange(0, 0); switch (mStreamType) { case STREAMTYPE_H264: mQueue = new ElementaryStreamQueue(ElementaryStreamQueue::H264); Loading Loading @@ -382,6 +373,11 @@ ATSParser::Stream::Stream( } LOGV("new stream PID 0x%02x, type 0x%02x", elementaryPID, streamType); if (mQueue != NULL) { mBuffer = new ABuffer(192 * 1024); mBuffer->setRange(0, 0); } } ATSParser::Stream::~Stream() { Loading @@ -391,6 +387,10 @@ ATSParser::Stream::~Stream() { void ATSParser::Stream::parse( unsigned payload_unit_start_indicator, ABitReader *br) { if (mQueue == NULL) { return; } if (payload_unit_start_indicator) { if (mPayloadStarted) { // Otherwise we run the danger of receiving the trailing bytes Loading Loading @@ -429,6 +429,10 @@ void ATSParser::Stream::parse( void ATSParser::Stream::signalDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra) { if (mQueue == NULL) { return; } mPayloadStarted = false; mBuffer->setRange(0, 0); Loading @@ -453,8 +457,6 @@ void ATSParser::Stream::signalDiscontinuity( if (mSource != NULL) { mSource->queueDiscontinuity(type, extra); } else { deferDiscontinuity(type, extra); } break; } Loading @@ -465,15 +467,6 @@ void ATSParser::Stream::signalDiscontinuity( } } void ATSParser::Stream::deferDiscontinuity( DiscontinuityType type, const sp<AMessage> &extra) { if (type > mPendingDiscontinuity) { // Only upgrade discontinuities. mPendingDiscontinuity = type; mPendingDiscontinuityExtra = extra; } } void ATSParser::Stream::signalEOS(status_t finalResult) { if (mSource != NULL) { mSource->signalEOS(finalResult); Loading Loading @@ -658,10 +651,6 @@ void ATSParser::Stream::onPayloadData( const uint8_t *data, size_t size) { LOGV("onPayloadData mStreamType=0x%02x", mStreamType); if (mQueue == NULL) { return; } CHECK(PTS_DTS_flags == 2 || PTS_DTS_flags == 3); int64_t timeUs = mProgram->convertPTSToTimestamp(PTS); Loading @@ -681,14 +670,6 @@ void ATSParser::Stream::onPayloadData( mElementaryPID, mStreamType); mSource = new AnotherPacketSource(meta); if (mPendingDiscontinuity != DISCONTINUITY_NONE) { mSource->queueDiscontinuity( mPendingDiscontinuity, mPendingDiscontinuityExtra); mPendingDiscontinuity = DISCONTINUITY_NONE; mPendingDiscontinuityExtra.clear(); } mSource->queueAccessUnit(accessUnit); } } else if (mQueue->getFormat() != NULL) { Loading