diff options
author | Ray Essick <essick@google.com> | 2020-03-26 14:38:14 -0700 |
---|---|---|
committer | Ray Essick <essick@google.com> | 2020-03-30 23:47:30 +0000 |
commit | 687d14d2fe23b87c584b41b01f24e3f2596baf18 (patch) | |
tree | 1095ec087e2ad4ba9d1f1f387a1cd7322089dbb8 | |
parent | 01e349c1e70e48d9d4c88ad51b0732d674eb89ba (diff) | |
download | frameworks_av-687d14d2fe23b87c584b41b01f24e3f2596baf18.tar.gz frameworks_av-687d14d2fe23b87c584b41b01f24e3f2596baf18.tar.bz2 frameworks_av-687d14d2fe23b87c584b41b01f24e3f2596baf18.zip |
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 f2acb7a0185cac34a1a688416879eda26ead4b14)
Change-Id: Ie62c28c0b91a1ec36ba1a307fea5ff73d5c085bf
-rwxr-xr-x | media/extractors/mp4/MPEG4Extractor.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/media/extractors/mp4/MPEG4Extractor.cpp b/media/extractors/mp4/MPEG4Extractor.cpp index fa562f3026..485c0cc9ef 100755 --- a/media/extractors/mp4/MPEG4Extractor.cpp +++ b/media/extractors/mp4/MPEG4Extractor.cpp @@ -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) { |