diff options
author | Emilian Peev <epeev@google.com> | 2020-02-26 16:31:47 -0800 |
---|---|---|
committer | Emilian Peev <epeev@google.com> | 2020-02-26 16:41:57 -0800 |
commit | 36aa827f70fa4634740e67b40ea58abd27c29441 (patch) | |
tree | f3482e7c78099b114bbdd86e72570de3b25d9dde /camera/device/3.6/default/ExternalCameraDeviceSession.cpp | |
parent | 3e9669ff699ee0a0d8a6964e9e4ea9289a03f777 (diff) |
Camera: Avoid adding uninitialized hal requests
The offline requests deque is constructed with
specific amount of entries. Initialize the
the already allocated entries before pushing
new ones.
Bug: 149346795
Test: Camera CTS
Change-Id: I6db8d48949caf753429702b60c48698c95ecf4ad
Diffstat (limited to 'camera/device/3.6/default/ExternalCameraDeviceSession.cpp')
-rw-r--r-- | camera/device/3.6/default/ExternalCameraDeviceSession.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/camera/device/3.6/default/ExternalCameraDeviceSession.cpp b/camera/device/3.6/default/ExternalCameraDeviceSession.cpp index 60a1a1019c..8fd8e5897b 100644 --- a/camera/device/3.6/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/3.6/default/ExternalCameraDeviceSession.cpp @@ -272,16 +272,17 @@ Status ExternalCameraDeviceSession::switchToOffline(const hidl_vec<int32_t>& off // convert hal requests to offline request std::deque<std::shared_ptr<HalRequest>> offlineReqs(halReqs.size()); + size_t i = 0; for (auto& v4lReq : halReqs) { - std::shared_ptr<HalRequest> halReq = std::make_shared<HalRequest>(); - halReq->frameNumber = v4lReq->frameNumber; - halReq->setting = v4lReq->setting; - halReq->shutterTs = v4lReq->shutterTs; - halReq->buffers = v4lReq->buffers; + offlineReqs[i] = std::make_shared<HalRequest>(); + offlineReqs[i]->frameNumber = v4lReq->frameNumber; + offlineReqs[i]->setting = v4lReq->setting; + offlineReqs[i]->shutterTs = v4lReq->shutterTs; + offlineReqs[i]->buffers = v4lReq->buffers; sp<V3_4::implementation::V4L2Frame> v4l2Frame = static_cast<V3_4::implementation::V4L2Frame*>(v4lReq->frameIn.get()); - halReq->frameIn = new AllocatedV4L2Frame(v4l2Frame); - offlineReqs.push_back(halReq); + offlineReqs[i]->frameIn = new AllocatedV4L2Frame(v4l2Frame); + i++; // enqueue V4L2 frame enqueueV4l2Frame(v4l2Frame); } |