diff options
author | James Dong <jdong@google.com> | 2010-11-23 11:30:21 -0800 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-11-23 11:44:51 -0800 |
commit | 495f154b602a0103b24b98226370349100a26adf (patch) | |
tree | 3adb203a26530e64aadf9078a1fbf3753ecd6dbe | |
parent | 31d7235c79667f88002d9ad87207099ed438a197 (diff) | |
download | frameworks_av-495f154b602a0103b24b98226370349100a26adf.zip frameworks_av-495f154b602a0103b24b98226370349100a26adf.tar.gz frameworks_av-495f154b602a0103b24b98226370349100a26adf.tar.bz2 |
Do not getConfig on video encoder on output port
Change-Id: Id53e01dd8f3ec0c9ca94bb1d6dfccd7696254a2d
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 3f32f2f..3108e4e 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -3898,32 +3898,34 @@ void OMXCodec::initOutputFormat(const sp<MetaData> &inputFormat) { mOutputFormat->setInt32(kKeyHeight, video_def->nFrameHeight); mOutputFormat->setInt32(kKeyColorFormat, video_def->eColorFormat); - OMX_CONFIG_RECTTYPE rect; - status_t err = - mOMX->getConfig( - mNode, OMX_IndexConfigCommonOutputCrop, - &rect, sizeof(rect)); - - if (err == OK) { - CHECK_GE(rect.nLeft, 0); - CHECK_GE(rect.nTop, 0); - CHECK_GE(rect.nWidth, 0u); - CHECK_GE(rect.nHeight, 0u); - CHECK_LE(rect.nLeft + rect.nWidth - 1, video_def->nFrameWidth); - CHECK_LE(rect.nTop + rect.nHeight - 1, video_def->nFrameHeight); - - mOutputFormat->setRect( - kKeyCropRect, - rect.nLeft, - rect.nTop, - rect.nLeft + rect.nWidth - 1, - rect.nTop + rect.nHeight - 1); - } else { - mOutputFormat->setRect( - kKeyCropRect, - 0, 0, - video_def->nFrameWidth - 1, - video_def->nFrameHeight - 1); + if (!mIsEncoder) { + OMX_CONFIG_RECTTYPE rect; + status_t err = + mOMX->getConfig( + mNode, OMX_IndexConfigCommonOutputCrop, + &rect, sizeof(rect)); + + if (err == OK) { + CHECK_GE(rect.nLeft, 0); + CHECK_GE(rect.nTop, 0); + CHECK_GE(rect.nWidth, 0u); + CHECK_GE(rect.nHeight, 0u); + CHECK_LE(rect.nLeft + rect.nWidth - 1, video_def->nFrameWidth); + CHECK_LE(rect.nTop + rect.nHeight - 1, video_def->nFrameHeight); + + mOutputFormat->setRect( + kKeyCropRect, + rect.nLeft, + rect.nTop, + rect.nLeft + rect.nWidth - 1, + rect.nTop + rect.nHeight - 1); + } else { + mOutputFormat->setRect( + kKeyCropRect, + 0, 0, + video_def->nFrameWidth - 1, + video_def->nFrameHeight - 1); + } } break; |