summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-11-20 09:27:22 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-20 09:27:22 -0800
commit0ebc0bfbdfeedd9dac023e60524a71af67d0796d (patch)
treeeaae42a860dee5d80c0cc2667086ea8ef5967707 /media
parent41bc927ed70c7316ece894f0848ab5e4db822766 (diff)
parent14dda623c8db5f991b8a22dce4f19f8d8b47fea2 (diff)
downloadframeworks_av-0ebc0bfbdfeedd9dac023e60524a71af67d0796d.zip
frameworks_av-0ebc0bfbdfeedd9dac023e60524a71af67d0796d.tar.gz
frameworks_av-0ebc0bfbdfeedd9dac023e60524a71af67d0796d.tar.bz2
am 14dda623: am 7013209c: Merge "Handle large AVCC chunks"
* commit '14dda623c8db5f991b8a22dce4f19f8d8b47fea2': Handle large AVCC chunks
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index cc71d4c..b2afec7 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -30,6 +30,7 @@
#include <string.h>
#include <media/stagefright/foundation/ABitReader.h>
+#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/DataSource.h>
@@ -1221,18 +1222,15 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
case FOURCC('a', 'v', 'c', 'C'):
{
- char buffer[256];
- if (chunk_data_size > (off64_t)sizeof(buffer)) {
- return ERROR_BUFFER_TOO_SMALL;
- }
+ sp<ABuffer> buffer = new ABuffer(chunk_data_size);
if (mDataSource->readAt(
- data_offset, buffer, chunk_data_size) < chunk_data_size) {
+ data_offset, buffer->data(), chunk_data_size) < chunk_data_size) {
return ERROR_IO;
}
mLastTrack->meta->setData(
- kKeyAVCC, kTypeAVCC, buffer, chunk_data_size);
+ kKeyAVCC, kTypeAVCC, buffer->data(), chunk_data_size);
*offset += chunk_size;
break;