*
* MT safe.
*/
+#ifndef GST_DISABLE_GST_DEBUG
+static inline GstFlowReturn __gst_pad_push_list (GstPad * pad,
+ GstBufferList * list);
+#endif
+
GstFlowReturn
gst_pad_push_list (GstPad * pad, GstBufferList * list)
+#ifndef GST_DISABLE_GST_DEBUG
+{
+ const gboolean trace = gst_tracer_is_enabled (GST_TRACER_HOOK_ID_BUFFERS);
+ GstFlowReturn res;
+
+ if (trace)
+ gst_tracer_push_buffer_list_pre (pad, list);
+ res = __gst_pad_push_list (pad, list);
+ if (trace)
+ gst_tracer_push_buffer_list_post (pad, res);
+ return res;
+}
+
+static inline GstFlowReturn
+__gst_pad_push_list (GstPad * pad, GstBufferList * list)
+#endif
{
g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR);
g_return_val_if_fail (GST_PAD_IS_SRC (pad), GST_FLOW_ERROR);
"GstMessageNeedContext", "GstMessageHaveContext", "context", "context-type",
"GstMessageStreamStart", "group-id", "uri-redirection",
"GstMessageDeviceAdded", "GstMessageDeviceRemoved", "device",
- "uri-redirection-permanent"
+ "uri-redirection-permanent",
+ "push_buffer::pre", "push_buffer::post", "push_buffer_list::pre",
+ "push_buffer_list::post", ".ts", "return", "pad", "buffer", "list"
};
GQuark _priv_gst_quark_table[GST_QUARK_MAX];
GST_QUARK_MESSAGE_DEVICE_REMOVED = 171,
GST_QUARK_DEVICE = 172,
GST_QUARK_URI_REDIRECTION_PERMANENT = 173,
- GST_QUARK_MAX = 174
+ GST_QUARK_PUSH_BUFFER_PRE = 174,
+ GST_QUARK_PUSH_BUFFER_POST = 175,
+ GST_QUARK_PUSH_BUFFER_LIST_PRE = 176,
+ GST_QUARK_PUSH_BUFFER_LIST_POST = 177,
+ GST_QUARK_DOT_TS = 178,
+ GST_QUARK_RETURN = 179,
+ GST_QUARK_PAD = 180,
+ GST_QUARK_BUFFER = 181,
+ GST_QUARK_LIST = 182,
+ GST_QUARK_MAX = 183
} GstQuarkId;
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
#include "gst_private.h"
#include "gstenumtypes.h"
+#include "gstquark.h"
#include "gstregistry.h"
#include "gsttracer.h"
#include "gsttracerfactory.h"
void
gst_tracer_push_buffer_pre (GstPad * pad, GstBuffer * buffer)
{
- // TODO(ensonic): gst_structure_new_id
- dispatch (GST_TRACER_HOOK_ID_BUFFERS, gst_structure_new ("push_buffer::pre",
- ".ts", G_TYPE_UINT64, gst_util_get_timestamp (),
- "pad", GST_TYPE_PAD, pad, "buffer", GST_TYPE_BUFFER, buffer, NULL));
+ dispatch (GST_TRACER_HOOK_ID_BUFFERS,
+ gst_structure_new_id (GST_QUARK (PUSH_BUFFER_PRE),
+ GST_QUARK (DOT_TS), G_TYPE_UINT64, gst_util_get_timestamp (),
+ GST_QUARK (PAD), GST_TYPE_PAD, pad,
+ GST_QUARK (BUFFER), GST_TYPE_BUFFER, buffer, NULL));
}
void
gst_tracer_push_buffer_post (GstPad * pad, GstFlowReturn res)
{
- // TODO(ensonic): gst_structure_new_id
- dispatch (GST_TRACER_HOOK_ID_BUFFERS, gst_structure_new ("push_buffer::post",
- ".ts", G_TYPE_UINT64, gst_util_get_timestamp (),
- "pad", GST_TYPE_PAD, pad, "return", G_TYPE_INT, res, NULL));
+ dispatch (GST_TRACER_HOOK_ID_BUFFERS,
+ gst_structure_new_id (GST_QUARK (PUSH_BUFFER_POST),
+ GST_QUARK (DOT_TS), G_TYPE_UINT64, gst_util_get_timestamp (),
+ GST_QUARK (PAD), GST_TYPE_PAD, pad,
+ GST_QUARK (RETURN), G_TYPE_INT, res, NULL));
+}
+
+void
+gst_tracer_push_buffer_list_pre (GstPad * pad, GstBufferList * list)
+{
+ dispatch (GST_TRACER_HOOK_ID_BUFFERS,
+ gst_structure_new_id (GST_QUARK (PUSH_BUFFER_LIST_PRE),
+ GST_QUARK (DOT_TS), G_TYPE_UINT64, gst_util_get_timestamp (),
+ GST_QUARK (PAD), GST_TYPE_PAD, pad,
+ GST_QUARK (LIST), GST_TYPE_BUFFER_LIST, list, NULL));
+}
+
+void
+gst_tracer_push_buffer_list_post (GstPad * pad, GstFlowReturn res)
+{
+ dispatch (GST_TRACER_HOOK_ID_BUFFERS,
+ gst_structure_new_id (GST_QUARK (PUSH_BUFFER_LIST_POST),
+ GST_QUARK (DOT_TS), G_TYPE_UINT64, gst_util_get_timestamp (),
+ GST_QUARK (PAD), GST_TYPE_PAD, pad,
+ GST_QUARK (RETURN), G_TYPE_INT, res, NULL));
}
#endif /* GST_DISABLE_GST_DEBUG */