summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRay Essick <essick@google.com>2020-03-26 14:38:14 -0700
committerRay Essick <essick@google.com>2020-03-30 23:47:30 +0000
commit687d14d2fe23b87c584b41b01f24e3f2596baf18 (patch)
tree1095ec087e2ad4ba9d1f1f387a1cd7322089dbb8
parent01e349c1e70e48d9d4c88ad51b0732d674eb89ba (diff)
downloadframeworks_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-xmedia/extractors/mp4/MPEG4Extractor.cpp6
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) {