summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/SurfaceMediaSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/SurfaceMediaSource.cpp')
-rw-r--r--media/libstagefright/SurfaceMediaSource.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp
index e8abf48..147eb45 100644
--- a/media/libstagefright/SurfaceMediaSource.cpp
+++ b/media/libstagefright/SurfaceMediaSource.cpp
@@ -35,6 +35,9 @@
#include <utils/String8.h>
#include <private/gui/ComposerService.h>
+#if QTI_BSP
+#include <gralloc_priv.h>
+#endif
namespace android {
@@ -59,8 +62,12 @@ SurfaceMediaSource::SurfaceMediaSource(uint32_t bufferWidth, uint32_t bufferHeig
BufferQueue::createBufferQueue(&mProducer, &mConsumer);
mConsumer->setDefaultBufferSize(bufferWidth, bufferHeight);
- mConsumer->setConsumerUsageBits(GRALLOC_USAGE_HW_VIDEO_ENCODER |
- GRALLOC_USAGE_HW_TEXTURE);
+ mConsumer->setConsumerUsageBits(GRALLOC_USAGE_HW_VIDEO_ENCODER
+ | GRALLOC_USAGE_HW_TEXTURE
+#if QTI_BSP
+ | GRALLOC_USAGE_PRIVATE_WFD
+#endif
+ );
sp<ISurfaceComposer> composer(ComposerService::getComposerService());
@@ -360,7 +367,11 @@ status_t SurfaceMediaSource::read(
mNumFramesEncoded++;
// Pass the data to the MediaBuffer. Pass in only the metadata
-
+ if (mSlots[mCurrentSlot].mGraphicBuffer == NULL) {
+ ALOGV("Read: SurfaceMediaSource mGraphicBuffer is null. Returning"
+ "ERROR_END_OF_STREAM.");
+ return ERROR_END_OF_STREAM;
+ }
passMetadataBuffer(buffer, mSlots[mCurrentSlot].mGraphicBuffer->handle);
(*buffer)->setObserver(this);