pad: Add functions to safely access GstProbeInfo data pointer
authorOlivier Crête <olivier.crete@collabora.com>
Wed, 19 Sep 2012 19:01:46 +0000 (15:01 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Thu, 20 Sep 2012 19:24:33 +0000 (15:24 -0400)
This is so that introspection based bindings can access it.

https://bugzilla.gnome.org/show_bug.cgi?id=684402

docs/gst/gstreamer-sections.txt
gst/gstpad.c
gst/gstpad.h
win32/common/libgstreamer.def

index fa80173..05dc89d 100644 (file)
@@ -1676,6 +1676,11 @@ GST_PAD_PROBE_INFO_BUFFER_LIST
 GST_PAD_PROBE_INFO_EVENT
 GST_PAD_PROBE_INFO_QUERY
 
+gst_pad_probe_info_get_buffer
+gst_pad_probe_info_get_buffer_list
+gst_pad_probe_info_get_event
+gst_pad_probe_info_get_query
+
 GST_PAD_PROBE_INFO_OFFSET
 GST_PAD_PROBE_INFO_SIZE
 
index a429226..9153780 100644 (file)
@@ -5312,3 +5312,66 @@ join_failed:
     return FALSE;
   }
 }
+
+/**
+ * gst_pad_probe_info_get_event:
+ * @info: a #GstPadProbeInfo
+ *
+ * Returns: (transfer none): The #GstEvent from the probe
+ */
+
+GstEvent *
+gst_pad_probe_info_get_event (GstPadProbeInfo * info)
+{
+  g_return_val_if_fail (info->type & (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
+          GST_PAD_PROBE_TYPE_EVENT_UPSTREAM), NULL);
+
+  return GST_PAD_PROBE_INFO_EVENT (info);
+}
+
+
+/**
+ * gst_pad_probe_info_get_query:
+ * @info: a #GstPadProbeInfo
+ *
+ * Returns: (transfer none): The #GstQuery from the probe
+ */
+
+GstQuery *
+gst_pad_probe_info_get_query (GstPadProbeInfo * info)
+{
+  g_return_val_if_fail (info->type & (GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM |
+          GST_PAD_PROBE_TYPE_QUERY_UPSTREAM), NULL);
+
+  return GST_PAD_PROBE_INFO_QUERY (info);
+}
+
+/**
+ * gst_pad_probe_info_get_buffer:
+ * @info: a #GstPadProbeInfo
+ *
+ * Returns: (transfer none): The #GstBuffer from the probe
+ */
+
+GstBuffer *
+gst_pad_probe_info_get_buffer (GstPadProbeInfo * info)
+{
+  g_return_val_if_fail (info->type & GST_PAD_PROBE_TYPE_BUFFER, NULL);
+
+  return GST_PAD_PROBE_INFO_BUFFER (info);
+}
+
+/**
+ * gst_pad_probe_info_get_bufferlist:
+ * @info: a #GstPadProbeInfo
+ *
+ * Returns: (transfer none): The #GstBufferlist from the probe
+ */
+
+GstBufferList *
+gst_pad_probe_info_get_buffer_list (GstPadProbeInfo * info)
+{
+  g_return_val_if_fail (info->type & GST_PAD_PROBE_TYPE_BUFFER_LIST, NULL);
+
+  return GST_PAD_PROBE_INFO_BUFFER_LIST (info);
+}
index c6ac927..9fd605c 100644 (file)
@@ -547,6 +547,11 @@ struct _GstPadProbeInfo
 #define GST_PAD_PROBE_INFO_OFFSET(d)       ((d)->offset)
 #define GST_PAD_PROBE_INFO_SIZE(d)         ((d)->size)
 
+GstEvent*      gst_pad_probe_info_get_event       (GstPadProbeInfo * info);
+GstQuery*      gst_pad_probe_info_get_query       (GstPadProbeInfo * info);
+GstBuffer*     gst_pad_probe_info_get_buffer      (GstPadProbeInfo * info);
+GstBufferList* gst_pad_probe_info_get_buffer_list (GstPadProbeInfo * info);
+
 /**
  * GstPadProbeCallback:
  * @pad: the #GstPad that is blocked
index 403656a..15eac39 100644 (file)
@@ -705,6 +705,10 @@ EXPORTS
        gst_pad_peer_query_duration
        gst_pad_peer_query_position
        gst_pad_presence_get_type
+       gst_pad_probe_info_get_buffer
+       gst_pad_probe_info_get_buffer_list
+       gst_pad_probe_info_get_event
+       gst_pad_probe_info_get_query
        gst_pad_probe_return_get_type
        gst_pad_probe_type_get_type
        gst_pad_proxy_query_accept_caps