Loading services/camera/libcameraservice/device3/Camera3Device.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -2400,6 +2400,8 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, Vector<camera3_stream_t*> streams; streams.setCapacity(config.num_streams); std::vector<uint32_t> outBufSizes(mOutputStreams.size(), 0); if (mInputStream != NULL) { camera3_stream_t *inputStream; Loading Loading @@ -2430,6 +2432,12 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, return INVALID_OPERATION; } streams.add(outputStream); if (outputStream->format == HAL_PIXEL_FORMAT_BLOB && outputStream->data_space == HAL_DATASPACE_V0_JFIF) { outBufSizes[i] = static_cast<uint32_t>( getJpegBufferSize(outputStream->width, outputStream->height)); } } config.streams = streams.editArray(); Loading @@ -2438,7 +2446,7 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, // max_buffers, usage, priv fields. const camera_metadata_t *sessionBuffer = sessionParams.getAndLock(); res = mInterface->configureStreams(sessionBuffer, &config); res = mInterface->configureStreams(sessionBuffer, &config, outBufSizes); sessionParams.unlock(sessionBuffer); if (res == BAD_VALUE) { Loading Loading @@ -3494,7 +3502,7 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( } status_t Camera3Device::HalInterface::configureStreams(const camera_metadata_t *sessionParams, camera3_stream_configuration *config) { camera3_stream_configuration *config, const std::vector<uint32_t>& outputBufferSizes) { ATRACE_NAME("CameraHal::configureStreams"); if (!valid()) return INVALID_OPERATION; status_t res = OK; Loading Loading @@ -3535,6 +3543,7 @@ status_t Camera3Device::HalInterface::configureStreams(const camera_metadata_t * dst3_2.dataSpace = mapToHidlDataspace(src->data_space); dst3_2.rotation = mapToStreamRotation((camera3_stream_rotation_t) src->rotation); dst3_4.v3_2 = dst3_2; dst3_4.bufferSize = outputBufferSizes[i]; if (src->physical_camera_id != nullptr) { dst3_4.physicalCameraId = src->physical_camera_id; } Loading services/camera/libcameraservice/device3/Camera3Device.h +2 −1 Original line number Diff line number Diff line Loading @@ -282,7 +282,8 @@ class Camera3Device : status_t constructDefaultRequestSettings(camera3_request_template_t templateId, /*out*/ camera_metadata_t **requestTemplate); status_t configureStreams(const camera_metadata_t *sessionParams, /*inout*/ camera3_stream_configuration *config); /*inout*/ camera3_stream_configuration *config, const std::vector<uint32_t>& outputBufferSizes); status_t processCaptureRequest(camera3_capture_request_t *request); status_t processBatchCaptureRequests( std::vector<camera3_capture_request_t*>& requests, Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -2400,6 +2400,8 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, Vector<camera3_stream_t*> streams; streams.setCapacity(config.num_streams); std::vector<uint32_t> outBufSizes(mOutputStreams.size(), 0); if (mInputStream != NULL) { camera3_stream_t *inputStream; Loading Loading @@ -2430,6 +2432,12 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, return INVALID_OPERATION; } streams.add(outputStream); if (outputStream->format == HAL_PIXEL_FORMAT_BLOB && outputStream->data_space == HAL_DATASPACE_V0_JFIF) { outBufSizes[i] = static_cast<uint32_t>( getJpegBufferSize(outputStream->width, outputStream->height)); } } config.streams = streams.editArray(); Loading @@ -2438,7 +2446,7 @@ status_t Camera3Device::configureStreamsLocked(int operatingMode, // max_buffers, usage, priv fields. const camera_metadata_t *sessionBuffer = sessionParams.getAndLock(); res = mInterface->configureStreams(sessionBuffer, &config); res = mInterface->configureStreams(sessionBuffer, &config, outBufSizes); sessionParams.unlock(sessionBuffer); if (res == BAD_VALUE) { Loading Loading @@ -3494,7 +3502,7 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( } status_t Camera3Device::HalInterface::configureStreams(const camera_metadata_t *sessionParams, camera3_stream_configuration *config) { camera3_stream_configuration *config, const std::vector<uint32_t>& outputBufferSizes) { ATRACE_NAME("CameraHal::configureStreams"); if (!valid()) return INVALID_OPERATION; status_t res = OK; Loading Loading @@ -3535,6 +3543,7 @@ status_t Camera3Device::HalInterface::configureStreams(const camera_metadata_t * dst3_2.dataSpace = mapToHidlDataspace(src->data_space); dst3_2.rotation = mapToStreamRotation((camera3_stream_rotation_t) src->rotation); dst3_4.v3_2 = dst3_2; dst3_4.bufferSize = outputBufferSizes[i]; if (src->physical_camera_id != nullptr) { dst3_4.physicalCameraId = src->physical_camera_id; } Loading
services/camera/libcameraservice/device3/Camera3Device.h +2 −1 Original line number Diff line number Diff line Loading @@ -282,7 +282,8 @@ class Camera3Device : status_t constructDefaultRequestSettings(camera3_request_template_t templateId, /*out*/ camera_metadata_t **requestTemplate); status_t configureStreams(const camera_metadata_t *sessionParams, /*inout*/ camera3_stream_configuration *config); /*inout*/ camera3_stream_configuration *config, const std::vector<uint32_t>& outputBufferSizes); status_t processCaptureRequest(camera3_capture_request_t *request); status_t processBatchCaptureRequests( std::vector<camera3_capture_request_t*>& requests, Loading