1 #ifndef __GST_PARSE_TYPES_H__
2 #define __GST_PARSE_TYPES_H__
4 #include <glib-object.h>
5 #include "../gstelement.h"
6 #include "../gstparse.h"
26 typedef struct _graph_t graph_t;
28 chain_t *chain; /* links are supposed to be done now */
31 GstParseContext *ctx; /* may be NULL */
37 * Memory checking. Should probably be done with gsttrace stuff, but that
38 * doesn't really work.
39 * This is not safe from reentrance issues, but that doesn't matter as long as
40 * we lock a mutex before parsing anyway.
42 #ifdef GST_DEBUG_ENABLED
43 # define __GST_PARSE_TRACE
46 #ifdef __GST_PARSE_TRACE
47 gchar *__gst_parse_strdup (gchar *org);
48 void __gst_parse_strfree (gchar *str);
49 link_t *__gst_parse_link_new ();
50 void __gst_parse_link_free (link_t *data);
51 chain_t *__gst_parse_chain_new ();
52 void __gst_parse_chain_free (chain_t *data);
53 # define gst_parse_strdup __gst_parse_strdup
54 # define gst_parse_strfree __gst_parse_strfree
55 # define gst_parse_link_new __gst_parse_link_new
56 # define gst_parse_link_free __gst_parse_link_free
57 # define gst_parse_chain_new __gst_parse_chain_new
58 # define gst_parse_chain_free __gst_parse_chain_free
59 #else /* __GST_PARSE_TRACE */
60 # define gst_parse_strdup g_strdup
61 # define gst_parse_strfree g_free
62 # define gst_parse_link_new() g_new0 (link_t, 1)
63 # define gst_parse_link_free g_free
64 # define gst_parse_chain_new() g_new0 (chain_t, 1)
65 # define gst_parse_chain_free g_free
66 #endif /* __GST_PARSE_TRACE */
69 gst_parse_unescape (gchar *str)
74 g_return_if_fail (str != NULL);
80 if (*walk == '\\' && !in_quotes) {
82 /* make sure we don't read beyond the end of the string */
85 } else if (*walk == '"' && (!in_quotes || (in_quotes
86 && (*(walk - 1) != '\\')))) {
87 /* don't unescape inside quotes and don't switch
88 * state with escaped quoted inside quotes */
89 in_quotes = !in_quotes;
98 GstElement *_gst_parse_launch (const gchar *, GError **,
99 GstParseContext *, GstParseFlags);
101 #endif /* __GST_PARSE_TYPES_H__ */