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

Commit 6252c875 authored by Ray Essick's avatar Ray Essick
Browse files

Verbosity and increase buffer limit

New MediaSource inline/shared buffer threshold meant we hit max buffers
allowed limit more often -- with verbose diagnostics.
max buffers now aligned with primary consumer NuMediaExtractor (4->8)

Bug: 115848790
Test: poc
parent f8e3c419
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -368,13 +368,13 @@ status_t BnMediaSource::onTransact(
                        ALOGV("Use shared memory: %zu", length);
                        ALOGV("Use shared memory: %zu", length);
                        transferBuf = buf;
                        transferBuf = buf;
                    } else {
                    } else {
                        ALOGD("Large buffer %zu without IMemory!", length);
                        ALOGV("Large buffer %zu without IMemory!", length);
                        ret = mGroup->acquire_buffer(
                        ret = mGroup->acquire_buffer(
                                (MediaBufferBase **)&transferBuf, false /* nonBlocking */, length);
                                (MediaBufferBase **)&transferBuf, false /* nonBlocking */, length);
                        if (ret != OK
                        if (ret != OK
                                || transferBuf == nullptr
                                || transferBuf == nullptr
                                || transferBuf->mMemory == nullptr) {
                                || transferBuf->mMemory == nullptr) {
                            ALOGW("Failed to acquire shared memory, size %zu, ret %d",
                            ALOGV("Failed to acquire shared memory, size %zu, ret %d",
                                    length, ret);
                                    length, ret);
                            if (transferBuf != nullptr) {
                            if (transferBuf != nullptr) {
                                transferBuf->release();
                                transferBuf->release();
+2 −1
Original line number Original line Diff line number Diff line
@@ -124,7 +124,8 @@ public:
        return false;
        return false;
    }
    }


    static const size_t kBinderMediaBuffers = 4; // buffers managed by BnMediaSource
    // align buffer count with video request size in NuMediaExtractor::selectTrack()
    static const size_t kBinderMediaBuffers = 8; // buffers managed by BnMediaSource
    static const size_t kTransferSharedAsSharedThreshold = 4 * 1024;  // if >= shared, else inline
    static const size_t kTransferSharedAsSharedThreshold = 4 * 1024;  // if >= shared, else inline
    static const size_t kTransferInlineAsSharedThreshold = 8 * 1024; // if >= shared, else inline
    static const size_t kTransferInlineAsSharedThreshold = 8 * 1024; // if >= shared, else inline
    static const size_t kInlineMaxTransfer = 64 * 1024; // Binder size limited to BINDER_VM_SIZE.
    static const size_t kInlineMaxTransfer = 64 * 1024; // Binder size limited to BINDER_VM_SIZE.