/src/gstreamer/subprojects/gstreamer/gst/gsttracerutils.h
Line | Count | Source |
1 | | /* GStreamer |
2 | | * Copyright (C) 2013 Stefan Sauer <ensonic@users.sf.net> |
3 | | * |
4 | | * gsttracerutils.h: tracing subsystem |
5 | | * |
6 | | * This library is free software; you can redistribute it and/or |
7 | | * modify it under the terms of the GNU Library General Public |
8 | | * License as published by the Free Software Foundation; either |
9 | | * version 2 of the License, or (at your option) any later version. |
10 | | * |
11 | | * This library is distributed in the hope that it will be useful, |
12 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | | * Library General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU Library General Public |
17 | | * License along with this library; if not, write to the |
18 | | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, |
19 | | * Boston, MA 02110-1301, USA. |
20 | | */ |
21 | | |
22 | | |
23 | | #ifndef __GST_TRACER_UTILS_H__ |
24 | | #define __GST_TRACER_UTILS_H__ |
25 | | |
26 | | #include <glib.h> |
27 | | #include <glib-object.h> |
28 | | #include <gst/gstconfig.h> |
29 | | #include <gst/gstbin.h> |
30 | | #include <gst/gsttracer.h> |
31 | | #include <gst/gstutils.h> |
32 | | |
33 | | G_BEGIN_DECLS |
34 | | |
35 | | #ifndef GST_DISABLE_GST_TRACER_HOOKS |
36 | | |
37 | | /* tracing hooks */ |
38 | | |
39 | | void _priv_gst_tracing_init (void); |
40 | | void _priv_gst_tracing_deinit (void); |
41 | | |
42 | | /* tracer quarks */ |
43 | | |
44 | | /* These enums need to match the number and order |
45 | | * of strings declared in _quark_table, in gsttracerutils.c */ |
46 | | typedef enum /*< skip >*/ |
47 | | { |
48 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_PRE = 0, |
49 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_POST, |
50 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_PRE, |
51 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_POST, |
52 | | GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_PRE, |
53 | | GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_POST, |
54 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_PRE , |
55 | | GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_POST, |
56 | | GST_TRACER_QUARK_HOOK_PAD_QUERY_PRE , |
57 | | GST_TRACER_QUARK_HOOK_PAD_QUERY_POST, |
58 | | GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_PRE, |
59 | | GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_POST, |
60 | | GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_PRE, |
61 | | GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_POST, |
62 | | GST_TRACER_QUARK_HOOK_ELEMENT_NEW, |
63 | | GST_TRACER_QUARK_HOOK_ELEMENT_ADD_PAD, |
64 | | GST_TRACER_QUARK_HOOK_ELEMENT_REMOVE_PAD, |
65 | | GST_TRACER_QUARK_HOOK_BIN_ADD_PRE, |
66 | | GST_TRACER_QUARK_HOOK_BIN_ADD_POST, |
67 | | GST_TRACER_QUARK_HOOK_BIN_REMOVE_PRE, |
68 | | GST_TRACER_QUARK_HOOK_BIN_REMOVE_POST, |
69 | | GST_TRACER_QUARK_HOOK_PAD_LINK_PRE, |
70 | | GST_TRACER_QUARK_HOOK_PAD_LINK_POST, |
71 | | GST_TRACER_QUARK_HOOK_PAD_UNLINK_PRE, |
72 | | GST_TRACER_QUARK_HOOK_PAD_UNLINK_POST, |
73 | | GST_TRACER_QUARK_HOOK_ELEMENT_CHANGE_STATE_PRE, |
74 | | GST_TRACER_QUARK_HOOK_ELEMENT_CHANGE_STATE_POST, |
75 | | GST_TRACER_QUARK_HOOK_MINI_OBJECT_CREATED, |
76 | | GST_TRACER_QUARK_HOOK_MINI_OBJECT_DESTROYED, |
77 | | GST_TRACER_QUARK_HOOK_OBJECT_CREATED, |
78 | | GST_TRACER_QUARK_HOOK_OBJECT_DESTROYED, |
79 | | GST_TRACER_QUARK_HOOK_MINI_OBJECT_REFFED, |
80 | | GST_TRACER_QUARK_HOOK_MINI_OBJECT_UNREFFED, |
81 | | GST_TRACER_QUARK_HOOK_OBJECT_REFFED, |
82 | | GST_TRACER_QUARK_HOOK_OBJECT_UNREFFED, |
83 | | GST_TRACER_QUARK_HOOK_PLUGIN_FEATURE_LOADED, |
84 | | GST_TRACER_QUARK_HOOK_PAD_CHAIN_PRE, |
85 | | GST_TRACER_QUARK_HOOK_PAD_CHAIN_POST, |
86 | | GST_TRACER_QUARK_HOOK_PAD_CHAIN_LIST_PRE, |
87 | | GST_TRACER_QUARK_HOOK_PAD_CHAIN_LIST_POST, |
88 | | GST_TRACER_QUARK_HOOK_PAD_SEND_EVENT_PRE, |
89 | | GST_TRACER_QUARK_HOOK_PAD_SEND_EVENT_POST, |
90 | | /** |
91 | | * GST_TRACER_QUARK_HOOK_MEMORY_INIT: |
92 | | * |
93 | | * Post-hook for memory initialization named "memory-init". |
94 | | * |
95 | | * Since: 1.26 |
96 | | */ |
97 | | GST_TRACER_QUARK_HOOK_MEMORY_INIT, |
98 | | /** |
99 | | * GST_TRACER_QUARK_HOOK_MEMORY_FREE_PRE: |
100 | | * |
101 | | * Pre-hook for memory freeing named "memory-free-pre". |
102 | | * |
103 | | * Since: 1.26 |
104 | | */ |
105 | | GST_TRACER_QUARK_HOOK_MEMORY_FREE_PRE, |
106 | | /** |
107 | | * GST_TRACER_QUARK_HOOK_MEMORY_FREE_POST: |
108 | | * |
109 | | * Post-hook for memory freeing named "memory-free-post". |
110 | | * |
111 | | * Since: 1.26 |
112 | | */ |
113 | | GST_TRACER_QUARK_HOOK_MEMORY_FREE_POST, |
114 | | |
115 | | /** |
116 | | * GST_TRACER_QUARK_HOOK_POOL_BUFFER_QUEUED: |
117 | | * |
118 | | * Hook for buffers queued into a buffer pool. |
119 | | * |
120 | | * Since: 1.28 |
121 | | */ |
122 | | GST_TRACER_QUARK_HOOK_POOL_BUFFER_QUEUED, |
123 | | |
124 | | /** |
125 | | * GST_TRACER_QUARK_HOOK_POOL_BUFFER_DEQUEUED: |
126 | | * |
127 | | * Hook for buffers dequeued from a buffer pool. |
128 | | * |
129 | | * Since: 1.28 |
130 | | */ |
131 | | GST_TRACER_QUARK_HOOK_POOL_BUFFER_DEQUEUED, |
132 | | |
133 | | /** |
134 | | * GST_TRACER_QUARK_HOOK_OBJECT_PARENT_SET: |
135 | | * |
136 | | * Hook for object parent changes. |
137 | | * |
138 | | * Since: 1.30 |
139 | | */ |
140 | | GST_TRACER_QUARK_HOOK_OBJECT_PARENT_SET, |
141 | | /** |
142 | | * GST_TRACER_QUARK_HOOK_SPAN_BEGIN: |
143 | | * |
144 | | * Hook for application defined span begin events. |
145 | | * |
146 | | * Since: 1.30 |
147 | | */ |
148 | | GST_TRACER_QUARK_HOOK_SPAN_BEGIN, |
149 | | /** |
150 | | * GST_TRACER_QUARK_HOOK_SPAN_END: |
151 | | * |
152 | | * Hook for application defined span end events. |
153 | | * |
154 | | * Since: 1.30 |
155 | | */ |
156 | | GST_TRACER_QUARK_HOOK_SPAN_END, |
157 | | /** |
158 | | * GST_TRACER_QUARK_HOOK_EVENT: |
159 | | * |
160 | | * Hook for application defined point events, named "event". |
161 | | * |
162 | | * Since: 1.30 |
163 | | */ |
164 | | GST_TRACER_QUARK_HOOK_EVENT, |
165 | | |
166 | | GST_TRACER_QUARK_MAX |
167 | | } GstTracerQuarkId; |
168 | | |
169 | | extern GQuark _priv_gst_tracer_quark_table[GST_TRACER_QUARK_MAX + 1]; |
170 | | |
171 | | #define GST_TRACER_QUARK(q) _priv_gst_tracer_quark_table[GST_TRACER_QUARK_##q] |
172 | | |
173 | | /* tracing module helpers */ |
174 | | |
175 | | typedef struct { |
176 | | GObject *tracer; |
177 | | GCallback func; |
178 | | } GstTracerHook; |
179 | | |
180 | | extern gboolean _priv_tracer_enabled; |
181 | | /* key are hook-id quarks, values are GstTracerHook */ |
182 | | extern GHashTable *_priv_tracers; |
183 | | |
184 | | #define GST_TRACER_IS_ENABLED (_priv_tracer_enabled) |
185 | | |
186 | | #define GST_TRACER_TS \ |
187 | | GST_CLOCK_DIFF (_priv_gst_start_time, gst_util_get_timestamp ()) |
188 | | |
189 | | /* tracing hooks */ |
190 | | |
191 | | #define GST_TRACER_ARGS h->tracer, ts |
192 | | #define GST_TRACER_DISPATCH(key,type,args) G_STMT_START{ \ |
193 | | if (GST_TRACER_IS_ENABLED) { \ |
194 | | GstClockTime ts = GST_TRACER_TS; \ |
195 | | GList *__l, *__n; \ |
196 | | GstTracerHook *h; \ |
197 | | __l = g_hash_table_lookup (_priv_tracers, GINT_TO_POINTER (key)); \ |
198 | | for (__n = __l; __n; __n = g_list_next (__n)) { \ |
199 | | h = (GstTracerHook *) __n->data; \ |
200 | | ((type)(h->func)) args; \ |
201 | | } \ |
202 | | __l = g_hash_table_lookup (_priv_tracers, NULL); \ |
203 | | for (__n = __l; __n; __n = g_list_next (__n)) { \ |
204 | | h = (GstTracerHook *) __n->data; \ |
205 | | ((type)(h->func)) args; \ |
206 | | } \ |
207 | | } \ |
208 | | }G_STMT_END |
209 | | |
210 | | /** |
211 | | * GstTracerHookPadPushPre: |
212 | | * @self: the tracer instance |
213 | | * @ts: the current timestamp |
214 | | * @pad: the pad |
215 | | * @buffer: the buffer |
216 | | * |
217 | | * Pre-hook for gst_pad_push() named "pad-push-pre". |
218 | | */ |
219 | | typedef void (*GstTracerHookPadPushPre) (GObject *self, GstClockTime ts, |
220 | | GstPad *pad, GstBuffer *buffer); |
221 | | #define GST_TRACER_PAD_PUSH_PRE(pad, buffer) G_STMT_START{ \ |
222 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_PRE), \ |
223 | | GstTracerHookPadPushPre, (GST_TRACER_ARGS, pad, buffer)); \ |
224 | | }G_STMT_END |
225 | | |
226 | | /** |
227 | | * GstTracerHookPadPushPost: |
228 | | * @self: the tracer instance |
229 | | * @ts: the current timestamp |
230 | | * @pad: the pad |
231 | | * @res: the result of gst_pad_push() |
232 | | * |
233 | | * Post-hook for gst_pad_push() named "pad-push-post". |
234 | | */ |
235 | | typedef void (*GstTracerHookPadPushPost) (GObject * self, GstClockTime ts, |
236 | | GstPad *pad, GstFlowReturn res); |
237 | | #define GST_TRACER_PAD_PUSH_POST(pad, res) G_STMT_START{ \ |
238 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_POST), \ |
239 | | GstTracerHookPadPushPost, (GST_TRACER_ARGS, pad, res)); \ |
240 | | }G_STMT_END |
241 | | |
242 | | /** |
243 | | * GstTracerHookPadPushListPre: |
244 | | * @self: the tracer instance |
245 | | * @ts: the current timestamp |
246 | | * @pad: the pad |
247 | | * @list: the buffer-list |
248 | | * |
249 | | * Pre-hook for gst_pad_push_list() named "pad-push-list-pre". |
250 | | */ |
251 | | typedef void (*GstTracerHookPadPushListPre) (GObject *self, GstClockTime ts, |
252 | | GstPad *pad, GstBufferList *list); |
253 | | #define GST_TRACER_PAD_PUSH_LIST_PRE(pad, list) G_STMT_START{ \ |
254 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_PRE), \ |
255 | | GstTracerHookPadPushListPre, (GST_TRACER_ARGS, pad, list)); \ |
256 | | }G_STMT_END |
257 | | |
258 | | /** |
259 | | * GstTracerHookPadPushListPost: |
260 | | * @self: the tracer instance |
261 | | * @ts: the current timestamp |
262 | | * @pad: the pad |
263 | | * @res: the result of gst_pad_push_list() |
264 | | * |
265 | | * Post-hook for gst_pad_push_list() named "pad-push-list-post". |
266 | | */ |
267 | | typedef void (*GstTracerHookPadPushListPost) (GObject *self, GstClockTime ts, |
268 | | GstPad *pad, |
269 | | GstFlowReturn res); |
270 | | #define GST_TRACER_PAD_PUSH_LIST_POST(pad, res) G_STMT_START{ \ |
271 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_POST), \ |
272 | | GstTracerHookPadPushListPost, (GST_TRACER_ARGS, pad, res)); \ |
273 | | }G_STMT_END |
274 | | |
275 | | /** |
276 | | * GstTracerHookPadPullRangePre: |
277 | | * @self: the tracer instance |
278 | | * @ts: the current timestamp |
279 | | * @pad: the pad |
280 | | * @offset: the stream offset |
281 | | * @size: the requested size |
282 | | * |
283 | | * Pre-hook for gst_pad_pull_range() named "pad-pull-range-pre". |
284 | | */ |
285 | | typedef void (*GstTracerHookPadPullRangePre) (GObject *self, GstClockTime ts, |
286 | | GstPad *pad, guint64 offset, guint size); |
287 | | #define GST_TRACER_PAD_PULL_RANGE_PRE(pad, offset, size) G_STMT_START{ \ |
288 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_PRE), \ |
289 | | GstTracerHookPadPullRangePre, (GST_TRACER_ARGS, pad, offset, size)); \ |
290 | | }G_STMT_END |
291 | | |
292 | | /** |
293 | | * GstTracerHookPadPullRangePost: |
294 | | * @self: the tracer instance |
295 | | * @ts: the current timestamp |
296 | | * @pad: the pad |
297 | | * @buffer: the buffer |
298 | | * @res: the result of gst_pad_pull_range() |
299 | | * |
300 | | * Post-hook for gst_pad_pull_range() named "pad-pull-range-post". |
301 | | */ |
302 | | typedef void (*GstTracerHookPadPullRangePost) (GObject *self, GstClockTime ts, |
303 | | GstPad *pad, GstBuffer *buffer, GstFlowReturn res); |
304 | | #define GST_TRACER_PAD_PULL_RANGE_POST(pad, buffer, res) G_STMT_START{ \ |
305 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_POST), \ |
306 | | GstTracerHookPadPullRangePost, (GST_TRACER_ARGS, pad, buffer, res)); \ |
307 | | }G_STMT_END |
308 | | |
309 | | /** |
310 | | * GstTracerHookPadPushEventPre: |
311 | | * @self: the tracer instance |
312 | | * @ts: the current timestamp |
313 | | * @pad: the pad |
314 | | * @event: the event |
315 | | * |
316 | | * Pre-hook for when an event is pushed through a pad, named |
317 | | * "pad-push-event-pre". |
318 | | * |
319 | | * Called by gst_pad_push_event(). Also called by functions other than |
320 | | * gst_pad_push_event() that call gst_pad_push_event_unchecked() directly, |
321 | | * namely push_sticky() and check_sticky(). |
322 | | */ |
323 | | typedef void (*GstTracerHookPadPushEventPre) (GObject *self, GstClockTime ts, |
324 | | GstPad *pad, GstEvent *event); |
325 | | #define GST_TRACER_PAD_PUSH_EVENT_PRE(pad, event) G_STMT_START{ \ |
326 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_PRE), \ |
327 | | GstTracerHookPadPushEventPre, (GST_TRACER_ARGS, pad, event)); \ |
328 | | }G_STMT_END |
329 | | |
330 | | /** |
331 | | * GstTracerHookPadPushEventPost: |
332 | | * @self: the tracer instance |
333 | | * @ts: the current timestamp |
334 | | * @pad: the pad |
335 | | * @res: the result of gst_pad_push_event() |
336 | | * |
337 | | * Post-hook for when an event has been pushed through a pad, named |
338 | | * "pad-push-event-post". |
339 | | * |
340 | | * Called by gst_pad_push_event(). Also called by functions other than |
341 | | * gst_pad_push_event() that call gst_pad_push_event_unchecked() directly, |
342 | | * namely push_sticky() and check_sticky(). |
343 | | */ |
344 | | typedef void (*GstTracerHookPadPushEventPost) (GObject *self, GstClockTime ts, |
345 | | GstPad *pad, gboolean res); |
346 | | #define GST_TRACER_PAD_PUSH_EVENT_POST(pad, res) G_STMT_START{ \ |
347 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_POST), \ |
348 | | GstTracerHookPadPushEventPost, (GST_TRACER_ARGS, pad, res)); \ |
349 | | }G_STMT_END |
350 | | |
351 | | /** |
352 | | * GstTracerHookPadSendEventPre: |
353 | | * @self: the tracer instance |
354 | | * @ts: the current timestamp |
355 | | * @pad: the pad |
356 | | * @event: the event |
357 | | * |
358 | | * Pre-hook for gst_pad_send_event_unchecked() named "pad-send-event-pre". |
359 | | */ |
360 | | typedef void (*GstTracerHookPadSendEventPre) (GObject *self, GstClockTime ts, |
361 | | GstPad *pad, GstEvent *event); |
362 | | #define GST_TRACER_PAD_SEND_EVENT_PRE(pad, event) G_STMT_START{ \ |
363 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_SEND_EVENT_PRE), \ |
364 | | GstTracerHookPadSendEventPre, (GST_TRACER_ARGS, pad, event)); \ |
365 | | }G_STMT_END |
366 | | |
367 | | /** |
368 | | * GstTracerHookPadSendEventPost: |
369 | | * @self: the tracer instance |
370 | | * @ts: the current timestamp |
371 | | * @pad: the pad |
372 | | * @res: the result of gst_pad_send_event_unchecked() |
373 | | * |
374 | | * Post-hook for gst_pad_send_event_unchecked() named "pad-send-event-post". |
375 | | */ |
376 | | typedef void (*GstTracerHookPadSendEventPost) (GObject *self, GstClockTime ts, |
377 | | GstPad *pad, GstFlowReturn res); |
378 | | #define GST_TRACER_PAD_SEND_EVENT_POST(pad, res) G_STMT_START{ \ |
379 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_SEND_EVENT_POST), \ |
380 | | GstTracerHookPadSendEventPost, (GST_TRACER_ARGS, pad, res)); \ |
381 | | }G_STMT_END |
382 | | |
383 | | /** |
384 | | * GstTracerHookPadQueryPre: |
385 | | * @self: the tracer instance |
386 | | * @ts: the current timestamp |
387 | | * @pad: the pad |
388 | | * @query: the query |
389 | | * |
390 | | * Pre-hook for gst_pad_query() named "pad-query-pre". |
391 | | */ |
392 | | typedef void (*GstTracerHookPadQueryPre) (GObject *self, GstClockTime ts, |
393 | | GstPad *pad, GstQuery *query); |
394 | | #define GST_TRACER_PAD_QUERY_PRE(pad, query) G_STMT_START{ \ |
395 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_QUERY_PRE), \ |
396 | | GstTracerHookPadQueryPre, (GST_TRACER_ARGS, pad, query)); \ |
397 | | }G_STMT_END |
398 | | |
399 | | /** |
400 | | * GstTracerHookPadQueryPost: |
401 | | * @self: the tracer instance |
402 | | * @ts: the current timestamp |
403 | | * @pad: the pad |
404 | | * @query: the query |
405 | | * @res: the result of gst_pad_query() |
406 | | * |
407 | | * Post-hook for gst_pad_query() named "pad-query-post". |
408 | | */ |
409 | | typedef void (*GstTracerHookPadQueryPost) (GObject *self, GstClockTime ts, |
410 | | GstPad *pad, GstQuery *query, gboolean res); |
411 | | #define GST_TRACER_PAD_QUERY_POST(pad, query, res) G_STMT_START{ \ |
412 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_QUERY_POST), \ |
413 | | GstTracerHookPadQueryPost, (GST_TRACER_ARGS, pad, query, res)); \ |
414 | | }G_STMT_END |
415 | | |
416 | | /** |
417 | | * GstTracerHookElementPostMessagePre: |
418 | | * @self: the tracer instance |
419 | | * @ts: the current timestamp |
420 | | * @element: the element |
421 | | * @message: the message |
422 | | * |
423 | | * Pre-hook for gst_element_post_message() named "element-post-message-pre". |
424 | | */ |
425 | | typedef void (*GstTracerHookElementPostMessagePre) (GObject *self, |
426 | | GstClockTime ts, GstElement *element, GstMessage *message); |
427 | | #define GST_TRACER_ELEMENT_POST_MESSAGE_PRE(element, message) G_STMT_START{ \ |
428 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_PRE), \ |
429 | | GstTracerHookElementPostMessagePre, (GST_TRACER_ARGS, element, message)); \ |
430 | | }G_STMT_END |
431 | | |
432 | | /** |
433 | | * GstTracerHookElementPostMessagePost: |
434 | | * @self: the tracer instance |
435 | | * @ts: the current timestamp |
436 | | * @element: the element |
437 | | * @res: the result of gst_element_post_message() |
438 | | * |
439 | | * Pre-hook for gst_element_post_message() named "element-post-message-post". |
440 | | */ |
441 | | typedef void (*GstTracerHookElementPostMessagePost) (GObject *self, |
442 | | GstClockTime ts, GstElement *element, gboolean res); |
443 | | #define GST_TRACER_ELEMENT_POST_MESSAGE_POST(element, res) G_STMT_START{ \ |
444 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_POST), \ |
445 | | GstTracerHookElementPostMessagePost, (GST_TRACER_ARGS, element, res)); \ |
446 | | }G_STMT_END |
447 | | |
448 | | /** |
449 | | * GstTracerHookElementQueryPre: |
450 | | * @self: the tracer instance |
451 | | * @ts: the current timestamp |
452 | | * @element: the element |
453 | | * @query: the query |
454 | | * |
455 | | * Pre-hook for gst_element_query() named "element-query-pre". |
456 | | */ |
457 | | typedef void (*GstTracerHookElementQueryPre) (GObject *self, GstClockTime ts, |
458 | | GstElement *element, GstQuery *query); |
459 | | #define GST_TRACER_ELEMENT_QUERY_PRE(element, query) G_STMT_START{ \ |
460 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_PRE), \ |
461 | | GstTracerHookElementQueryPre, (GST_TRACER_ARGS, element, query)); \ |
462 | | }G_STMT_END |
463 | | |
464 | | /** |
465 | | * GstTracerHookElementQueryPost: |
466 | | * @self: the tracer instance |
467 | | * @ts: the current timestamp |
468 | | * @element: the element |
469 | | * @query: the query |
470 | | * @res: the result of gst_element_query() |
471 | | * |
472 | | * Post-hook for gst_element_query() named "element-query-post". |
473 | | */ |
474 | | typedef void (*GstTracerHookElementQueryPost) (GObject *self, GstClockTime ts, |
475 | | GstElement *element, GstQuery *query, gboolean res); |
476 | | #define GST_TRACER_ELEMENT_QUERY_POST(element, query, res) G_STMT_START{ \ |
477 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_POST), \ |
478 | | GstTracerHookElementQueryPost, (GST_TRACER_ARGS, element, query, res)); \ |
479 | | }G_STMT_END |
480 | | |
481 | | /** |
482 | | * GstTracerHookElementNew: |
483 | | * @self: the tracer instance |
484 | | * @ts: the current timestamp |
485 | | * @element: the element |
486 | | * |
487 | | * Hook for whenever a new element is created, named "element-new". |
488 | | */ |
489 | | typedef void (*GstTracerHookElementNew) (GObject *self, GstClockTime ts, |
490 | | GstElement *element); |
491 | | #define GST_TRACER_ELEMENT_NEW(element) G_STMT_START{ \ |
492 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_NEW), \ |
493 | | GstTracerHookElementNew, (GST_TRACER_ARGS, element)); \ |
494 | | }G_STMT_END |
495 | | |
496 | | /** |
497 | | * GstTracerHookElementAddPad: |
498 | | * @self: the tracer instance |
499 | | * @ts: the current timestamp |
500 | | * @element: the element |
501 | | * @pad: the pad |
502 | | * |
503 | | * Hook for gst_element_add_pad() named "element-add-pad". |
504 | | */ |
505 | | typedef void (*GstTracerHookElementAddPad) (GObject *self, GstClockTime ts, |
506 | | GstElement *element, GstPad *pad); |
507 | | #define GST_TRACER_ELEMENT_ADD_PAD(element, pad) G_STMT_START{ \ |
508 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_ADD_PAD), \ |
509 | | GstTracerHookElementAddPad, (GST_TRACER_ARGS, element, pad)); \ |
510 | | }G_STMT_END |
511 | | |
512 | | /** |
513 | | * GstTracerHookElementRemovePad: |
514 | | * @self: the tracer instance |
515 | | * @ts: the current timestamp |
516 | | * @element: the element |
517 | | * @pad: the pad |
518 | | * |
519 | | * Hook for gst_element_remove_pad() named "element-remove-pad". |
520 | | */ |
521 | | typedef void (*GstTracerHookElementRemovePad) (GObject *self, GstClockTime ts, |
522 | | GstElement *element, GstPad *pad); |
523 | | #define GST_TRACER_ELEMENT_REMOVE_PAD(element, pad) G_STMT_START{ \ |
524 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_REMOVE_PAD), \ |
525 | | GstTracerHookElementRemovePad, (GST_TRACER_ARGS, element, pad)); \ |
526 | | }G_STMT_END |
527 | | |
528 | | /** |
529 | | * GstTracerHookElementChangeStatePre: |
530 | | * @self: the tracer instance |
531 | | * @ts: the current timestamp |
532 | | * @element: the element |
533 | | * @transition: the transition |
534 | | * |
535 | | * Pre-hook for gst_element_change_state() named "element-change-state-pre". |
536 | | */ |
537 | | typedef void (*GstTracerHookElementChangeStatePre) (GObject *self, |
538 | | GstClockTime ts, GstElement *element, GstStateChange transition); |
539 | | #define GST_TRACER_ELEMENT_CHANGE_STATE_PRE(element, transition) G_STMT_START{ \ |
540 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_CHANGE_STATE_PRE), \ |
541 | | GstTracerHookElementChangeStatePre, (GST_TRACER_ARGS, element, transition)); \ |
542 | | }G_STMT_END |
543 | | |
544 | | /** |
545 | | * GstTracerHookElementChangeStatePost: |
546 | | * @self: the tracer instance |
547 | | * @ts: the current timestamp |
548 | | * @element: the element |
549 | | * @transition: the transition |
550 | | * @result: the result of gst_pad_push() |
551 | | * |
552 | | * Post-hook for gst_element_change_state() named "element-change-state-post". |
553 | | */ |
554 | | typedef void (*GstTracerHookElementChangeStatePost) (GObject *self, |
555 | | GstClockTime ts, GstElement *element, GstStateChange transition, |
556 | | GstStateChangeReturn result); |
557 | | #define GST_TRACER_ELEMENT_CHANGE_STATE_POST(element, transition, result) G_STMT_START{ \ |
558 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_ELEMENT_CHANGE_STATE_POST), \ |
559 | | GstTracerHookElementChangeStatePost, (GST_TRACER_ARGS, element, transition, result)); \ |
560 | | }G_STMT_END |
561 | | |
562 | | /** |
563 | | * GstTracerHookBinAddPre: |
564 | | * @self: the tracer instance |
565 | | * @ts: the current timestamp |
566 | | * @bin: the bin |
567 | | * @element: the element |
568 | | * |
569 | | * Pre-hook for gst_bin_add() named "bin-add-pre". |
570 | | */ |
571 | | typedef void (*GstTracerHookBinAddPre) (GObject *self, GstClockTime ts, |
572 | | GstBin *bin, GstElement *element); |
573 | | #define GST_TRACER_BIN_ADD_PRE(bin, element) G_STMT_START{ \ |
574 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_BIN_ADD_PRE), \ |
575 | | GstTracerHookBinAddPre, (GST_TRACER_ARGS, bin, element)); \ |
576 | | }G_STMT_END |
577 | | |
578 | | /** |
579 | | * GstTracerHookBinAddPost: |
580 | | * @self: the tracer instance |
581 | | * @ts: the current timestamp |
582 | | * @bin: the bin |
583 | | * @element: the element |
584 | | * @result: the result of gst_bin_add() |
585 | | * |
586 | | * Post-hook for gst_bin_add() named "bin-add-post". |
587 | | */ |
588 | | typedef void (*GstTracerHookBinAddPost) (GObject *self, GstClockTime ts, |
589 | | GstBin *bin, GstElement *element, gboolean result); |
590 | | #define GST_TRACER_BIN_ADD_POST(bin, element, result) G_STMT_START{ \ |
591 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_BIN_ADD_POST), \ |
592 | | GstTracerHookBinAddPost, (GST_TRACER_ARGS, bin, element, result)); \ |
593 | | }G_STMT_END |
594 | | |
595 | | /** |
596 | | * GstTracerHookBinRemovePre: |
597 | | * @self: the tracer instance |
598 | | * @ts: the current timestamp |
599 | | * @bin: the bin |
600 | | * @element: the element |
601 | | * |
602 | | * Pre-hook for gst_bin_remove() named "bin-remove-pre". |
603 | | */ |
604 | | typedef void (*GstTracerHookBinRemovePre) (GObject *self, GstClockTime ts, |
605 | | GstBin *bin, GstElement *element); |
606 | | #define GST_TRACER_BIN_REMOVE_PRE(bin, element) G_STMT_START{ \ |
607 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_BIN_REMOVE_PRE), \ |
608 | | GstTracerHookBinRemovePre, (GST_TRACER_ARGS, bin, element)); \ |
609 | | }G_STMT_END |
610 | | |
611 | | /** |
612 | | * GstTracerHookBinRemovePost: |
613 | | * @self: the tracer instance |
614 | | * @ts: the current timestamp |
615 | | * @bin: the bin |
616 | | * @result: the result of gst_bin_remove() |
617 | | * |
618 | | * Post-hook for gst_bin_remove() named "bin-remove-post". |
619 | | */ |
620 | | typedef void (*GstTracerHookBinRemovePost) (GObject *self, GstClockTime ts, |
621 | | GstBin *bin, gboolean result); |
622 | | #define GST_TRACER_BIN_REMOVE_POST(bin, result) G_STMT_START{ \ |
623 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_BIN_REMOVE_POST), \ |
624 | | GstTracerHookBinRemovePost, (GST_TRACER_ARGS, bin, result)); \ |
625 | | }G_STMT_END |
626 | | |
627 | | /** |
628 | | * GstTracerHookPadLinkPre: |
629 | | * @self: the tracer instance |
630 | | * @ts: the current timestamp |
631 | | * @srcpad: the srcpad |
632 | | * @sinkpad: the sinkpad |
633 | | * |
634 | | * Pre-hook for gst_pad_link() named "pad-link-pre". |
635 | | */ |
636 | | typedef void (*GstTracerHookPadLinkPre) (GObject *self, GstClockTime ts, |
637 | | GstPad *srcpad, GstPad *sinkpad); |
638 | | #define GST_TRACER_PAD_LINK_PRE(srcpad, sinkpad) G_STMT_START{ \ |
639 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_LINK_PRE), \ |
640 | | GstTracerHookPadLinkPre, (GST_TRACER_ARGS, srcpad, sinkpad)); \ |
641 | | }G_STMT_END |
642 | | |
643 | | /** |
644 | | * GstTracerHookPadLinkPost: |
645 | | * @self: the tracer instance |
646 | | * @ts: the current timestamp |
647 | | * @srcpad: the srcpad |
648 | | * @sinkpad: the sinkpad |
649 | | * @result: the result of gst_pad_link() |
650 | | * |
651 | | * Post-hook for gst_pad_link() named "pad-link-post". |
652 | | */ |
653 | | typedef void (*GstTracerHookPadLinkPost) (GObject *self, GstClockTime ts, |
654 | | GstPad *srcpad, GstPad *sinkpad, GstPadLinkReturn result); |
655 | | #define GST_TRACER_PAD_LINK_POST(srcpad, sinkpad, result) G_STMT_START{ \ |
656 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_LINK_POST), \ |
657 | | GstTracerHookPadLinkPost, (GST_TRACER_ARGS, srcpad, sinkpad, result)); \ |
658 | | }G_STMT_END |
659 | | |
660 | | /** |
661 | | * GstTracerHookPadUnlinkPre: |
662 | | * @self: the tracer instance |
663 | | * @ts: the current timestamp |
664 | | * @srcpad: the srcpad |
665 | | * @sinkpad: the sinkpad |
666 | | * |
667 | | * Pre-hook for gst_pad_unlink() named "pad-unlink-pre". |
668 | | */ |
669 | | typedef void (*GstTracerHookPadUnlinkPre) (GObject *self, GstClockTime ts, |
670 | | GstPad *srcpad, GstPad *sinkpad); |
671 | | #define GST_TRACER_PAD_UNLINK_PRE(srcpad, sinkpad) G_STMT_START{ \ |
672 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_UNLINK_PRE), \ |
673 | | GstTracerHookPadUnlinkPre, (GST_TRACER_ARGS, srcpad, sinkpad)); \ |
674 | | }G_STMT_END |
675 | | |
676 | | /** |
677 | | * GstTracerHookPadUnlinkPost: |
678 | | * @self: the tracer instance |
679 | | * @ts: the current timestamp |
680 | | * @srcpad: the srcpad |
681 | | * @sinkpad: the sinkpad |
682 | | * @result: the result of gst_pad_push() |
683 | | * |
684 | | * Post-hook for gst_pad_unlink() named "pad-unlink-post". |
685 | | */ |
686 | | typedef void (*GstTracerHookPadUnlinkPost) (GObject *self, GstClockTime ts, |
687 | | GstPad *srcpad, GstPad *sinkpad, gboolean result); |
688 | | #define GST_TRACER_PAD_UNLINK_POST(srcpad, sinkpad, result) G_STMT_START{ \ |
689 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_UNLINK_POST), \ |
690 | | GstTracerHookPadUnlinkPost, (GST_TRACER_ARGS, srcpad, sinkpad, result)); \ |
691 | | }G_STMT_END |
692 | | |
693 | | /** |
694 | | * GstTracerHookMiniObjectCreated: |
695 | | * @self: the tracer instance |
696 | | * @ts: the current timestamp |
697 | | * @object: the mini object being created |
698 | | * |
699 | | * Hook called when a #GstMiniObject is created named "mini-object-created". |
700 | | */ |
701 | | typedef void (*GstTracerHookMiniObjectCreated) (GObject *self, GstClockTime ts, |
702 | | GstMiniObject *object); |
703 | | #define GST_TRACER_MINI_OBJECT_CREATED(object) G_STMT_START{ \ |
704 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MINI_OBJECT_CREATED), \ |
705 | | GstTracerHookMiniObjectCreated, (GST_TRACER_ARGS, object)); \ |
706 | | }G_STMT_END |
707 | | |
708 | | /** |
709 | | * GstTracerHookMiniObjectDestroyed: |
710 | | * @self: the tracer instance |
711 | | * @ts: the current timestamp |
712 | | * @object: the mini object being destroyed |
713 | | * |
714 | | * Hook called when a #GstMiniObject is being destroyed named |
715 | | * "mini-object-destroyed". |
716 | | */ |
717 | | typedef void (*GstTracerHookMiniObjectDestroyed) (GObject *self, GstClockTime ts, |
718 | | GstMiniObject *object); |
719 | | #define GST_TRACER_MINI_OBJECT_DESTROYED(object) G_STMT_START{ \ |
720 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MINI_OBJECT_DESTROYED), \ |
721 | | GstTracerHookMiniObjectDestroyed, (GST_TRACER_ARGS, object)); \ |
722 | | }G_STMT_END |
723 | | |
724 | | /** |
725 | | * GstTracerHookObjectUnreffed: |
726 | | * @self: the tracer instance |
727 | | * @ts: the current timestamp |
728 | | * @object: the object being unreffed |
729 | | * @new_refcount: the new refcount after unrefing @object |
730 | | * |
731 | | * Hook called when a #GstObject is being unreffed named |
732 | | * "object-unreffed" |
733 | | */ |
734 | | typedef void (*GstTracerHookObjectUnreffed) (GObject *self, GstClockTime ts, |
735 | | GstObject *object, gint new_refcount); |
736 | | #define GST_TRACER_OBJECT_UNREFFED(object, new_refcount) G_STMT_START{ \ |
737 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_OBJECT_UNREFFED), \ |
738 | | GstTracerHookObjectUnreffed, (GST_TRACER_ARGS, object, new_refcount)); \ |
739 | | }G_STMT_END |
740 | | |
741 | | /** |
742 | | * GstTracerHookObjectReffed: |
743 | | * @self: the tracer instance |
744 | | * @ts: the current timestamp |
745 | | * @object: the object being reffed |
746 | | * @new_refcount: the new refcount after refing @object |
747 | | * |
748 | | * Hook called when a #GstObject is being reffed named |
749 | | * "object-reffed". |
750 | | */ |
751 | | typedef void (*GstTracerHookObjectReffed) (GObject *self, GstClockTime ts, |
752 | | GstObject *object, gint new_refcount); |
753 | | #define GST_TRACER_OBJECT_REFFED(object, new_refcount) G_STMT_START{ \ |
754 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_OBJECT_REFFED), \ |
755 | | GstTracerHookObjectReffed, (GST_TRACER_ARGS, object, new_refcount)); \ |
756 | | }G_STMT_END |
757 | | |
758 | | /** |
759 | | * GST_TRACER_OBJECT_PARENT_SET: |
760 | | * @object: a #GstObject |
761 | | * @parent: (nullable): the new parent of @object |
762 | | * |
763 | | * Dispatches the "object-parent-set" hook when @object parent changes. |
764 | | * |
765 | | * NOTE: @parent object lock will likely be held when this hook is called. |
766 | | * |
767 | | * Since: 1.30 |
768 | | */ |
769 | | typedef void (*GstTracerHookObjectParentSet) (GObject *self, GstClockTime ts, |
770 | | GstObject *object, GstObject *parent); |
771 | | #define GST_TRACER_OBJECT_PARENT_SET(object, parent) G_STMT_START{ \ |
772 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_OBJECT_PARENT_SET), \ |
773 | | GstTracerHookObjectParentSet, (GST_TRACER_ARGS, object, parent)); \ |
774 | | }G_STMT_END |
775 | | |
776 | | /** |
777 | | * GstTracerHookSpanBegin: |
778 | | * @self: the tracer instance |
779 | | * @ts: the current timestamp |
780 | | * @span_id: identifier for matching the begin and end hooks |
781 | | * @format: the registered span format |
782 | | * @values: (array) (nullable): positional values matching @format |
783 | | * |
784 | | * Hook called when a custom span begins, named |
785 | | * "span-begin". |
786 | | * |
787 | | * Since: 1.30 |
788 | | */ |
789 | | typedef void (*GstTracerHookSpanBegin) (GObject *self, GstClockTime ts, |
790 | | GstTraceSpanId span_id, GstTraceFormat *format, |
791 | | const GstTraceValue *values); |
792 | | |
793 | | /** |
794 | | * GstTracerHookSpanEnd: |
795 | | * @self: the tracer instance |
796 | | * @ts: the current timestamp |
797 | | * @span_id: identifier returned by gst_trace_span_begin() |
798 | | * |
799 | | * Hook called when a custom span ends, named |
800 | | * "span-end". |
801 | | * |
802 | | * Since: 1.30 |
803 | | */ |
804 | | typedef void (*GstTracerHookSpanEnd) (GObject *self, GstClockTime ts, |
805 | | GstTraceSpanId span_id); |
806 | | |
807 | | /** |
808 | | * GstTracerHookEvent: |
809 | | * @self: the tracer instance |
810 | | * @ts: the current timestamp |
811 | | * @format: the registered event format |
812 | | * @values: (array) (nullable): positional values matching @format |
813 | | * |
814 | | * Hook called when a custom point event is emitted, named |
815 | | * "event". |
816 | | * |
817 | | * Since: 1.30 |
818 | | */ |
819 | | typedef void (*GstTracerHookEvent) (GObject *self, GstClockTime ts, |
820 | | GstTraceFormat *format, const GstTraceValue *values); |
821 | | |
822 | | /** |
823 | | * GstTracerHookMiniObjectUnreffed: |
824 | | * @self: the tracer instance |
825 | | * @ts: the current timestamp |
826 | | * @object: the mini object being unreffed |
827 | | * @new_refcount: the new refcount after unrefing @object |
828 | | * |
829 | | * Hook called when a #GstMiniObject is being unreffed named |
830 | | * "mini-object-unreffed". |
831 | | */ |
832 | | typedef void (*GstTracerHookMiniObjectUnreffed) (GObject *self, GstClockTime ts, |
833 | | GstMiniObject *object, gint new_refcount); |
834 | | #define GST_TRACER_MINI_OBJECT_UNREFFED(object, new_refcount) G_STMT_START{ \ |
835 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MINI_OBJECT_UNREFFED), \ |
836 | | GstTracerHookMiniObjectUnreffed, (GST_TRACER_ARGS, object, new_refcount)); \ |
837 | | }G_STMT_END |
838 | | |
839 | | /** |
840 | | * GstTracerHookMiniObjectReffed: |
841 | | * @self: the tracer instance |
842 | | * @ts: the current timestamp |
843 | | * @object: the mini object being reffed |
844 | | * @new_refcount: the new refcount after refing @object |
845 | | * |
846 | | * Hook called when a #GstMiniObject is being reffed named |
847 | | * "mini-object-reffed". |
848 | | */ |
849 | | typedef void (*GstTracerHookMiniObjectReffed) (GObject *self, GstClockTime ts, |
850 | | GstMiniObject *object, gint new_refcount); |
851 | | #define GST_TRACER_MINI_OBJECT_REFFED(object, new_refcount) G_STMT_START{ \ |
852 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MINI_OBJECT_REFFED), \ |
853 | | GstTracerHookMiniObjectReffed, (GST_TRACER_ARGS, object, new_refcount)); \ |
854 | | }G_STMT_END |
855 | | |
856 | | /** |
857 | | * GstTracerHookObjectCreated: |
858 | | * @self: the tracer instance |
859 | | * @ts: the current timestamp |
860 | | * @object: the object being created |
861 | | * |
862 | | * Hook called when a #GstObject is created named "object-created". |
863 | | */ |
864 | | typedef void (*GstTracerHookObjectCreated) (GObject *self, GstClockTime ts, |
865 | | GstObject *object); |
866 | | #define GST_TRACER_OBJECT_CREATED(object) G_STMT_START{ \ |
867 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_OBJECT_CREATED), \ |
868 | | GstTracerHookObjectCreated, (GST_TRACER_ARGS, object)); \ |
869 | | }G_STMT_END |
870 | | |
871 | | /** |
872 | | * GstTracerHookObjectDestroyed: |
873 | | * @self: the tracer instance |
874 | | * @ts: the current timestamp |
875 | | * @object: the object being destroyed |
876 | | * |
877 | | * Hook called when a #GstObject is being destroyed named |
878 | | * "object-destroyed". |
879 | | */ |
880 | | typedef void (*GstTracerHookObjectDestroyed) (GObject *self, GstClockTime ts, |
881 | | GstObject *object); |
882 | | |
883 | | #define GST_TRACER_OBJECT_DESTROYED(object) G_STMT_START{ \ |
884 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_OBJECT_DESTROYED), \ |
885 | | GstTracerHookObjectDestroyed, (GST_TRACER_ARGS, object)); \ |
886 | | }G_STMT_END |
887 | | |
888 | | /** |
889 | | * GstTracerHookPluginFeatureLoaded: |
890 | | * @self: the tracer instance |
891 | | * @ts: the current timestamp |
892 | | * @feature: the plugin feature that was loaded |
893 | | * |
894 | | * Hook called when a GstPluginFeature is loaded named |
895 | | * "plugin-feature-loaded". |
896 | | * |
897 | | * Since: 1.20 |
898 | | */ |
899 | | typedef void (*GstTracerHookPluginFeatureLoaded) (GObject *self, GstClockTime ts, |
900 | | GstPluginFeature *feature); |
901 | | /** |
902 | | * GST_TRACER_PLUGIN_FEATURE_LOADED: |
903 | | * @feature: The feature that this tracer is called for |
904 | | * |
905 | | * Add a tracepoint when a plugin feature is loaded. |
906 | | * |
907 | | * Since: 1.20 |
908 | | */ |
909 | | #define GST_TRACER_PLUGIN_FEATURE_LOADED(feature) G_STMT_START{ \ |
910 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PLUGIN_FEATURE_LOADED), \ |
911 | | GstTracerHookPluginFeatureLoaded, (GST_TRACER_ARGS, feature)); \ |
912 | | }G_STMT_END |
913 | | |
914 | | /** |
915 | | * GstTracerHookPadChainPre: |
916 | | * @self: the tracer instance |
917 | | * @ts: the current timestamp |
918 | | * @pad: the pad |
919 | | * @buffer: the buffer |
920 | | * |
921 | | * Pre-hook for gst_pad_chain() named "pad-chain-pre". |
922 | | * |
923 | | * Since: 1.22 |
924 | | */ |
925 | | typedef void (*GstTracerHookPadChainPre) (GObject *self, GstClockTime ts, |
926 | | GstPad *pad, GstBuffer *buffer); |
927 | | |
928 | | /** |
929 | | * GST_TRACER_PAD_CHAIN_PRE: |
930 | | * @pad: a %GstPad |
931 | | * @buffer: a %GstBuffer |
932 | | * |
933 | | * Dispatches the "pad-chain-pre" hook. |
934 | | * |
935 | | * Since: 1.22 |
936 | | */ |
937 | | #define GST_TRACER_PAD_CHAIN_PRE(pad, buffer) G_STMT_START{ \ |
938 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_CHAIN_PRE), \ |
939 | | GstTracerHookPadChainPre, (GST_TRACER_ARGS, pad, buffer)); \ |
940 | | }G_STMT_END |
941 | | |
942 | | /** |
943 | | * GstTracerHookPadChainPost: |
944 | | * @self: the tracer instance |
945 | | * @ts: the current timestamp |
946 | | * @pad: the pad |
947 | | * @res: the result of gst_pad_chain() |
948 | | * |
949 | | * Post-hook for gst_pad_chain() named "pad-chain-post". |
950 | | * |
951 | | * Since: 1.22 |
952 | | */ |
953 | | typedef void (*GstTracerHookPadChainPost) (GObject * self, GstClockTime ts, |
954 | | GstPad *pad, GstFlowReturn res); |
955 | | |
956 | | /** |
957 | | * GST_TRACER_PAD_CHAIN_POST: |
958 | | * @pad: a %GstPad |
959 | | * @res: a %GstFlowReturn |
960 | | * |
961 | | * Dispatches the "pad-chain-post" hook. |
962 | | * |
963 | | * Since: 1.22 |
964 | | */ |
965 | | #define GST_TRACER_PAD_CHAIN_POST(pad, res) G_STMT_START{ \ |
966 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_CHAIN_POST), \ |
967 | | GstTracerHookPadChainPost, (GST_TRACER_ARGS, pad, res)); \ |
968 | | }G_STMT_END |
969 | | |
970 | | /** |
971 | | * GstTracerHookPadChainListPre: |
972 | | * @self: the tracer instance |
973 | | * @ts: the current timestamp |
974 | | * @pad: the pad |
975 | | * @list: the buffer-list |
976 | | * |
977 | | * Pre-hook for gst_pad_chain_list() named "pad-chain-list-pre". |
978 | | * |
979 | | * Since: 1.22 |
980 | | */ |
981 | | typedef void (*GstTracerHookPadChainListPre) (GObject *self, GstClockTime ts, |
982 | | GstPad *pad, GstBufferList *list); |
983 | | |
984 | | /** |
985 | | * GST_TRACER_PAD_CHAIN_LIST_PRE: |
986 | | * @pad: a %GstPad |
987 | | * @list: a %GstBufferList |
988 | | * |
989 | | * Dispatches the "pad-chain-list-pre" hook. |
990 | | * |
991 | | * Since: 1.22 |
992 | | */ |
993 | | #define GST_TRACER_PAD_CHAIN_LIST_PRE(pad, list) G_STMT_START{ \ |
994 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_CHAIN_LIST_PRE), \ |
995 | | GstTracerHookPadChainListPre, (GST_TRACER_ARGS, pad, list)); \ |
996 | | }G_STMT_END |
997 | | |
998 | | /** |
999 | | * GstTracerHookPadChainListPost: |
1000 | | * @self: the tracer instance |
1001 | | * @ts: the current timestamp |
1002 | | * @pad: the pad |
1003 | | * @res: the result of gst_pad_chain_list() |
1004 | | * |
1005 | | * Post-hook for gst_pad_chain_list() named "pad-chain-list-post". |
1006 | | * |
1007 | | * Since: 1.22 |
1008 | | */ |
1009 | | typedef void (*GstTracerHookPadChainListPost) (GObject *self, GstClockTime ts, |
1010 | | GstPad *pad, |
1011 | | GstFlowReturn res); |
1012 | | |
1013 | | /** |
1014 | | * GST_TRACER_PAD_CHAIN_LIST_POST: |
1015 | | * @pad: a %GstPad |
1016 | | * @res: a %GstFlowReturn |
1017 | | * |
1018 | | * Dispatches the "pad-chain-list-post" hook. |
1019 | | * |
1020 | | * Since: 1.22 |
1021 | | */ |
1022 | | #define GST_TRACER_PAD_CHAIN_LIST_POST(pad, res) G_STMT_START{ \ |
1023 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_PAD_CHAIN_LIST_POST), \ |
1024 | | GstTracerHookPadChainListPost, (GST_TRACER_ARGS, pad, res)); \ |
1025 | | }G_STMT_END |
1026 | | |
1027 | | /** |
1028 | | * GstTracerHookMemoryInit: |
1029 | | * @self: the tracer instance |
1030 | | * @ts: the current timestamp |
1031 | | * @mem: The GstMemory that was initialized |
1032 | | * |
1033 | | * Hook for memory initialization named "memory-init". |
1034 | | * |
1035 | | * Since: 1.26 |
1036 | | */ |
1037 | | typedef void (*GstTracerHookMemoryInit) (GObject *self, GstClockTime ts, |
1038 | | GstMemory *mem); |
1039 | | /** |
1040 | | * GST_TRACER_MEMORY_INIT: |
1041 | | * @mem: a #GstMemory |
1042 | | * |
1043 | | * Dispatches the "memory-init" hook. |
1044 | | * |
1045 | | * Since: 1.26 |
1046 | | */ |
1047 | | #define GST_TRACER_MEMORY_INIT(mem) G_STMT_START{ \ |
1048 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MEMORY_INIT), \ |
1049 | | GstTracerHookMemoryInit, (GST_TRACER_ARGS, mem)); \ |
1050 | | }G_STMT_END |
1051 | | |
1052 | | /** |
1053 | | * GstTracerHookMemoryFreePre: |
1054 | | * @self: the tracer instance |
1055 | | * @ts: the current timestamp |
1056 | | * @mem: the memory object for which the memory will be freed. |
1057 | | * |
1058 | | * Pre-hook for memory freeing named "memory-free-pre". |
1059 | | * |
1060 | | * Since: 1.26 |
1061 | | */ |
1062 | | typedef void (*GstTracerHookMemoryFreePre) (GObject *self, GstClockTime ts, GstMemory *mem); |
1063 | | /** |
1064 | | * GST_TRACER_MEMORY_FREE_PRE: |
1065 | | * @mem: the memory object |
1066 | | * |
1067 | | * Dispatches the "memory-free-pre" hook. |
1068 | | * |
1069 | | * Since: 1.26 |
1070 | | */ |
1071 | | #define GST_TRACER_MEMORY_FREE_PRE(mem) G_STMT_START{ \ |
1072 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MEMORY_FREE_PRE), \ |
1073 | | GstTracerHookMemoryFreePre, (GST_TRACER_ARGS, mem)); \ |
1074 | | }G_STMT_END |
1075 | | |
1076 | | /** |
1077 | | * GstTracerHookMemoryFreePost: |
1078 | | * @self: the tracer instance |
1079 | | * @ts: the current timestamp |
1080 | | * @mem: pointer to the memory object that has been freed |
1081 | | * |
1082 | | * Post-hook for memory freeing named "memory-free-post". |
1083 | | * |
1084 | | * Since: 1.26 |
1085 | | */ |
1086 | | typedef void (*GstTracerHookMemoryFreePost) (GObject *self, GstClockTime ts, GstMemory *mem); |
1087 | | /** |
1088 | | * GST_TRACER_MEMORY_FREE_POST: |
1089 | | * @mem: pointer to the memory object that has been freed |
1090 | | * |
1091 | | * Dispatches the "memory-free-post" hook. |
1092 | | * |
1093 | | * Since: 1.26 |
1094 | | */ |
1095 | | #define GST_TRACER_MEMORY_FREE_POST(mem) G_STMT_START{ \ |
1096 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_MEMORY_FREE_POST), \ |
1097 | | GstTracerHookMemoryFreePost, (GST_TRACER_ARGS, mem)); \ |
1098 | | }G_STMT_END |
1099 | | |
1100 | | |
1101 | | /** |
1102 | | * GstTracerHookPoolBufferQueued: |
1103 | | * @self: the tracer instance |
1104 | | * @ts: the current timestamp |
1105 | | * @pool: a #GstBufferPool |
1106 | | * @buffer: pointer to the #GstBuffer that has been queued into @pool |
1107 | | * |
1108 | | * Hook for pool buffer queued named "pool-buffer-queued". |
1109 | | * |
1110 | | * Since: 1.28 |
1111 | | */ |
1112 | | typedef void (*GstTracerHookPoolBufferQueued) (GObject *self, GstClockTime ts, GstBufferPool *pool, GstBuffer *buffer); |
1113 | | /** |
1114 | | * GST_TRACER_POOL_BUFFER_QUEUED: |
1115 | | * @pool: a #GstBufferPool |
1116 | | * @buffer: pointer to the #GstBuffer that has been queued into @pool |
1117 | | * |
1118 | | * Dispatches the "pool-buffer-queued" hook. |
1119 | | * |
1120 | | * Since: 1.28 |
1121 | | */ |
1122 | | #define GST_TRACER_POOL_BUFFER_QUEUED(pool, buf) G_STMT_START{ \ |
1123 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_POOL_BUFFER_QUEUED), \ |
1124 | | GstTracerHookPoolBufferQueued, (GST_TRACER_ARGS, pool, buf)); \ |
1125 | | }G_STMT_END |
1126 | | |
1127 | | /** |
1128 | | * GstTracerHookPoolBufferDequeued: |
1129 | | * @self: the tracer instance |
1130 | | * @ts: the current timestamp |
1131 | | * @pool: a #GstBufferPool |
1132 | | * @buffer: pointer to the #GstBuffer that has been dequeued from @pool |
1133 | | * |
1134 | | * Hook for pool buffer dequeued named "pool-buffer-dequeued". |
1135 | | * |
1136 | | * Since: 1.28 |
1137 | | */ |
1138 | | typedef void (*GstTracerHookPoolBufferDequeued) (GObject *self, GstClockTime ts, GstBufferPool *pool, GstBuffer *buffer); |
1139 | | /** |
1140 | | * GST_TRACER_POOL_BUFFER_DEQUEUED: |
1141 | | * @pool: a #GstBufferPool |
1142 | | * @buffer: pointer to the #GstBuffer that has been dequeued from @pool |
1143 | | * |
1144 | | * Dispatches the "pool-buffer-dequeued" hook. |
1145 | | * |
1146 | | * Since: 1.28 |
1147 | | */ |
1148 | | #define GST_TRACER_POOL_BUFFER_DEQUEUED(pool, buffer) G_STMT_START{ \ |
1149 | | GST_TRACER_DISPATCH(GST_TRACER_QUARK(HOOK_POOL_BUFFER_DEQUEUED), \ |
1150 | | GstTracerHookPoolBufferDequeued, (GST_TRACER_ARGS, pool, buffer)); \ |
1151 | | }G_STMT_END |
1152 | | |
1153 | | #else /* !GST_DISABLE_GST_TRACER_HOOKS */ |
1154 | | |
1155 | | static inline void |
1156 | | _priv_gst_tracing_init (void) |
1157 | 0 | { |
1158 | 0 | GST_DEBUG ("Tracing hooks are disabled"); |
1159 | 0 | } Unexecuted instantiation: gstenumtypes.c:_priv_gst_tracing_init Unexecuted instantiation: lex.priv_gst_parse_yy.c:_priv_gst_tracing_init Unexecuted instantiation: grammar.tab.c:_priv_gst_tracing_init Unexecuted instantiation: gst.c:_priv_gst_tracing_init Unexecuted instantiation: gstobject.c:_priv_gst_tracing_init Unexecuted instantiation: gstallocator.c:_priv_gst_tracing_init Unexecuted instantiation: gstbin.c:_priv_gst_tracing_init Unexecuted instantiation: gstbuffer.c:_priv_gst_tracing_init Unexecuted instantiation: gstbufferlist.c:_priv_gst_tracing_init Unexecuted instantiation: gstbufferpool.c:_priv_gst_tracing_init Unexecuted instantiation: gstbus.c:_priv_gst_tracing_init Unexecuted instantiation: gstcaps.c:_priv_gst_tracing_init Unexecuted instantiation: gstcapsfeatures.c:_priv_gst_tracing_init Unexecuted instantiation: gstchildproxy.c:_priv_gst_tracing_init Unexecuted instantiation: gstclock.c:_priv_gst_tracing_init Unexecuted instantiation: gstcontext.c:_priv_gst_tracing_init Unexecuted instantiation: gstcontrolbinding.c:_priv_gst_tracing_init Unexecuted instantiation: gstcontrolsource.c:_priv_gst_tracing_init Unexecuted instantiation: gstdatetime.c:_priv_gst_tracing_init Unexecuted instantiation: gstdebugutils.c:_priv_gst_tracing_init Unexecuted instantiation: gstdevice.c:_priv_gst_tracing_init Unexecuted instantiation: gstdeviceprovider.c:_priv_gst_tracing_init Unexecuted instantiation: gstdeviceproviderfactory.c:_priv_gst_tracing_init Unexecuted instantiation: gstdynamictypefactory.c:_priv_gst_tracing_init Unexecuted instantiation: gstelement.c:_priv_gst_tracing_init Unexecuted instantiation: gstelementfactory.c:_priv_gst_tracing_init Unexecuted instantiation: gsterror.c:_priv_gst_tracing_init Unexecuted instantiation: gstevent.c:_priv_gst_tracing_init Unexecuted instantiation: gstformat.c:_priv_gst_tracing_init Unexecuted instantiation: gstghostpad.c:_priv_gst_tracing_init Unexecuted instantiation: gstdevicemonitor.c:_priv_gst_tracing_init Unexecuted instantiation: gstinfo.c:_priv_gst_tracing_init Unexecuted instantiation: gstiterator.c:_priv_gst_tracing_init Unexecuted instantiation: gstatomicqueue.c:_priv_gst_tracing_init Unexecuted instantiation: gstmessage.c:_priv_gst_tracing_init Unexecuted instantiation: gstmeta.c:_priv_gst_tracing_init Unexecuted instantiation: gstmetafactory.c:_priv_gst_tracing_init Unexecuted instantiation: gstmemory.c:_priv_gst_tracing_init Unexecuted instantiation: gstminiobject.c:_priv_gst_tracing_init Unexecuted instantiation: gstpad.c:_priv_gst_tracing_init Unexecuted instantiation: gstpadtemplate.c:_priv_gst_tracing_init Unexecuted instantiation: gstparamspecs.c:_priv_gst_tracing_init Unexecuted instantiation: gstpipeline.c:_priv_gst_tracing_init Unexecuted instantiation: gstplugin.c:_priv_gst_tracing_init Unexecuted instantiation: gstpluginfeature.c:_priv_gst_tracing_init Unexecuted instantiation: gstpoll.c:_priv_gst_tracing_init Unexecuted instantiation: gstpreset.c:_priv_gst_tracing_init Unexecuted instantiation: gstprotection.c:_priv_gst_tracing_init Unexecuted instantiation: gstquery.c:_priv_gst_tracing_init Unexecuted instantiation: gstregistry.c:_priv_gst_tracing_init Unexecuted instantiation: gstregistrychunks.c:_priv_gst_tracing_init Unexecuted instantiation: gstpromise.c:_priv_gst_tracing_init Unexecuted instantiation: gstsample.c:_priv_gst_tracing_init Unexecuted instantiation: gstsegment.c:_priv_gst_tracing_init Unexecuted instantiation: gststreamcollection.c:_priv_gst_tracing_init Unexecuted instantiation: gststreams.c:_priv_gst_tracing_init Unexecuted instantiation: gststructure.c:_priv_gst_tracing_init Unexecuted instantiation: gstsystemclock.c:_priv_gst_tracing_init Unexecuted instantiation: gsttaglist.c:_priv_gst_tracing_init Unexecuted instantiation: gsttagsetter.c:_priv_gst_tracing_init Unexecuted instantiation: gsttask.c:_priv_gst_tracing_init Unexecuted instantiation: gsttaskpool.c:_priv_gst_tracing_init Unexecuted instantiation: gsttoc.c:_priv_gst_tracing_init Unexecuted instantiation: gsttocsetter.c:_priv_gst_tracing_init Unexecuted instantiation: gsttracer.c:_priv_gst_tracing_init Unexecuted instantiation: gsttracerfactory.c:_priv_gst_tracing_init Unexecuted instantiation: gsttracerrecord.c:_priv_gst_tracing_init Unexecuted instantiation: gsttracerutils.c:_priv_gst_tracing_init Unexecuted instantiation: gsttypefind.c:_priv_gst_tracing_init Unexecuted instantiation: gsttypefindfactory.c:_priv_gst_tracing_init Unexecuted instantiation: gsturi.c:_priv_gst_tracing_init Unexecuted instantiation: gstutils.c:_priv_gst_tracing_init Unexecuted instantiation: gstvalue.c:_priv_gst_tracing_init Unexecuted instantiation: gstparse.c:_priv_gst_tracing_init Unexecuted instantiation: gstpluginloader.c:_priv_gst_tracing_init Unexecuted instantiation: gstregistrybinary.c:_priv_gst_tracing_init |
1160 | | |
1161 | | static inline void |
1162 | | _priv_gst_tracing_deinit (void) |
1163 | 0 | { |
1164 | 0 | } Unexecuted instantiation: gstenumtypes.c:_priv_gst_tracing_deinit Unexecuted instantiation: lex.priv_gst_parse_yy.c:_priv_gst_tracing_deinit Unexecuted instantiation: grammar.tab.c:_priv_gst_tracing_deinit Unexecuted instantiation: gst.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstobject.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstallocator.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstbin.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstbuffer.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstbufferlist.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstbufferpool.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstbus.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstcaps.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstcapsfeatures.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstchildproxy.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstclock.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstcontext.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstcontrolbinding.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstcontrolsource.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdatetime.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdebugutils.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdevice.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdeviceprovider.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdeviceproviderfactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdynamictypefactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstelement.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstelementfactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsterror.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstevent.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstformat.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstghostpad.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstdevicemonitor.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstinfo.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstiterator.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstatomicqueue.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstmessage.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstmeta.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstmetafactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstmemory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstminiobject.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpad.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpadtemplate.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstparamspecs.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpipeline.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstplugin.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpluginfeature.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpoll.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpreset.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstprotection.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstquery.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstregistry.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstregistrychunks.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpromise.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstsample.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstsegment.c:_priv_gst_tracing_deinit Unexecuted instantiation: gststreamcollection.c:_priv_gst_tracing_deinit Unexecuted instantiation: gststreams.c:_priv_gst_tracing_deinit Unexecuted instantiation: gststructure.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstsystemclock.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttaglist.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttagsetter.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttask.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttaskpool.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttoc.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttocsetter.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttracer.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttracerfactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttracerrecord.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttracerutils.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttypefind.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsttypefindfactory.c:_priv_gst_tracing_deinit Unexecuted instantiation: gsturi.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstutils.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstvalue.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstparse.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstpluginloader.c:_priv_gst_tracing_deinit Unexecuted instantiation: gstregistrybinary.c:_priv_gst_tracing_deinit |
1165 | | |
1166 | | #define GST_TRACER_PAD_PUSH_PRE(pad, buffer) |
1167 | | #define GST_TRACER_PAD_PUSH_POST(pad, res) |
1168 | | #define GST_TRACER_PAD_PUSH_LIST_PRE(pad, list) |
1169 | | #define GST_TRACER_PAD_PUSH_LIST_POST(pad, res) |
1170 | | #define GST_TRACER_PAD_PULL_RANGE_PRE(pad, offset, size) |
1171 | | #define GST_TRACER_PAD_PULL_RANGE_POST(pad, buffer, res) |
1172 | | #define GST_TRACER_PAD_PUSH_EVENT_PRE(pad, event) |
1173 | | #define GST_TRACER_PAD_PUSH_EVENT_POST(pad, res) |
1174 | | #define GST_TRACER_PAD_QUERY_PRE(pad, query) |
1175 | | #define GST_TRACER_PAD_QUERY_POST(pad, query, res) |
1176 | | #define GST_TRACER_ELEMENT_POST_MESSAGE_PRE(element, message) |
1177 | | #define GST_TRACER_ELEMENT_POST_MESSAGE_POST(element, res) |
1178 | | #define GST_TRACER_ELEMENT_QUERY_PRE(element, query) |
1179 | | #define GST_TRACER_ELEMENT_QUERY_POST(element, query, res) |
1180 | | #define GST_TRACER_ELEMENT_NEW(element) |
1181 | | #define GST_TRACER_ELEMENT_ADD_PAD(element, pad) |
1182 | | #define GST_TRACER_ELEMENT_REMOVE_PAD(element, pad) |
1183 | | #define GST_TRACER_ELEMENT_CHANGE_STATE_PRE(element, transition) |
1184 | | #define GST_TRACER_ELEMENT_CHANGE_STATE_POST(element, transition, res) |
1185 | | #define GST_TRACER_BIN_ADD_PRE(bin, element) |
1186 | | #define GST_TRACER_BIN_ADD_POST(bin, element, res) |
1187 | | #define GST_TRACER_BIN_REMOVE_PRE(bin, element) |
1188 | | #define GST_TRACER_BIN_REMOVE_POST(bin, res) |
1189 | | #define GST_TRACER_PAD_LINK_PRE(srcpad, sinkpad) |
1190 | | #define GST_TRACER_PAD_LINK_POST(srcpad, sinkpad, res) |
1191 | | #define GST_TRACER_PAD_UNLINK_PRE(srcpad, sinkpad) |
1192 | | #define GST_TRACER_PAD_UNLINK_POST(srcpad, sinkpad, res) |
1193 | | #define GST_TRACER_MINI_OBJECT_CREATED(object) |
1194 | | #define GST_TRACER_MINI_OBJECT_DESTROYED(object) |
1195 | | #define GST_TRACER_MINI_OBJECT_REFFED(object, new_refcount) |
1196 | | #define GST_TRACER_MINI_OBJECT_UNREFFED(object, new_refcount) |
1197 | | #define GST_TRACER_OBJECT_CREATED(object) |
1198 | | #define GST_TRACER_OBJECT_DESTROYED(object) |
1199 | | #define GST_TRACER_OBJECT_REFFED(object, new_refcount) |
1200 | | #define GST_TRACER_OBJECT_UNREFFED(object, new_refcount) |
1201 | | #define GST_TRACER_OBJECT_PARENT_SET(object, parent) |
1202 | | #define GST_TRACER_PLUGIN_FEATURE_LOADED(feature) |
1203 | | #define GST_TRACER_PAD_CHAIN_PRE(pad, buffer) |
1204 | | #define GST_TRACER_PAD_CHAIN_POST(pad, res) |
1205 | | #define GST_TRACER_PAD_CHAIN_LIST_PRE(pad, list) |
1206 | | #define GST_TRACER_PAD_CHAIN_LIST_POST(pad, res) |
1207 | | #define GST_TRACER_PAD_SEND_EVENT_PRE(pad, event) |
1208 | | #define GST_TRACER_PAD_SEND_EVENT_POST(pad, res) |
1209 | | #define GST_TRACER_MEMORY_INIT(mem) |
1210 | | #define GST_TRACER_MEMORY_FREE_PRE(mem) |
1211 | | #define GST_TRACER_MEMORY_FREE_POST(mem) |
1212 | | #define GST_TRACER_POOL_BUFFER_QUEUED(pool, buffer) |
1213 | | #define GST_TRACER_POOL_BUFFER_DEQUEUED(pool, buffer) |
1214 | | |
1215 | | |
1216 | | #endif /* GST_DISABLE_GST_TRACER_HOOKS */ |
1217 | | |
1218 | | G_END_DECLS |
1219 | | |
1220 | | #endif /* __GST_TRACER_UTILS_H__ */ |