Loading services/camera/libcameraservice/Camera2Client.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -889,7 +889,10 @@ status_t Camera2Client::startRecordingL(Parameters ¶ms, bool restart) { } } res = mStreamingProcessor->updateRecordingStream(params); res = updateProcessorStream< StreamingProcessor, &StreamingProcessor::updateRecordingStream>(mStreamingProcessor, params); if (res != OK) { ALOGE("%s: Camera %d: Unable to update recording stream: %s (%d)", __FUNCTION__, mCameraId, strerror(-res), res); Loading Loading @@ -1608,9 +1611,20 @@ status_t Camera2Client::syncWithDevice() { template <typename ProcessorT> status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, camera2::Parameters params) { // No default template arguments until C++11, so we need this overload return updateProcessorStream<ProcessorT, &ProcessorT::updateStream>( processor, params); } template <typename ProcessorT, status_t (ProcessorT::*updateStreamF)(const Parameters &)> status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, Parameters params) { status_t res; res = processor->updateStream(params); // Get raw pointer since sp<T> doesn't have operator->* ProcessorT *processorPtr = processor.get(); res = (processorPtr->*updateStreamF)(params); /** * Can't update the stream if it's busy? Loading @@ -1631,7 +1645,7 @@ status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, __FUNCTION__, mCameraId, strerror(-res), res); } res = processor->updateStream(params); res = (processorPtr->*updateStreamF)(params); if (res != OK) { ALOGE("%s: Camera %d: Failed to update processing stream " " despite having halted streaming first: %s (%d)", Loading services/camera/libcameraservice/Camera2Client.h +3 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,9 @@ private: template <typename ProcessorT> status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); template <typename ProcessorT, status_t (ProcessorT::*updateStreamF)(const Parameters &)> status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); sp<camera2::FrameProcessor> mFrameProcessor; Loading services/camera/libcameraservice/camera2/StreamingProcessor.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -316,7 +316,13 @@ status_t StreamingProcessor::updateRecordingStream(const Parameters ¶ms) { currentHeight != (uint32_t)params.videoHeight) { // TODO: Should wait to be sure previous recording has finished res = device->deleteStream(mRecordingStreamId); if (res != OK) { if (res == -EBUSY) { ALOGV("%s: Camera %d: Device is busy, call " "updateRecordingStream after it becomes idle", __FUNCTION__, mId); return res; } else if (res != OK) { ALOGE("%s: Camera %d: Unable to delete old output stream " "for recording: %s (%d)", __FUNCTION__, mId, strerror(-res), res); Loading Loading
services/camera/libcameraservice/Camera2Client.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -889,7 +889,10 @@ status_t Camera2Client::startRecordingL(Parameters ¶ms, bool restart) { } } res = mStreamingProcessor->updateRecordingStream(params); res = updateProcessorStream< StreamingProcessor, &StreamingProcessor::updateRecordingStream>(mStreamingProcessor, params); if (res != OK) { ALOGE("%s: Camera %d: Unable to update recording stream: %s (%d)", __FUNCTION__, mCameraId, strerror(-res), res); Loading Loading @@ -1608,9 +1611,20 @@ status_t Camera2Client::syncWithDevice() { template <typename ProcessorT> status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, camera2::Parameters params) { // No default template arguments until C++11, so we need this overload return updateProcessorStream<ProcessorT, &ProcessorT::updateStream>( processor, params); } template <typename ProcessorT, status_t (ProcessorT::*updateStreamF)(const Parameters &)> status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, Parameters params) { status_t res; res = processor->updateStream(params); // Get raw pointer since sp<T> doesn't have operator->* ProcessorT *processorPtr = processor.get(); res = (processorPtr->*updateStreamF)(params); /** * Can't update the stream if it's busy? Loading @@ -1631,7 +1645,7 @@ status_t Camera2Client::updateProcessorStream(sp<ProcessorT> processor, __FUNCTION__, mCameraId, strerror(-res), res); } res = processor->updateStream(params); res = (processorPtr->*updateStreamF)(params); if (res != OK) { ALOGE("%s: Camera %d: Failed to update processing stream " " despite having halted streaming first: %s (%d)", Loading
services/camera/libcameraservice/Camera2Client.h +3 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,9 @@ private: template <typename ProcessorT> status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); template <typename ProcessorT, status_t (ProcessorT::*updateStreamF)(const Parameters &)> status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); sp<camera2::FrameProcessor> mFrameProcessor; Loading
services/camera/libcameraservice/camera2/StreamingProcessor.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -316,7 +316,13 @@ status_t StreamingProcessor::updateRecordingStream(const Parameters ¶ms) { currentHeight != (uint32_t)params.videoHeight) { // TODO: Should wait to be sure previous recording has finished res = device->deleteStream(mRecordingStreamId); if (res != OK) { if (res == -EBUSY) { ALOGV("%s: Camera %d: Device is busy, call " "updateRecordingStream after it becomes idle", __FUNCTION__, mId); return res; } else if (res != OK) { ALOGE("%s: Camera %d: Unable to delete old output stream " "for recording: %s (%d)", __FUNCTION__, mId, strerror(-res), res); Loading