From 46b451fab7a26c501d4d6c87a354f70531c19d13 Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 4 Sep 2014 15:00:07 -0700 Subject: stagefright: SoftwareRenderer support for RGBA8888 Bug: 17203044 Change-Id: Iba8709b4977720cd2ec18cfc2aecdc2e6939999d --- media/libstagefright/colorconversion/SoftwareRenderer.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'media/libstagefright/colorconversion/SoftwareRenderer.cpp') diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp index ab137b6..ac2b103 100644 --- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp +++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp @@ -122,6 +122,7 @@ void SoftwareRenderer::resetFormatIfChanged(const sp &format) { break; } case OMX_COLOR_Format32bitARGB8888: + case OMX_COLOR_Format32BitRGBA8888: { halFormat = HAL_PIXEL_FORMAT_RGBA_8888; bufWidth = (mCropWidth + 1) & ~1; @@ -308,6 +309,15 @@ void SoftwareRenderer::render( *dstPtr++ = a; // alpha last (ARGB to RGBA) } } + } else if (mColorFormat == OMX_COLOR_Format32BitRGBA8888) { + uint8_t* srcPtr = (uint8_t*)data; + uint8_t* dstPtr = (uint8_t*)dst; + + for (size_t y = 0; y < (size_t)mCropHeight; ++y) { + memcpy(dstPtr, srcPtr, mCropWidth * 4); + srcPtr += mWidth * 4; + dstPtr += buf->stride * 4; + } } else { LOG_ALWAYS_FATAL("bad color format %#x", mColorFormat); } -- cgit v1.1