diff options
author | Lajos Molnar <lajos@google.com> | 2015-02-05 12:46:32 -0800 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-02-05 12:56:09 -0800 |
commit | 9578a90c214e430334b8696999f921290c35d067 (patch) | |
tree | dc7eabad7058949f8b70be3b462c3565ceddee86 /media/libstagefright/colorconversion | |
parent | 5a52a060fcbe4804bcf4f61b8a457fe0e18a9014 (diff) | |
download | frameworks_av-9578a90c214e430334b8696999f921290c35d067.zip frameworks_av-9578a90c214e430334b8696999f921290c35d067.tar.gz frameworks_av-9578a90c214e430334b8696999f921290c35d067.tar.bz2 |
stagefright: add software renderer support to OMX_COLOR_YUV420SemiPlanar
Bug: 19179927
Change-Id: I3accaa655e9bad2b0efcac98c5dd95a23f8d6671
Diffstat (limited to 'media/libstagefright/colorconversion')
-rw-r--r-- | media/libstagefright/colorconversion/SoftwareRenderer.cpp | 9 |
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)); |