Loading media/libstagefright/SurfaceMediaSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <media/hardware/MetadataBufferType.h> #include <ui/GraphicBuffer.h> #include <gui/BufferItem.h> #include <gui/ISurfaceComposer.h> #include <gui/IGraphicBufferAlloc.h> #include <OMX_Component.h> Loading Loading @@ -290,7 +291,7 @@ status_t SurfaceMediaSource::read( // TODO: mCurrentSlot can be made a bufferstate since there // can be more than one "current" slots. BufferQueue::BufferItem item; BufferItem item; // If the recording has started and the queue is empty, then just // wait here till the frames come in from the client side while (mStarted) { Loading media/libstagefright/omx/GraphicBufferSource.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <media/hardware/MetadataBufferType.h> #include <ui/GraphicBuffer.h> #include <gui/BufferItem.h> #include <inttypes.h> Loading Loading @@ -359,7 +360,7 @@ void GraphicBufferSource::suspend(bool suspend) { mSuspended = true; while (mNumFramesAvailable > 0) { BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { Loading Loading @@ -409,7 +410,7 @@ bool GraphicBufferSource::fillCodecBuffer_l() { ALOGV("fillCodecBuffer_l: acquiring buffer, avail=%zu", mNumFramesAvailable); BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { // shouldn't happen Loading Loading @@ -492,7 +493,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() { return false; } BufferQueue::BufferItem item; BufferItem item; item.mBuf = mLatestSubmittedBufferId; item.mFrameNumber = mLatestSubmittedBufferFrameNum; item.mTimestamp = mRepeatLastFrameTimestamp; Loading Loading @@ -523,7 +524,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() { } void GraphicBufferSource::setLatestSubmittedBuffer_l( const BufferQueue::BufferItem &item) { const BufferItem &item) { ALOGV("setLatestSubmittedBuffer_l"); if (mLatestSubmittedBufferId >= 0) { Loading Loading @@ -579,7 +580,7 @@ status_t GraphicBufferSource::signalEndOfInputStream() { return OK; } int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) { int64_t GraphicBufferSource::getTimestamp(const BufferItem &item) { int64_t timeUs = item.mTimestamp / 1000; if (mTimePerCaptureUs > 0ll) { Loading Loading @@ -640,7 +641,7 @@ int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) { } status_t GraphicBufferSource::submitBuffer_l( const BufferQueue::BufferItem &item, int cbi) { const BufferItem &item, int cbi) { ALOGV("submitBuffer_l cbi=%d", cbi); int64_t timeUs = getTimestamp(item); Loading Loading @@ -766,7 +767,7 @@ void GraphicBufferSource::onFrameAvailable(const BufferItem& /*item*/) { ALOGV("onFrameAvailable: suspended, ignoring frame"); } BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == OK) { // If this is the first time we're seeing this buffer, add it to our Loading media/libstagefright/omx/GraphicBufferSource.h +3 −3 Original line number Diff line number Diff line Loading @@ -187,15 +187,15 @@ private: // Marks the mCodecBuffers entry as in-use, copies the GraphicBuffer // reference into the codec buffer, and submits the data to the codec. status_t submitBuffer_l(const BufferQueue::BufferItem &item, int cbi); status_t submitBuffer_l(const BufferItem &item, int cbi); // Submits an empty buffer, with the EOS flag set. Returns without // doing anything if we don't have a codec buffer available. void submitEndOfInputStream_l(); void setLatestSubmittedBuffer_l(const BufferQueue::BufferItem &item); void setLatestSubmittedBuffer_l(const BufferItem &item); bool repeatLatestSubmittedBuffer_l(); int64_t getTimestamp(const BufferQueue::BufferItem &item); int64_t getTimestamp(const BufferItem &item); // Lock, covers all member variables. mutable Mutex mMutex; Loading services/camera/libcameraservice/api1/client2/StreamingProcessor.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <utils/Log.h> #include <utils/Trace.h> #include <gui/BufferItem.h> #include <gui/Surface.h> #include <media/hardware/MetadataBufferType.h> Loading Loading @@ -675,7 +676,7 @@ status_t StreamingProcessor::processRecordingFrame() { sp<Camera2Client> client = mClient.promote(); if (client == 0) { // Discard frames during shutdown BufferItemConsumer::BufferItem imgBuffer; BufferItem imgBuffer; res = mRecordingConsumer->acquireBuffer(&imgBuffer, 0); if (res != OK) { if (res != BufferItemConsumer::NO_BUFFER_AVAILABLE) { Loading @@ -693,7 +694,7 @@ status_t StreamingProcessor::processRecordingFrame() { with Camera2Client code calling into StreamingProcessor */ SharedParameters::Lock l(client->getParameters()); Mutex::Autolock m(mMutex); BufferItemConsumer::BufferItem imgBuffer; BufferItem imgBuffer; res = mRecordingConsumer->acquireBuffer(&imgBuffer, 0); if (res != OK) { if (res != BufferItemConsumer::NO_BUFFER_AVAILABLE) { Loading Loading @@ -819,8 +820,7 @@ void StreamingProcessor::releaseRecordingFrame(const sp<IMemory>& mem) { size_t itemIndex; for (itemIndex = 0; itemIndex < mRecordingBuffers.size(); itemIndex++) { const BufferItemConsumer::BufferItem item = mRecordingBuffers[itemIndex]; const BufferItem item = mRecordingBuffers[itemIndex]; if (item.mBuf != BufferItemConsumer::INVALID_BUFFER_SLOT && item.mGraphicBuffer->handle == imgHandle) { break; Loading Loading @@ -864,8 +864,7 @@ void StreamingProcessor::releaseAllRecordingFramesLocked() { size_t releasedCount = 0; for (size_t itemIndex = 0; itemIndex < mRecordingBuffers.size(); itemIndex++) { const BufferItemConsumer::BufferItem item = mRecordingBuffers[itemIndex]; const BufferItem item = mRecordingBuffers[itemIndex]; if (item.mBuf != BufferItemConsumer::INVALID_BUFFER_SLOT) { res = mRecordingConsumer->releaseBuffer(mRecordingBuffers[itemIndex]); if (res != OK) { Loading services/camera/libcameraservice/api1/client2/StreamingProcessor.h +1 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ class StreamingProcessor: static const size_t kDefaultRecordingHeapCount = 8; size_t mRecordingHeapCount; Vector<BufferItemConsumer::BufferItem> mRecordingBuffers; Vector<BufferItem> mRecordingBuffers; size_t mRecordingHeapHead, mRecordingHeapFree; virtual bool threadLoop(); Loading Loading
media/libstagefright/SurfaceMediaSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <media/hardware/MetadataBufferType.h> #include <ui/GraphicBuffer.h> #include <gui/BufferItem.h> #include <gui/ISurfaceComposer.h> #include <gui/IGraphicBufferAlloc.h> #include <OMX_Component.h> Loading Loading @@ -290,7 +291,7 @@ status_t SurfaceMediaSource::read( // TODO: mCurrentSlot can be made a bufferstate since there // can be more than one "current" slots. BufferQueue::BufferItem item; BufferItem item; // If the recording has started and the queue is empty, then just // wait here till the frames come in from the client side while (mStarted) { Loading
media/libstagefright/omx/GraphicBufferSource.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <media/hardware/MetadataBufferType.h> #include <ui/GraphicBuffer.h> #include <gui/BufferItem.h> #include <inttypes.h> Loading Loading @@ -359,7 +360,7 @@ void GraphicBufferSource::suspend(bool suspend) { mSuspended = true; while (mNumFramesAvailable > 0) { BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { Loading Loading @@ -409,7 +410,7 @@ bool GraphicBufferSource::fillCodecBuffer_l() { ALOGV("fillCodecBuffer_l: acquiring buffer, avail=%zu", mNumFramesAvailable); BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { // shouldn't happen Loading Loading @@ -492,7 +493,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() { return false; } BufferQueue::BufferItem item; BufferItem item; item.mBuf = mLatestSubmittedBufferId; item.mFrameNumber = mLatestSubmittedBufferFrameNum; item.mTimestamp = mRepeatLastFrameTimestamp; Loading Loading @@ -523,7 +524,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() { } void GraphicBufferSource::setLatestSubmittedBuffer_l( const BufferQueue::BufferItem &item) { const BufferItem &item) { ALOGV("setLatestSubmittedBuffer_l"); if (mLatestSubmittedBufferId >= 0) { Loading Loading @@ -579,7 +580,7 @@ status_t GraphicBufferSource::signalEndOfInputStream() { return OK; } int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) { int64_t GraphicBufferSource::getTimestamp(const BufferItem &item) { int64_t timeUs = item.mTimestamp / 1000; if (mTimePerCaptureUs > 0ll) { Loading Loading @@ -640,7 +641,7 @@ int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) { } status_t GraphicBufferSource::submitBuffer_l( const BufferQueue::BufferItem &item, int cbi) { const BufferItem &item, int cbi) { ALOGV("submitBuffer_l cbi=%d", cbi); int64_t timeUs = getTimestamp(item); Loading Loading @@ -766,7 +767,7 @@ void GraphicBufferSource::onFrameAvailable(const BufferItem& /*item*/) { ALOGV("onFrameAvailable: suspended, ignoring frame"); } BufferQueue::BufferItem item; BufferItem item; status_t err = mConsumer->acquireBuffer(&item, 0); if (err == OK) { // If this is the first time we're seeing this buffer, add it to our Loading
media/libstagefright/omx/GraphicBufferSource.h +3 −3 Original line number Diff line number Diff line Loading @@ -187,15 +187,15 @@ private: // Marks the mCodecBuffers entry as in-use, copies the GraphicBuffer // reference into the codec buffer, and submits the data to the codec. status_t submitBuffer_l(const BufferQueue::BufferItem &item, int cbi); status_t submitBuffer_l(const BufferItem &item, int cbi); // Submits an empty buffer, with the EOS flag set. Returns without // doing anything if we don't have a codec buffer available. void submitEndOfInputStream_l(); void setLatestSubmittedBuffer_l(const BufferQueue::BufferItem &item); void setLatestSubmittedBuffer_l(const BufferItem &item); bool repeatLatestSubmittedBuffer_l(); int64_t getTimestamp(const BufferQueue::BufferItem &item); int64_t getTimestamp(const BufferItem &item); // Lock, covers all member variables. mutable Mutex mMutex; Loading
services/camera/libcameraservice/api1/client2/StreamingProcessor.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <utils/Log.h> #include <utils/Trace.h> #include <gui/BufferItem.h> #include <gui/Surface.h> #include <media/hardware/MetadataBufferType.h> Loading Loading @@ -675,7 +676,7 @@ status_t StreamingProcessor::processRecordingFrame() { sp<Camera2Client> client = mClient.promote(); if (client == 0) { // Discard frames during shutdown BufferItemConsumer::BufferItem imgBuffer; BufferItem imgBuffer; res = mRecordingConsumer->acquireBuffer(&imgBuffer, 0); if (res != OK) { if (res != BufferItemConsumer::NO_BUFFER_AVAILABLE) { Loading @@ -693,7 +694,7 @@ status_t StreamingProcessor::processRecordingFrame() { with Camera2Client code calling into StreamingProcessor */ SharedParameters::Lock l(client->getParameters()); Mutex::Autolock m(mMutex); BufferItemConsumer::BufferItem imgBuffer; BufferItem imgBuffer; res = mRecordingConsumer->acquireBuffer(&imgBuffer, 0); if (res != OK) { if (res != BufferItemConsumer::NO_BUFFER_AVAILABLE) { Loading Loading @@ -819,8 +820,7 @@ void StreamingProcessor::releaseRecordingFrame(const sp<IMemory>& mem) { size_t itemIndex; for (itemIndex = 0; itemIndex < mRecordingBuffers.size(); itemIndex++) { const BufferItemConsumer::BufferItem item = mRecordingBuffers[itemIndex]; const BufferItem item = mRecordingBuffers[itemIndex]; if (item.mBuf != BufferItemConsumer::INVALID_BUFFER_SLOT && item.mGraphicBuffer->handle == imgHandle) { break; Loading Loading @@ -864,8 +864,7 @@ void StreamingProcessor::releaseAllRecordingFramesLocked() { size_t releasedCount = 0; for (size_t itemIndex = 0; itemIndex < mRecordingBuffers.size(); itemIndex++) { const BufferItemConsumer::BufferItem item = mRecordingBuffers[itemIndex]; const BufferItem item = mRecordingBuffers[itemIndex]; if (item.mBuf != BufferItemConsumer::INVALID_BUFFER_SLOT) { res = mRecordingConsumer->releaseBuffer(mRecordingBuffers[itemIndex]); if (res != OK) { Loading
services/camera/libcameraservice/api1/client2/StreamingProcessor.h +1 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ class StreamingProcessor: static const size_t kDefaultRecordingHeapCount = 8; size_t mRecordingHeapCount; Vector<BufferItemConsumer::BufferItem> mRecordingBuffers; Vector<BufferItem> mRecordingBuffers; size_t mRecordingHeapHead, mRecordingHeapFree; virtual bool threadLoop(); Loading