summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/colorconversion
diff options
context:
space:
mode:
authorDavid Smith <davidas@google.com>2014-09-04 15:00:07 -0700
committerDavid Smith <davidas@google.com>2014-09-04 16:20:35 -0700
commit46b451fab7a26c501d4d6c87a354f70531c19d13 (patch)
tree149a8a1da13d0f0c7dbbed7e434d861849b66d82 /media/libstagefright/colorconversion
parentb5f9ccfa2f8ddcd2e0c391d15fededc66533c9dd (diff)
downloadframeworks_av-46b451fab7a26c501d4d6c87a354f70531c19d13.zip
frameworks_av-46b451fab7a26c501d4d6c87a354f70531c19d13.tar.gz
frameworks_av-46b451fab7a26c501d4d6c87a354f70531c19d13.tar.bz2
stagefright: SoftwareRenderer support for RGBA8888
Bug: 17203044 Change-Id: Iba8709b4977720cd2ec18cfc2aecdc2e6939999d
Diffstat (limited to 'media/libstagefright/colorconversion')
-rw-r--r--media/libstagefright/colorconversion/SoftwareRenderer.cpp10
1 files changed, 10 insertions, 0 deletions
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<AMessage> &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);
}