diff --git a/src/io_pipeline.c b/src/io_pipeline.c index e28b886..2759d8b 100644 --- a/src/io_pipeline.c +++ b/src/io_pipeline.c @@ -236,6 +236,18 @@ setup(MPPipeline *pipeline, const void *data) mp_device_list_free(device_list); } +static void +clean_cameras() +{ + for (size_t i = 0; i < MP_MAX_CAMERAS; ++i) { + struct camera_info* info = &cameras[i]; + if (info->camera) { + mp_camera_free(info->camera); + info->camera = NULL; + } + } +} + void mp_io_pipeline_start() { @@ -253,6 +265,8 @@ mp_io_pipeline_stop() g_source_destroy(capture_source); } + clean_cameras(); + mp_pipeline_free(pipeline); mp_process_pipeline_stop();