Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3aa4a9f9 authored by Marco Nelissen's avatar Marco Nelissen Committed by android-build-merger
Browse files

Merge "MPEG4Extractor: reduce buffer size for audio tracks" into pi-dev

am: 8c66cf58

Change-Id: If785a75ec009ee1d946b685812c5194549f1abba
parents 82c5de33 8c66cf58
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1710,7 +1710,10 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {

                const char *mime;
                CHECK(mLastTrack->meta.findCString(kKeyMIMEType, &mime));
                if (!strcmp(mime, MEDIA_MIMETYPE_VIDEO_AVC)
                if (!strncmp(mime, "audio/", 6)) {
                    // for audio, use 128KB
                    max_size = 1024 * 128;
                } else if (!strcmp(mime, MEDIA_MIMETYPE_VIDEO_AVC)
                        || !strcmp(mime, MEDIA_MIMETYPE_VIDEO_HEVC)) {
                    // AVC & HEVC requires compression ratio of at least 2, and uses
                    // macroblocks
@@ -3963,9 +3966,10 @@ status_t MPEG4Source::start(MetaDataBase *params) {
    }

    // Allow up to kMaxBuffers, but not if the total exceeds kMaxBufferSize.
    const size_t kInitialBuffers = 2;
    const size_t kMaxBuffers = 8;
    const size_t buffers = min(kMaxBufferSize / max_size, kMaxBuffers);
    mGroup = new MediaBufferGroup(buffers, max_size);
    const size_t realMaxBuffers = min(kMaxBufferSize / max_size, kMaxBuffers);
    mGroup = new MediaBufferGroup(kInitialBuffers, max_size, realMaxBuffers);
    mSrcBuffer = new (std::nothrow) uint8_t[max_size];
    if (mSrcBuffer == NULL) {
        // file probably specified a bad max size