diff options
author | James Dong <jdong@google.com> | 2010-12-15 17:32:45 -0800 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-12-15 17:40:08 -0800 |
commit | a6256238d9015c42129fe43791968768fe501efa (patch) | |
tree | 13b3966652c09d1434ba044231ac38a3aa23b1f4 /media/libstagefright | |
parent | e071b055cee301d71335519601474c62b10af411 (diff) | |
download | frameworks_av-a6256238d9015c42129fe43791968768fe501efa.zip frameworks_av-a6256238d9015c42129fe43791968768fe501efa.tar.gz frameworks_av-a6256238d9015c42129fe43791968768fe501efa.tar.bz2 |
Give the standard not compliant video sample a chance if its size in the mp4 header is invalid
Change-Id: Ib573ededb9c73285822fa238120faa484402bcf7
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index d3c7445..dfc9b5a 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -959,6 +959,13 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { uint16_t width = U16_AT(&buffer[6 + 18]); uint16_t height = U16_AT(&buffer[6 + 20]); + // The video sample is not stand-compliant if it has invalid dimension. + // Use some default width and height value, and + // let the decoder figure out the actual width and height (and thus + // be prepared for INFO_FOMRAT_CHANGED event). + if (width == 0) width = 352; + if (height == 0) height = 288; + // printf("*** coding='%s' width=%d height=%d\n", // chunk, width, height); |