Add a new graph helper useful for discovering video pipeline.
Signed-off-by: Jacek Anaszewski <[email protected]>
Acked-by: Kyungmin Park <[email protected]>
---
utils/media-ctl/libmediactl.c | 21 +++++++++++++++++++++
utils/media-ctl/mediactl.h | 15 +++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/utils/media-ctl/libmediactl.c b/utils/media-ctl/libmediactl.c
index 91ed003..155b65f 100644
--- a/utils/media-ctl/libmediactl.c
+++ b/utils/media-ctl/libmediactl.c
@@ -36,6 +36,7 @@
#include <unistd.h>
#include <linux/media.h>
+#include <linux/kdev_t.h>
#include <linux/videodev2.h>
#include "mediactl.h"
@@ -172,6 +173,26 @@ const struct media_entity_desc
*media_entity_get_info(struct media_entity *entit
return &entity->info;
}
+int media_entity_get_backlinks(struct media_entity *entity,
+ struct media_link **backlinks,
+ unsigned int *num_backlinks)
+{
+ unsigned int num_bklinks = 0;
+ int i;
+
+ if (entity == NULL || backlinks == NULL || num_backlinks == NULL)
+ return -EINVAL;
+
+ for (i = 0; i < entity->num_links; ++i)
+ if ((entity->links[i].flags & MEDIA_LNK_FL_ENABLED) &&
+ (entity->links[i].sink->entity == entity))
+ backlinks[num_bklinks++] = &entity->links[i];
+
+ *num_backlinks = num_bklinks;
+
+ return 0;
+}
+
/*
-----------------------------------------------------------------------------
* Open/close
*/
diff --git a/utils/media-ctl/mediactl.h b/utils/media-ctl/mediactl.h
index 336cbf9..b1f33cd 100644
--- a/utils/media-ctl/mediactl.h
+++ b/utils/media-ctl/mediactl.h
@@ -434,6 +434,20 @@ int media_parse_setup_link(struct media_device *media,
int media_parse_setup_links(struct media_device *media, const char *p);
/**
+ * @brief Get entity's enabled backlinks
+ * @param entity - media entity.
+ * @param backlinks - array of pointers to matching backlinks.
+ * @param num_backlinks - number of matching backlinks.
+ *
+ * Get links that are connected to the entity sink pads.
+ *
+ * @return 0 on success, or a negative error code on failure.
+ */
+int media_entity_get_backlinks(struct media_entity *entity,
+ struct media_link **backlinks,
+ unsigned int *num_backlinks);
+
+/**
* @brief Get v4l2_subdev for the entity
* @param entity - media entity
*
@@ -443,4 +457,5 @@ int media_parse_setup_links(struct media_device *media,
const char *p);
*/
struct v4l2_subdev *media_entity_get_v4l2_subdev(struct media_entity *entity);
+
#endif
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html