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 | ba529e486dde15fe75ea1b48570f9d60a4cf3c48 (patch) | |
tree | 081f61aca5f4967c1ee3a741414b58ca4a39ffd3 /media/libstagefright/colorconversion/SoftwareRenderer.cpp | |
parent | 0a5ca668c6f7d45706e9aec4a1dfec0aacc6d233 (diff) | |
download | frameworks_av-ba529e486dde15fe75ea1b48570f9d60a4cf3c48.zip frameworks_av-ba529e486dde15fe75ea1b48570f9d60a4cf3c48.tar.gz frameworks_av-ba529e486dde15fe75ea1b48570f9d60a4cf3c48.tar.bz2 |
Support post-decode video rotation.
Change-Id: I9ac90871269c5e132e98a9bf3ad8cae00f329f17
Diffstat (limited to 'media/libstagefright/colorconversion/SoftwareRenderer.cpp')
-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() { |