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

Commit a7a3bbdf authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Check actual read bytes for TS packets" into qt-qpr1-dev am: 8f72d008

Change-Id: I17f76705348ae27450429770b31d346154c2fe5b
parents 573c30d8 8f72d008
Loading
Loading
Loading
Loading
+12 −9
Original line number Original line Diff line number Diff line
@@ -130,21 +130,24 @@ void NuPlayer::StreamingSource::onReadBuffer() {
        } else if (n < 0) {
        } else if (n < 0) {
            break;
            break;
        } else {
        } else {
            if (buffer[0] == 0x00) {
            if (buffer[0] == 0x00) { // OK to access buffer[0] since n must be > 0 here
                // XXX legacy
                // XXX legacy


                if (extra == NULL) {
                if (extra == NULL) {
                    extra = new AMessage;
                    extra = new AMessage;
                }
                }


                uint8_t type = buffer[1];
                uint8_t type = 0;
                if (n > 1) {
                    type = buffer[1];


                if (type & 2) {
                    if ((type & 2) && (n >= 2 + sizeof(int64_t))) {
                        int64_t mediaTimeUs;
                        int64_t mediaTimeUs;
                        memcpy(&mediaTimeUs, &buffer[2], sizeof(mediaTimeUs));
                        memcpy(&mediaTimeUs, &buffer[2], sizeof(mediaTimeUs));


                        extra->setInt64(kATSParserKeyMediaTimeUs, mediaTimeUs);
                        extra->setInt64(kATSParserKeyMediaTimeUs, mediaTimeUs);
                    }
                    }
                }


                mTSParser->signalDiscontinuity(
                mTSParser->signalDiscontinuity(
                        ((type & 1) == 0)
                        ((type & 1) == 0)
@@ -152,7 +155,7 @@ void NuPlayer::StreamingSource::onReadBuffer() {
                                : ATSParser::DISCONTINUITY_FORMATCHANGE,
                                : ATSParser::DISCONTINUITY_FORMATCHANGE,
                        extra);
                        extra);
            } else {
            } else {
                status_t err = mTSParser->feedTSPacket(buffer, sizeof(buffer));
                status_t err = mTSParser->feedTSPacket(buffer, n);


                if (err != OK) {
                if (err != OK) {
                    ALOGE("TS Parser returned error %d", err);
                    ALOGE("TS Parser returned error %d", err);