summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2013-11-06 21:04:34 -0800
committerLajos Molnar <lajos@google.com>2013-11-14 13:53:56 -0800
commit4dd0a8a3d66c2853faf2834565b3c5df4f68734d (patch)
tree4cc6ee6dc0c7f72f5ae0facfd84b0342c5f87afe /include
parent4215e6166fca9f87a6e9e848b3dfd4ab0d25c954 (diff)
downloadframeworks_av-4dd0a8a3d66c2853faf2834565b3c5df4f68734d.zip
frameworks_av-4dd0a8a3d66c2853faf2834565b3c5df4f68734d.tar.gz
frameworks_av-4dd0a8a3d66c2853faf2834565b3c5df4f68734d.tar.bz2
WA: Queue extra buffers on output port during reconfig if input EOS-ed
Some codecs may return input buffers before having them processed. This causes a halt if we already signaled an EOS on the input port. For now keep submitting output meta buffers one at a time if the input EOS-ed, but the output not yet. Normally, we submit an output buffer for each input buffer that is with the component (waiting to be processed). Change-Id: I8a1251bfb504f40f1e4085a1e220bf9a4d0b05d9 Signed-off-by: Lajos Molnar <lajos@google.com> Bug: 11433909
Diffstat (limited to 'include')
-rw-r--r--include/media/stagefright/ACodec.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h
index e796ab3..7395055 100644
--- a/include/media/stagefright/ACodec.h
+++ b/include/media/stagefright/ACodec.h
@@ -116,6 +116,7 @@ private:
kWhatStart = 'star',
kWhatRequestIDRFrame = 'ridr',
kWhatSetParameters = 'setP',
+ kWhatSubmitOutputMetaDataBufferIfEOS = 'subm',
};
enum {
@@ -212,6 +213,7 @@ private:
OMX_U32 *nMinUndequeuedBuffers);
status_t allocateOutputMetaDataBuffers();
status_t submitOutputMetaDataBuffer();
+ void signalSubmitOutputMetaDataBufferIfEOS_workaround();
status_t allocateOutputBuffersFromNativeWindow();
status_t cancelBufferToNativeWindow(BufferInfo *info);
status_t freeOutputBuffersNotOwnedByComponent();