diff options
author | Andy McFadden <fadden@android.com> | 2013-11-07 14:39:03 -0800 |
---|---|---|
committer | Andy McFadden <fadden@android.com> | 2013-11-07 14:39:03 -0800 |
commit | 5572b3afe3e63110ef9e6d228112ca7cbfac866b (patch) | |
tree | 71f94c29c1f0bba1905477a23611561e482d3639 /media | |
parent | fd6ecdd39bd83ea020f78b425e96310380d66c35 (diff) | |
download | frameworks_av-5572b3afe3e63110ef9e6d228112ca7cbfac866b.zip frameworks_av-5572b3afe3e63110ef9e6d228112ca7cbfac866b.tar.gz frameworks_av-5572b3afe3e63110ef9e6d228112ca7cbfac866b.tar.bz2 |
Replace assert with error message
The failure happens when vendor code sends EMPTY_BUFFER_DONE
twice on the same buffer. The second time through, we see a slot
that has already been emptied, and get very confused.
This should be handled with an error, not an assertion, so we now
log a stern complaint and carry on.
Bug 11557463
Change-Id: I76e53ff08924bca81afb6980df8e59a6012ff8fe
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/omx/GraphicBufferSource.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/media/libstagefright/omx/GraphicBufferSource.cpp b/media/libstagefright/omx/GraphicBufferSource.cpp index f295e5a..7d45386 100644 --- a/media/libstagefright/omx/GraphicBufferSource.cpp +++ b/media/libstagefright/omx/GraphicBufferSource.cpp @@ -213,7 +213,12 @@ void GraphicBufferSource::codecBufferEmptied(OMX_BUFFERHEADERTYPE* header) { // see if the GraphicBuffer reference was null, which should only ever // happen for EOS. if (codecBuffer.mGraphicBuffer == NULL) { - CHECK(mEndOfStream && mEndOfStreamSent); + if (!(mEndOfStream && mEndOfStreamSent)) { + // This can happen when broken code sends us the same buffer + // twice in a row. + ALOGE("ERROR: codecBufferEmptied on non-EOS null buffer " + "(buffer emptied twice?)"); + } // No GraphicBuffer to deal with, no additional input or output is // expected, so just return. return; |