summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>2021-03-03 15:16:44 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-03-04 10:39:01 +0200
commit62c456e1cb04fb8df8a236bc69cab3279d9ce7b5 (patch)
treed7b50ea339d99a32339b7d92f7e5cb157239d261
parent5745a109116da7bb435ec77478983d2351fb18f5 (diff)
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>
-rw-r--r--src/libcamera/pipeline/simple/simple.cpp23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 7fba495c..1aeabcf7 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -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();