summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/colorconversion
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-02-06 00:08:56 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-02-06 00:08:56 +0000
commitca50950615848b02bee9ab5f2463ede6cc016bf0 (patch)
tree4203b59d22318533eaa07f66c8c96dad6d5fab0d /media/libstagefright/colorconversion
parent2b0fc07a5f87d15ef9ccb7f682a811bf7121c636 (diff)
parent696cfefd49335fef13414d52daa95544298359e5 (diff)
downloadframeworks_av-ca50950615848b02bee9ab5f2463ede6cc016bf0.zip
frameworks_av-ca50950615848b02bee9ab5f2463ede6cc016bf0.tar.gz
frameworks_av-ca50950615848b02bee9ab5f2463ede6cc016bf0.tar.bz2
am 696cfefd: am 9578a90c: stagefright: add software renderer support to OMX_COLOR_YUV420SemiPlanar
* commit '696cfefd49335fef13414d52daa95544298359e5': stagefright: add software renderer support to OMX_COLOR_YUV420SemiPlanar
Diffstat (limited to 'media/libstagefright/colorconversion')
-rw-r--r--media/libstagefright/colorconversion/SoftwareRenderer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
index 6ce6d9f..4e75250 100644
--- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp
+++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
@@ -104,6 +104,7 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) {
switch (mColorFormat) {
case OMX_COLOR_FormatYUV420Planar:
case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
+ case OMX_COLOR_FormatYUV420SemiPlanar:
{
if (!runningInEmulator()) {
halFormat = HAL_PIXEL_FORMAT_YV12;
@@ -209,7 +210,6 @@ void SoftwareRenderer::render(
buf->stride, buf->height,
0, 0, mCropWidth - 1, mCropHeight - 1);
} else if (mColorFormat == OMX_COLOR_FormatYUV420Planar) {
- // YV12 really
const uint8_t *src_y = (const uint8_t *)data;
const uint8_t *src_u = (const uint8_t *)data + mWidth * mHeight;
const uint8_t *src_v = src_u + (mWidth / 2 * mHeight / 2);
@@ -237,9 +237,8 @@ void SoftwareRenderer::render(
dst_u += dst_c_stride;
dst_v += dst_c_stride;
}
- } else {
- CHECK_EQ(mColorFormat, OMX_TI_COLOR_FormatYUV420PackedSemiPlanar);
-
+ } else if (mColorFormat == OMX_TI_COLOR_FormatYUV420PackedSemiPlanar
+ || mColorFormat == OMX_COLOR_FormatYUV420SemiPlanar) {
const uint8_t *src_y =
(const uint8_t *)data;
@@ -272,6 +271,8 @@ void SoftwareRenderer::render(
dst_u += dst_c_stride;
dst_v += dst_c_stride;
}
+ } else {
+ LOG_ALWAYS_FATAL("bad color format %#x", mColorFormat);
}
CHECK_EQ(0, mapper.unlock(buf->handle));