Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75767ab7 authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Signal end of stream if no more fragments are going to be available." into jb-mr1-dev

parents b3e12a4d c7708555
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -144,7 +144,8 @@ struct FileSource : public Parser::Source {

Parser::Parser()
    : mBufferPos(0),
      mSuspended(false) {
      mSuspended(false),
      mFinalResult(OK) {
}

Parser::~Parser() {
@@ -292,6 +293,13 @@ void Parser::onMessageReceived(const sp<AMessage> &msg) {

            if (n < (ssize_t)needed) {
                ALOGI("%s", "Reached EOF");
                if (n < 0) {
                    mFinalResult = n;
                } else if (n == 0) {
                    mFinalResult = ERROR_END_OF_STREAM;
                } else {
                    mFinalResult = ERROR_IO;
                }
            } else {
                mBuffer->setRange(0, mBuffer->size() + n);
                (new AMessage(kWhatProceed, id()))->post();
@@ -593,6 +601,10 @@ status_t Parser::getSample(
        TrackInfo *info, sp<TrackFragment> *fragment, SampleInfo *sampleInfo) {
    for (;;) {
        if (info->mFragments.empty()) {
            if (mFinalResult != OK) {
                return mFinalResult;
            }

            resumeIfNecessary();
            return -EWOULDBLOCK;
        }
+2 −0
Original line number Diff line number Diff line
@@ -157,6 +157,8 @@ private:

    uint32_t mCurrentTrackID;

    status_t mFinalResult;

    TrackFragmentHeaderInfo mTrackFragmentHeaderInfo;

    status_t onProceed();