keep tx3g{Buffer,Size,Filled} in sync

wasn't clearing size/filled when we cleared buffer.

Bug: 151159638
Test: poc, but it didn't fail either before or after the patch
(cherry picked from commit f2acb7a018)

Change-Id: Ie62c28c0b91a1ec36ba1a307fea5ff73d5c085bf
gugelfrei
Ray Essick 4 years ago
parent 01e349c1e7
commit 687d14d2fe

@ -1060,6 +1060,8 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
// drop it now to reduce our footprint
free(mLastTrack->mTx3gBuffer);
mLastTrack->mTx3gBuffer = NULL;
mLastTrack->mTx3gFilled = 0;
mLastTrack->mTx3gSize = 0;
}
} else if (chunk_type == FOURCC("moov")) {
@ -2621,6 +2623,10 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
// if those apps are compensating for it, we'd break them with such a change
//
if (mLastTrack->mTx3gBuffer == NULL) {
mLastTrack->mTx3gSize = 0;
mLastTrack->mTx3gFilled = 0;
}
if (mLastTrack->mTx3gSize - mLastTrack->mTx3gFilled < chunk_size) {
size_t growth = kTx3gGrowth;
if (growth < chunk_size) {

Loading…
Cancel
Save