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"
27 typedef struct _graph_t graph_t;
29 chain_t *chain; /* links are supposed to be done now */
32 GstParseContext *ctx; /* may be NULL */
38 * Memory checking. Should probably be done with gsttrace stuff, but that
39 * doesn't really work.
40 * This is not safe from reentrance issues, but that doesn't matter as long as
41 * we lock a mutex before parsing anyway.
43 * FIXME: Disable this for now for the above reasons
46 #ifdef GST_DEBUG_ENABLED
47 # define __GST_PARSE_TRACE
51 #ifdef __GST_PARSE_TRACE
52 G_GNUC_INTERNAL gchar *__gst_parse_strdup (gchar *org);
53 G_GNUC_INTERNAL void __gst_parse_strfree (gchar *str);
54 G_GNUC_INTERNAL link_t *__gst_parse_link_new (void);
55 G_GNUC_INTERNAL void __gst_parse_link_free (link_t *data);
56 G_GNUC_INTERNAL chain_t *__gst_parse_chain_new (void);
57 G_GNUC_INTERNAL void __gst_parse_chain_free (chain_t *data);
58 # define gst_parse_strdup __gst_parse_strdup
59 # define gst_parse_strfree __gst_parse_strfree
60 # define gst_parse_link_new __gst_parse_link_new
61 # define gst_parse_link_free __gst_parse_link_free
62 # define gst_parse_chain_new __gst_parse_chain_new
63 # define gst_parse_chain_free __gst_parse_chain_free
64 #else /* __GST_PARSE_TRACE */
65 # define gst_parse_strdup g_strdup
66 # define gst_parse_strfree g_free
67 # define gst_parse_link_new() g_slice_new0 (link_t)
68 # define gst_parse_link_free(l) g_slice_free (link_t, l)
69 # define gst_parse_chain_new() g_slice_new0 (chain_t)
70 # define gst_parse_chain_free(c) g_slice_free (chain_t, c)
71 #endif /* __GST_PARSE_TRACE */
74 gst_parse_unescape (gchar *str)
79 g_return_if_fail (str != NULL);
84 GST_DEBUG ("unescaping %s", str);
87 if (*walk == '\\' && !in_quotes) {
89 /* make sure we don't read beyond the end of the string */
92 } else if (*walk == '"' && (!in_quotes || *(walk - 1) != '\\')) {
93 /* don't unescape inside quotes and don't switch
94 * state with escaped quoted inside quotes */
95 in_quotes = !in_quotes;
104 G_GNUC_INTERNAL GstElement *priv_gst_parse_launch (const gchar * str,
106 GstParseContext * ctx,
107 GstParseFlags flags);
109 #endif /* __GST_PARSE_TYPES_H__ */