mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 00:58:12 +00:00
parse: Add boxed type for GstParseContext for gobject-introspection
This commit is contained in:
parent
bf6c3ea6df
commit
2d7c81f1d7
3 changed files with 40 additions and 0 deletions
|
@ -758,6 +758,7 @@ init_post (GOptionContext * context, GOptionGroup * group, gpointer data,
|
||||||
_gst_buffer_list_initialize ();
|
_gst_buffer_list_initialize ();
|
||||||
_gst_message_initialize ();
|
_gst_message_initialize ();
|
||||||
_gst_tag_initialize ();
|
_gst_tag_initialize ();
|
||||||
|
gst_parse_context_get_type ();
|
||||||
|
|
||||||
_gst_plugin_initialize ();
|
_gst_plugin_initialize ();
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,42 @@
|
||||||
#include "parse/types.h"
|
#include "parse/types.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
_prepend_missing_element (gchar * element, GList ** list)
|
||||||
|
{
|
||||||
|
*list = g_list_prepend (*list, g_strdup (element));
|
||||||
|
}
|
||||||
|
|
||||||
|
static GstParseContext *
|
||||||
|
gst_parse_context_copy (const GstParseContext * context)
|
||||||
|
{
|
||||||
|
GstParseContext *ret = NULL;
|
||||||
|
#ifndef GST_DISABLE_PARSE
|
||||||
|
|
||||||
|
ret = gst_parse_context_new ();
|
||||||
|
if (context) {
|
||||||
|
g_list_foreach (context->missing_elements, (GFunc) _prepend_missing_element,
|
||||||
|
&ret->missing_elements);
|
||||||
|
ret->missing_elements = g_list_reverse (ret->missing_elements);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
gst_parse_context_get_type (void)
|
||||||
|
{
|
||||||
|
static GType type = 0;
|
||||||
|
|
||||||
|
if (G_UNLIKELY (type == 0)) {
|
||||||
|
type = g_boxed_type_register_static ("GstParseContext",
|
||||||
|
(GBoxedCopyFunc) gst_parse_context_copy,
|
||||||
|
(GBoxedFreeFunc) gst_parse_context_free);
|
||||||
|
}
|
||||||
|
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_parse_error_quark:
|
* gst_parse_error_quark:
|
||||||
*
|
*
|
||||||
|
|
|
@ -75,6 +75,8 @@ typedef enum
|
||||||
GST_PARSE_FLAG_FATAL_ERRORS = (1 << 0)
|
GST_PARSE_FLAG_FATAL_ERRORS = (1 << 0)
|
||||||
} GstParseFlags;
|
} GstParseFlags;
|
||||||
|
|
||||||
|
#define GST_TYPE_PARSE_CONTEXT (gst_parse_context_get_type())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstParseContext:
|
* GstParseContext:
|
||||||
*
|
*
|
||||||
|
@ -86,6 +88,7 @@ typedef struct _GstParseContext GstParseContext;
|
||||||
|
|
||||||
/* create, process and free a parse context */
|
/* create, process and free a parse context */
|
||||||
|
|
||||||
|
GType gst_parse_context_get_type (void);
|
||||||
GstParseContext * gst_parse_context_new (void);
|
GstParseContext * gst_parse_context_new (void);
|
||||||
|
|
||||||
gchar ** gst_parse_context_get_missing_elements (GstParseContext * context);
|
gchar ** gst_parse_context_get_missing_elements (GstParseContext * context);
|
||||||
|
|
Loading…
Reference in a new issue