diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcamera/pipeline/simple/simple.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 32bfd45f..76ead3e0 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -309,6 +309,7 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe, /* Remember at each entity where we came from. */ std::unordered_map<MediaEntity *, Entity> parents; MediaEntity *entity = nullptr; + MediaEntity *video = nullptr; queue.push({ sensor, nullptr }); @@ -322,7 +323,7 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe, if (entity->function() == MEDIA_ENT_F_IO_V4L) { LOG(SimplePipeline, Debug) << "Found capture device " << entity->name(); - video_ = pipe->video(entity); + video = entity; break; } @@ -342,7 +343,7 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe, } } - if (!video_) + if (!video) return; /* @@ -386,9 +387,16 @@ SimplePipelineHandler *SimpleCameraData::pipe() int SimpleCameraData::init() { - SimpleConverter *converter = pipe()->converter(); + SimplePipelineHandler *pipe = SimpleCameraData::pipe(); + SimpleConverter *converter = pipe->converter(); int ret; + video_ = pipe->video(entities_.back().entity); + if (!video_) { + LOG(SimplePipeline, Error) << "Failed to open video device"; + return -ENODEV; + } + /* * Setup links first as some subdev drivers take active links into * account to propagate TRY formats. Such is life :-( |