diff options
author | Andreas Huber <andih@google.com> | 2010-11-16 15:26:30 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-11-16 15:26:30 -0800 |
commit | 940c866c992f122be7aeb92a1b314d7df437d4e2 (patch) | |
tree | 1377f67f223ebbbdb86754c2cff219ae64461c3b /media/libstagefright/colorconversion | |
parent | a8079bfb9a738a7f24f103cd640e5317c4fd2510 (diff) | |
download | frameworks_base-940c866c992f122be7aeb92a1b314d7df437d4e2.zip frameworks_base-940c866c992f122be7aeb92a1b314d7df437d4e2.tar.gz frameworks_base-940c866c992f122be7aeb92a1b314d7df437d4e2.tar.bz2 |
Support post-decode video rotation.
Change-Id: I9ac90871269c5e132e98a9bf3ad8cae00f329f17
Diffstat (limited to 'media/libstagefright/colorconversion')
-rw-r--r-- | media/libstagefright/colorconversion/SoftwareRenderer.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp index 662a84a..3d507ca 100644 --- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp +++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp @@ -35,7 +35,8 @@ SoftwareRenderer::SoftwareRenderer( OMX_COLOR_FORMATTYPE colorFormat, const sp<Surface> &surface, size_t displayWidth, size_t displayHeight, - size_t decodedWidth, size_t decodedHeight) + size_t decodedWidth, size_t decodedHeight, + int32_t rotationDegrees) : mColorFormat(colorFormat), mConverter(NULL), mYUVMode(None), @@ -95,6 +96,20 @@ SoftwareRenderer::SoftwareRenderer( CHECK_EQ(0, native_window_set_buffers_geometry( mSurface.get(), mDecodedWidth, mDecodedHeight, halFormat)); + + uint32_t transform; + switch (rotationDegrees) { + case 0: transform = 0; break; + case 90: transform = HAL_TRANSFORM_ROT_90; break; + case 180: transform = HAL_TRANSFORM_ROT_180; break; + case 270: transform = HAL_TRANSFORM_ROT_270; break; + default: transform = 0; break; + } + + if (transform) { + CHECK_EQ(0, native_window_set_buffers_transform( + mSurface.get(), transform)); + } } SoftwareRenderer::~SoftwareRenderer() { |