summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-12-18 12:28:27 -0800
committerMarco Nelissen <marcone@google.com>2012-12-18 14:46:11 -0800
commit21ad778dcfcddb8f8fd9dc3fe4992fbef246c511 (patch)
tree822561fb2ee0322685afafddcf0d9f1d1996ad2f /media
parent53bc0a2fc54330534330118edd5c393f39eff8ab (diff)
downloadframeworks_av-21ad778dcfcddb8f8fd9dc3fe4992fbef246c511.zip
frameworks_av-21ad778dcfcddb8f8fd9dc3fe4992fbef246c511.tar.gz
frameworks_av-21ad778dcfcddb8f8fd9dc3fe4992fbef246c511.tar.bz2
Report buffer size even when using hardware buffers
This makes it so that the buffers dequeued from a MediaCodec show a non-zero size when there's actually data in them, which allows the caller to distinguish between a valid frame and an empty buffer. Change-Id: I891b2301501e26f0b4e8cf2e24c169e501a6d026
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/ACodec.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index 2b20ab0..7920d32 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -612,7 +612,7 @@ status_t ACodec::allocateOutputBuffersFromNativeWindow() {
sp<GraphicBuffer> graphicBuffer(new GraphicBuffer(buf, false));
BufferInfo info;
info.mStatus = BufferInfo::OWNED_BY_US;
- info.mData = new ABuffer(0);
+ info.mData = new ABuffer(NULL /* data */, def.nBufferSize /* capacity */);
info.mGraphicBuffer = graphicBuffer;
mBuffers[kPortIndexOutput].push(info);
@@ -2868,15 +2868,14 @@ bool ACodec::BaseState::onOMXFillBufferDone(
mCodec->sendFormatChange();
}
- if (mCodec->mNativeWindow == NULL) {
- info->mData->setRange(rangeOffset, rangeLength);
-
+ info->mData->setRange(rangeOffset, rangeLength);
#if 0
+ if (mCodec->mNativeWindow == NULL) {
if (IsIDR(info->mData)) {
ALOGI("IDR frame");
}
-#endif
}
+#endif
if (mCodec->mSkipCutBuffer != NULL) {
mCodec->mSkipCutBuffer->submit(info->mData);