diff options
author | Lajos Molnar <lajos@google.com> | 2015-01-30 19:30:05 -0800 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-02-04 12:58:17 -0800 |
commit | 3a01a71dcbb467d06cc5da4a72a82bb588648cfc (patch) | |
tree | f35a84d74ff7cbcf6199d46c444acae9775880f8 /media/libstagefright/MediaCodec.cpp | |
parent | 57f75272fcd16b205ed60cdd0b33ffc19991fd10 (diff) | |
download | frameworks_av-3a01a71dcbb467d06cc5da4a72a82bb588648cfc.zip frameworks_av-3a01a71dcbb467d06cc5da4a72a82bb588648cfc.tar.gz frameworks_av-3a01a71dcbb467d06cc5da4a72a82bb588648cfc.tar.bz2 |
stagefright: add fallback for native flex-YUV support
Use software renderer if codec cannot support flex-YUV on a surface
Bug: 17906609
Change-Id: I3d0e3ff5fee7d7b3e2416892968fa18f6139598a
Diffstat (limited to 'media/libstagefright/MediaCodec.cpp')
-rw-r--r-- | media/libstagefright/MediaCodec.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index c2381b4..a9c3a04 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -869,9 +869,9 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { CHECK(msg->findString("componentName", &mComponentName)); if (mComponentName.startsWith("OMX.google.")) { - mFlags |= kFlagIsSoftwareCodec; + mFlags |= kFlagUsesSoftwareRenderer; } else { - mFlags &= ~kFlagIsSoftwareCodec; + mFlags &= ~kFlagUsesSoftwareRenderer; } if (mComponentName.endsWith(".secure")) { @@ -894,6 +894,11 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { CHECK(msg->findMessage("input-format", &mInputFormat)); CHECK(msg->findMessage("output-format", &mOutputFormat)); + int32_t usingSwRenderer; + if (mOutputFormat->findInt32("using-sw-renderer", &usingSwRenderer) + && usingSwRenderer) { + mFlags |= kFlagUsesSoftwareRenderer; + } setState(CONFIGURED); (new AMessage)->postReply(mReplyID); break; @@ -989,7 +994,7 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { if (mSoftRenderer == NULL && mNativeWindow != NULL && - (mFlags & kFlagIsSoftwareCodec)) { + (mFlags & kFlagUsesSoftwareRenderer)) { AString mime; CHECK(msg->findString("mime", &mime)); |