libcamera: pipeline: simple: Walk the pipeline by following the first link

When walking the pipeline, follow the first link of each source pad.
This patch removes a redundant condition for choosing the link:

"(link->flags() & MEDIA_LNK_FL_ENABLED) ||
 !(link->flags() & MEDIA_LNK_FL_IMMUTABLE)"

since it always returns true.

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Dafna Hirschfeld
2021-03-03 15:16:44 +01:00
committed by Laurent Pinchart
parent 5745a10911
commit 62c456e1cb

View File

@@ -279,12 +279,17 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe,
if (source->function() == MEDIA_ENT_F_IO_V4L)
break;
/* Use the first output pad that has links. */
/*
* Use the first output pad that has links and follow its first
* link.
*/
MediaPad *sourcePad = nullptr;
MediaLink *sourceLink = nullptr;
for (MediaPad *pad : source->pads()) {
if ((pad->flags() & MEDIA_PAD_FL_SOURCE) &&
!pad->links().empty()) {
sourcePad = pad;
sourceLink = pad->links().front();
break;
}
}
@@ -292,22 +297,6 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe,
if (!sourcePad)
return;
/*
* Use the first link that is enabled or can be enabled (not
* immutable).
*/
MediaLink *sourceLink = nullptr;
for (MediaLink *link : sourcePad->links()) {
if ((link->flags() & MEDIA_LNK_FL_ENABLED) ||
!(link->flags() & MEDIA_LNK_FL_IMMUTABLE)) {
sourceLink = link;
break;
}
}
if (!sourceLink)
return;
entities_.push_back({ source, sourceLink });
source = sourceLink->sink()->entity();