This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l2-compliance: make media topology easier to read
Author:  Hans Verkuil <hans.verk...@cisco.com>
Date:    Fri Jun 22 21:05:43 2018 +0200

Map various hex IDs to actual human readable names.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>

 utils/v4l2-compliance/v4l2-test-media.cpp | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=393a5336e7988ce057f9c14fbe56e334c75a7939
diff --git a/utils/v4l2-compliance/v4l2-test-media.cpp 
b/utils/v4l2-compliance/v4l2-test-media.cpp
index 3054f0a82bfa..37a274e95740 100644
--- a/utils/v4l2-compliance/v4l2-test-media.cpp
+++ b/utils/v4l2-compliance/v4l2-test-media.cpp
@@ -79,6 +79,8 @@ static media_v2_link *v2_links;
 static id_set v2_links_set;
 static std::map<__u32, __u32> entity_num_pads;
 static std::map<__u32, media_v2_entity *> v2_entity_map;
+static std::map<__u32, media_v2_interface *> v2_iface_map;
+static std::map<__u32, media_v2_pad *> v2_pad_map;
 static unsigned num_data_links;
 
 static int checkFunction(__u32 function, bool v2_api)
@@ -153,8 +155,8 @@ int testMediaTopology(struct node *node)
                media_v2_entity &ent = v2_ents[i];
 
                if (show_info)
-                       printf("\t\tEntity: 0x%08x (Name: '%s', Function: 
0x%08x)\n",
-                              ent.id, ent.name, ent.function);
+                       printf("\t\tEntity: 0x%08x (Name: '%s', Function: 
%s)\n",
+                              ent.id, ent.name, 
entfunction2s(ent.function).c_str());
                fail_on_test(check_0(ent.reserved, sizeof(ent.reserved)));
                fail_on_test(check_string(ent.name, sizeof(ent.name)));
                fail_on_test(!ent.id);
@@ -167,8 +169,8 @@ int testMediaTopology(struct node *node)
                media_v2_interface &iface = v2_ifaces[i];
 
                if (show_info)
-                       printf("\t\tInterface: 0x%08x (Type: 0x%08x)\n",
-                              iface.id, iface.intf_type);
+                       printf("\t\tInterface: 0x%08x (Type: %s)\n",
+                              iface.id, ifacetype2s(iface.intf_type).c_str());
                fail_on_test(check_0(iface.reserved, sizeof(iface.reserved)));
                fail_on_test(checkDevice(iface.devnode.major, 
iface.devnode.minor,
                                         true, iface.id));
@@ -179,13 +181,16 @@ int testMediaTopology(struct node *node)
                fail_on_test(iface.flags);
                fail_on_test(v2_interfaces_set.find(iface.id) != 
v2_interfaces_set.end());
                v2_interfaces_set.insert(iface.id);
+               v2_iface_map[iface.id] = &iface;
        }
        for (unsigned i = 0; i < topology.num_pads; i++) {
                media_v2_pad &pad = v2_pads[i];
                __u32 fl = pad.flags;
 
                if (show_info)
-                       printf("\t\tPad: 0x%08x\n", pad.id);
+                       printf("\t\tPad: 0x%08x (%s, %s)\n", pad.id,
+                              v2_entity_map[pad.entity_id]->name,
+                              padflags2s(pad.flags).c_str());
                fail_on_test(check_0(pad.reserved, sizeof(pad.reserved)));
                fail_on_test(!pad.id);
                fail_on_test(!pad.entity_id);
@@ -196,13 +201,12 @@ int testMediaTopology(struct node *node)
                fail_on_test((fl & (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) ==
                             (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE));
                entity_num_pads[pad.entity_id]++;
+               v2_pad_map[pad.id] = &pad;
        }
        for (unsigned i = 0; i < topology.num_links; i++) {
                media_v2_link &link = v2_links[i];
                bool is_iface = link.flags & MEDIA_LNK_FL_LINK_TYPE;
 
-               if (show_info)
-                       printf("\t\tLink: 0x%08x\n", link.id);
                fail_on_test(check_0(link.reserved, sizeof(link.reserved)));
                fail_on_test(!link.id);
                fail_on_test(!link.source_id);
@@ -212,11 +216,20 @@ int testMediaTopology(struct node *node)
                if (is_iface) {
                        fail_on_test(v2_interfaces_set.find(link.source_id) == 
v2_interfaces_set.end());
                        fail_on_test(v2_entities_set.find(link.sink_id) == 
v2_entities_set.end());
+                       if (show_info)
+                               printf("\t\tLink: 0x%08x (%s to %s interface 
0x%08x)\n", link.id,
+                                      v2_entity_map[link.sink_id]->name,
+                                      
ifacetype2s(v2_iface_map[link.source_id]->intf_type).c_str(),
+                                      link.source_id);
                } else {
                        fail_on_test(v2_pads_set.find(link.source_id) == 
v2_pads_set.end());
                        fail_on_test(v2_pads_set.find(link.sink_id) == 
v2_pads_set.end());
                        fail_on_test(link.source_id == link.sink_id);
                        num_data_links++;
+                       if (show_info)
+                               printf("\t\tLink: 0x%08x %s -> %s)\n", link.id,
+                                      
v2_entity_map[v2_pad_map[link.source_id]->entity_id]->name,
+                                      
v2_entity_map[v2_pad_map[link.sink_id]->entity_id]->name);
                }
        }
        node->topology = &topology;
@@ -249,8 +262,8 @@ int testMediaEnum(struct node *node)
                if (ret == EINVAL)
                        break;
                if (show_info)
-                       printf("\t\tEntity: 0x%08x (Name: '%s', Type: 0x%08x\n",
-                              ent.id, ent.name, ent.type);
+                       printf("\t\tEntity: 0x%08x (Name: '%s', Type: %s)\n",
+                              ent.id, ent.name, 
entfunction2s(ent.type).c_str());
                fail_on_test(check_0(ent.reserved, sizeof(ent.reserved)));
                fail_on_test(ent.id & MEDIA_ENT_ID_FLAG_NEXT);
                fail_on_test(!ent.id);

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to