[gst-debugger] refactor: restored pad dynamic info



commit 65a0dc88cbb00a1083ebd4c99bac66b952e664ba
Author: Marcin Kolny <marcin kolny gmail com>
Date:   Mon Oct 5 22:16:40 2015 +0200

    refactor: restored pad dynamic info

 src/common/gstdebugger.proto                    |    8 +++++++
 src/debugserver/gstdebugserver.c                |   24 +++++++++++++++++++++++
 src/gst-debugger/controller/command_factory.cpp |    8 ++----
 src/gst-debugger/controller/command_factory.h   |    2 +-
 4 files changed, 36 insertions(+), 6 deletions(-)
---
diff --git a/src/common/gstdebugger.proto b/src/common/gstdebugger.proto
index 390ff81..f34bbc2 100644
--- a/src/common/gstdebugger.proto
+++ b/src/common/gstdebugger.proto
@@ -127,6 +127,7 @@ message Command {
                bool entire_topology = 5;
                PropertyRequest property = 6;
                PropertyValue property_set = 7;
+               string pad_dynamic_info = 8;
        }
 }
 
@@ -214,6 +215,12 @@ message TopologyInfo {
        }
 }
 
+message PadDynamicInfo {
+       required string allowed_caps = 1;
+       required string current_caps = 2;
+       required string pad = 3;
+}
+
 message GStreamerData {
        oneof info_type {
                DebugCategories debug_categories = 1;
@@ -228,5 +235,6 @@ message GStreamerData {
                PropertyValue property_value = 10;
                ElementKlass element_klass = 11;
                BufferInfo buffer_info = 12;
+               PadDynamicInfo pad_dynamic_info = 13;
        }
 }
diff --git a/src/debugserver/gstdebugserver.c b/src/debugserver/gstdebugserver.c
index 5104dc1..8ad8d46 100644
--- a/src/debugserver/gstdebugserver.c
+++ b/src/debugserver/gstdebugserver.c
@@ -448,6 +448,30 @@ static void gst_debugserver_command_handler (GstDebugger__Command * command,
       command->property_set->value->data.data, command->property_set->value->data.len);
     g_object_set_property (G_OBJECT (element), command->property_set->name, &val);
     g_value_unset (&val);
+    break;
+  }
+  case GST_DEBUGGER__COMMAND__COMMAND_TYPE_PAD_DYNAMIC_INFO:
+  {
+    GstDebugger__GStreamerData data = GST_DEBUGGER__GSTREAMER_DATA__INIT;
+    GstDebugger__PadDynamicInfo pad_info = GST_DEBUGGER__PAD_DYNAMIC_INFO__INIT;
+    GstPad *pad = gst_utils_get_pad_from_path (GST_ELEMENT_CAST (self->pipeline), command->pad_dynamic_info);
+    GstCaps *allowed_caps = gst_pad_get_allowed_caps (pad);
+    if (pad == NULL) {
+      break;
+    }
+    GstCaps *current_caps = gst_pad_get_current_caps (pad);
+    gchar *allowed_caps_str = gst_caps_to_string (allowed_caps);
+    gchar *current_caps_str = gst_caps_to_string (current_caps);
+    pad_info.pad = command->pad_dynamic_info;
+    pad_info.allowed_caps = allowed_caps_str;
+    pad_info.current_caps = current_caps_str;
+    data.info_type_case = GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_PAD_DYNAMIC_INFO;
+    data.pad_dynamic_info = &pad_info;
+
+    gst_debugserver_tcp_send_packet (self->tcp_server, client, &data);
+
+    g_free (allowed_caps_str);
+    g_free (current_caps_str);
   }
   }
 }
diff --git a/src/gst-debugger/controller/command_factory.cpp b/src/gst-debugger/controller/command_factory.cpp
index f2c5be5..36846ee 100644
--- a/src/gst-debugger/controller/command_factory.cpp
+++ b/src/gst-debugger/controller/command_factory.cpp
@@ -157,12 +157,10 @@ void CommandFactory::send_set_property_command(const std::string &path, const st
        client->send_command(cmd);
 
 }
-/*
+
 void CommandFactory::send_request_pad_dynamic_info(const std::string &pad_path)
 {
-       Command cmd;
-       cmd.set_command_type(Command_CommandType_PAD_DYNAMIC_INFO);
-       cmd.set_pad_path(pad_path);
+       GstDebugger::Command cmd;
+       cmd.set_pad_dynamic_info(pad_path);
        client->send_command(cmd);
 }
-*/
diff --git a/src/gst-debugger/controller/command_factory.h b/src/gst-debugger/controller/command_factory.h
index 66397c7..994fdcf 100644
--- a/src/gst-debugger/controller/command_factory.h
+++ b/src/gst-debugger/controller/command_factory.h
@@ -31,7 +31,7 @@ public:
        void send_request_debug_categories_command();
        void send_request_entire_topology_command();
        void send_set_property_command(const std::string &path, const std::string &property_name, GValue 
*gvalue);
-       /*void send_request_pad_dynamic_info(const std::string &pad_path);*/
+       void send_request_pad_dynamic_info(const std::string &pad_path);
 };
 
 #endif /* SRC_GST_DEBUGGER_CONTROLLER_COMMAND_FACTORY_H_ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]