From cfde87ba10df8a5b071102c79b54a34ebd3ddf45 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 29 Jan 2010 14:56:33 -0800 Subject: Use physical memory for software rendering to take a fast path through surface flinger if possible. related-to-bug: 2386023 --- media/libstagefright/colorconversion/SoftwareRenderer.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp index ef6ede0..ed91eea 100644 --- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp +++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp @@ -20,6 +20,7 @@ #include "../include/SoftwareRenderer.h" #include +#include #include #include @@ -38,8 +39,16 @@ SoftwareRenderer::SoftwareRenderer( mDecodedWidth(decodedWidth), mDecodedHeight(decodedHeight), mFrameSize(mDecodedWidth * mDecodedHeight * 2), // RGB565 - mMemoryHeap(new MemoryHeapBase(2 * mFrameSize)), mIndex(0) { + // TODO: How do I allocate physical memory on Droid? + mMemoryHeap = new MemoryHeapBase("/dev/pmem_adsp", 2 * mFrameSize); + if (mMemoryHeap->heapID() < 0) { + LOGI("Creating physical memory heap failed, reverting to regular heap."); + mMemoryHeap = new MemoryHeapBase(2 * mFrameSize); + } else { + mMemoryHeap = new MemoryHeapPmem(mMemoryHeap); + } + CHECK(mISurface.get() != NULL); CHECK(mDecodedWidth > 0); CHECK(mDecodedHeight > 0); -- cgit v1.1