mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
libcamera: handle failure gracefully
Don't try to access NULL pointers
This commit is contained in:
parent
f8817b4394
commit
d71a10b7fa
3 changed files with 9 additions and 8 deletions
|
|
@ -210,10 +210,10 @@ impl_init(const struct spa_handle_factory *factory,
|
|||
SPA_DEVICE_CHANGE_MASK_PROPS;
|
||||
this->info.flags = 0;
|
||||
|
||||
if(this->dev.camera == NULL) {
|
||||
if(this->dev.camera == NULL)
|
||||
this->dev.camera = (LibCamera*)newLibCamera();
|
||||
if(this->dev.camera != NULL)
|
||||
libcamera_set_log(this->dev.camera, this->dev.log);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -994,10 +994,10 @@ impl_init(const struct spa_handle_factory *factory,
|
|||
port->dev.log = this->log;
|
||||
port->dev.fd = -1;
|
||||
|
||||
if(port->dev.camera == NULL) {
|
||||
if(port->dev.camera == NULL)
|
||||
port->dev.camera = (LibCamera*)newLibCamera();
|
||||
if(port->dev.camera != NULL)
|
||||
libcamera_set_log(port->dev.camera, port->dev.log);
|
||||
}
|
||||
|
||||
if (info && (str = spa_dict_lookup(info, SPA_KEY_API_LIBCAMERA_PATH))) {
|
||||
strncpy(this->props.device, str, 63);
|
||||
|
|
|
|||
|
|
@ -540,7 +540,8 @@ extern "C" {
|
|||
}
|
||||
|
||||
void LibCamera::close() {
|
||||
this->cam_->release();
|
||||
if (this->cam_)
|
||||
this->cam_->release();
|
||||
}
|
||||
|
||||
void LibCamera::connect()
|
||||
|
|
@ -775,6 +776,9 @@ extern "C" {
|
|||
std::unique_ptr<CameraManager> cm = std::make_unique<CameraManager>();
|
||||
LibCamera* camera = new LibCamera();
|
||||
|
||||
pthread_mutexattr_init(&attr);
|
||||
pthread_mutex_init(&camera->lock, &attr);
|
||||
|
||||
ret = cm->start();
|
||||
if (ret) {
|
||||
deleteLibCamera(camera);
|
||||
|
|
@ -794,9 +798,6 @@ extern "C" {
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
pthread_mutexattr_init(&attr);
|
||||
pthread_mutex_init(&camera->lock, &attr);
|
||||
|
||||
camera->ring_buffer_init();
|
||||
|
||||
return camera;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue