2002-04-01 06:30:39 +00:00
|
|
|
#include <glib-object.h>
|
2002-04-07 23:32:16 +00:00
|
|
|
#include "../gstelement.h"
|
2002-04-01 06:30:39 +00:00
|
|
|
|
|
|
|
typedef struct {
|
2002-04-07 23:32:16 +00:00
|
|
|
gchar *type;
|
|
|
|
gint index;
|
2002-04-01 06:30:39 +00:00
|
|
|
GList *property_values;
|
2002-04-07 23:32:16 +00:00
|
|
|
GstElement *element;
|
2002-04-01 06:30:39 +00:00
|
|
|
} element_t;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
gchar *name;
|
2002-04-07 23:32:16 +00:00
|
|
|
GValue *value;
|
2002-04-01 06:30:39 +00:00
|
|
|
} property_t;
|
|
|
|
|
|
|
|
typedef struct {
|
2002-04-07 23:32:16 +00:00
|
|
|
/* if the names are present, upon connection we'll search out the pads of the
|
|
|
|
proper name and use those. otherwise, we'll search for elements of src_index
|
|
|
|
and sink_index. */
|
|
|
|
char *src_name;
|
|
|
|
char *sink_name;
|
|
|
|
int src_index;
|
|
|
|
int sink_index;
|
2002-04-01 06:30:39 +00:00
|
|
|
GList *src_pads;
|
|
|
|
GList *sink_pads;
|
|
|
|
} connection_t;
|
|
|
|
|
2002-04-07 23:32:16 +00:00
|
|
|
typedef struct _graph_t graph_t;
|
|
|
|
|
|
|
|
struct _graph_t {
|
|
|
|
element_t *first;
|
2002-04-01 06:30:39 +00:00
|
|
|
element_t *current;
|
2002-04-07 23:32:16 +00:00
|
|
|
graph_t *parent;
|
2002-04-01 06:30:39 +00:00
|
|
|
gchar *current_bin_type;
|
|
|
|
GList *elements;
|
|
|
|
GList *connections;
|
|
|
|
GList *connections_pending;
|
|
|
|
GList *bins;
|
2002-04-07 23:32:16 +00:00
|
|
|
GstElement *bin;
|
|
|
|
};
|
|
|
|
|
|
|
|
graph_t * _gst_parse_launch (const gchar *str, GError **error);
|
2002-04-01 06:30:39 +00:00
|
|
|
|
2002-04-13 17:11:42 +00:00
|
|
|
gchar *_gst_parse_escape (const gchar *str);
|
|
|
|
void _gst_parse_unescape (gchar *str);
|