diff options
author | Dafna Hirschfeld <dafna.hirschfeld@collabora.com> | 2021-03-03 15:16:44 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-03-04 10:39:01 +0200 |
commit | 62c456e1cb04fb8df8a236bc69cab3279d9ce7b5 (patch) | |
tree | d7b50ea339d99a32339b7d92f7e5cb157239d261 | |
parent | 5745a109116da7bb435ec77478983d2351fb18f5 (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.cpp | 23 |
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(); |