summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/libstagefright/omx/OMXNodeInstance.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/media/libstagefright/omx/OMXNodeInstance.cpp b/media/libstagefright/omx/OMXNodeInstance.cpp
index a0dc2ec..13b7cbb 100644
--- a/media/libstagefright/omx/OMXNodeInstance.cpp
+++ b/media/libstagefright/omx/OMXNodeInstance.cpp
@@ -167,6 +167,10 @@ struct BufferMeta {
return buf;
}
+ bool copyToOmx() const {
+ return mCopyToOmx;
+ }
+
void setGraphicBuffer(const sp<GraphicBuffer> &graphicBuffer) {
mGraphicBuffer = graphicBuffer;
}
@@ -788,7 +792,7 @@ status_t OMXNodeInstance::useBuffer(
params, portIndex, false /* copyToOmx */, false /* copyFromOmx */, data);
} else {
buffer_meta = new BufferMeta(
- params, portIndex, false /* copyFromOmx */, false /* copyToOmx */, NULL);
+ params, portIndex, false /* copyToOmx */, false /* copyFromOmx */, NULL);
}
OMX_BUFFERHEADERTYPE *header;
@@ -1277,7 +1281,8 @@ status_t OMXNodeInstance::emptyBuffer(
// convert incoming ANW meta buffers if component is configured for gralloc metadata mode
// ignore rangeOffset in this case
- if (mMetadataType[kPortIndexInput] == kMetadataBufferTypeGrallocSource
+ if (buffer_meta->copyToOmx()
+ && mMetadataType[kPortIndexInput] == kMetadataBufferTypeGrallocSource
&& backup->capacity() >= sizeof(VideoNativeMetadata)
&& codec->capacity() >= sizeof(VideoGrallocMetadata)
&& ((VideoNativeMetadata *)backup->base())->eType