GStreamer

 view release on metacpan or  search on metacpan

xs/Gst.xs  view on Meta::CPAN

	 * own log handler.  Since it's installed later, it seems to be
	 * preferred, so our's is never actually invoked. */
	gperl_handle_logs_for ("GStreamer");

# --------------------------------------------------------------------------- #

=for apidoc __hide__
=cut
void
GET_VERSION_INFO (class)
    PPCODE:
	EXTEND (SP, 3);
	/* 0.10.17 provides these macros, but with a different name. */
#if GST_CHECK_VERSION (0, 10, 17)
	PUSHs (sv_2mortal (newSViv (GST_VERSION_MAJOR)));
	PUSHs (sv_2mortal (newSViv (GST_VERSION_MINOR)));
	PUSHs (sv_2mortal (newSViv (GST_VERSION_MICRO)));
#else
	PUSHs (sv_2mortal (newSViv (GST_MAJOR_VERSION)));
	PUSHs (sv_2mortal (newSViv (GST_MINOR_VERSION)));
	PUSHs (sv_2mortal (newSViv (GST_MICRO_VERSION)));

xs/Gst.xs  view on Meta::CPAN

    OUTPUT:
	RETVAL

=for apidoc __hide__
=cut
# void gst_version (guint *major, guint *minor, guint *micro, guint *nano);
void
gst_version (class)
    PREINIT:
	guint major, minor, micro, nano;
    PPCODE:
	PERL_UNUSED_VAR (ax);
	gst_version (&major, &minor, &micro, &nano);
	EXTEND (sp, 3);
	PUSHs (sv_2mortal (newSVuv (major)));
	PUSHs (sv_2mortal (newSVuv (minor)));
	PUSHs (sv_2mortal (newSVuv (micro)));
	PUSHs (sv_2mortal (newSVuv (nano)));

=for apidoc __hide__
=cut

xs/GstChildProxy.xs  view on Meta::CPAN

# FIXME: Needed?
# gboolean gst_child_proxy_lookup (GstObject *object, const gchar *name, GstObject **target, GParamSpec **pspec);

# void gst_child_proxy_get_property (GstObject * object, const gchar *name, GValue *value);
# void gst_child_proxy_get_valist (GstObject * object, const gchar * first_property_name, va_list var_args);
# void gst_child_proxy_get (GstObject * object, const gchar * first_property_name, ...);
void
gst_child_proxy_get_child_property (GstObject *object, const gchar *property, ...)
    PREINIT:
	int i;
    PPCODE:
	for (i = 1; i < items; i++) {
		char *name = SvGChar (ST (i));
		SV *sv;

		GParamSpec *pspec;
		GValue value = { 0, };
		GstObject *target = NULL;

		if (!gst_child_proxy_lookup (object, name, &target, &pspec)) {
			const char * classname =

xs/GstClock.xs  view on Meta::CPAN

	clock, gst_object_ref (master)

GstClock_ornull * gst_clock_get_master (GstClock *clock);

# gboolean gst_clock_add_observation (GstClock *clock, GstClockTime slave, GstClockTime master, gdouble *r_squared);
void
gst_clock_add_observation (GstClock *clock, GstClockTime slave, GstClockTime master)
    PREINIT:
	gboolean retval;
	gdouble r_squared;
    PPCODE:
	retval = gst_clock_add_observation (clock, slave, master, &r_squared);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVuv (retval)));
	PUSHs (sv_2mortal (newSVnv (r_squared)));

GstClockTime gst_clock_get_internal_time (GstClock *clock);

GstClockTime gst_clock_adjust_unlocked (GstClock *clock, GstClockTime internal);

GstClockID gst_clock_new_single_shot_id (GstClock *clock, GstClockTime time);

xs/GstClock.xs  view on Meta::CPAN


GstClockTime gst_clock_id_get_time (GstClockID id);

# GstClockReturn gst_clock_id_wait (GstClockID id, GstClockTimeDiff *jitter);
void
gst_clock_id_wait (id)
	GstClockID id
    PREINIT:
	GstClockReturn retval = 0;
	GstClockTimeDiff jitter = 0;
    PPCODE:
	retval = gst_clock_id_wait (id, &jitter);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGstClockReturn (retval)));
	PUSHs (sv_2mortal (newSVGstClockTime (jitter)));

# GstClockReturn gst_clock_id_wait_async (GstClockID id, GstClockCallback func, gpointer user_data);
GstClockReturn
gst_clock_id_wait_async (id, func, data=NULL);
	GstClockID id
	SV *func

xs/GstElement.xs  view on Meta::CPAN

	element, gst_event_ref (event)

gboolean gst_element_seek (GstElement *element, gdouble rate, GstFormat format, GstSeekFlags flags, GstSeekType cur_type, gint64 cur, GstSeekType stop_type, gint64 stop);

# G_CONST_RETURN GstQueryType* gst_element_get_query_types (GstElement *element);
void
gst_element_get_query_types (element)
	GstElement *element
    PREINIT:
	GstQueryType *types;
    PPCODE:
	types = (GstQueryType *) gst_element_get_query_types (element);
	if (types)
		while (*types++)
			XPUSHs (sv_2mortal (newSVGstQueryType (*types)));

gboolean gst_element_query (GstElement *element, GstQuery *query);

# gboolean gst_element_post_message (GstElement * element, GstMessage * message);
gboolean
gst_element_post_message (GstElement * element, GstMessage * message)

xs/GstElement.xs  view on Meta::CPAN


gboolean gst_element_sync_state_with_parent (GstElement *element);

# GstStateChangeReturn gst_element_get_state (GstElement * element, GstState * state, GstState * pending, GstClockTime timeout);
void
gst_element_get_state (GstElement * element, GstClockTime timeout)
    PREINIT:
	GstStateChangeReturn retval;
	GstState state;
	GstState pending;
    PPCODE:
	retval = gst_element_get_state (element, &state, &pending, timeout);
	EXTEND (sp, 3);
	PUSHs (sv_2mortal (newSVGstStateChangeReturn (retval)));
	PUSHs (sv_2mortal (newSVGstState (state)));
	PUSHs (sv_2mortal (newSVGstState (pending)));

GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state);

void gst_element_abort_state (GstElement * element);

xs/GstElementFactory.xs  view on Meta::CPAN

const gchar * gst_element_factory_get_author (GstElementFactory *factory);

# FIXME: Need GstStaticPadTemplate handlers.
# # guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
# # const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
# void
# gst_element_factory_get_static_pad_templates (factory)
# 	GstElementFactory *factory
#     PREINIT:
# 	GList *templates, *i;
#     PPCODE:
# 	templates = (GList *) gst_element_factory_get_static_pad_templates (factory);
# 	for (i = templates; i != NULL; i = i->next)
# 		XPUSHs (sv_2mortal (newSVGstPadTemplate (i->data)));

GstURIType gst_element_factory_get_uri_type (GstElementFactory *factory);

# gchar ** gst_element_factory_get_uri_protocols (GstElementFactory *factory);
void
gst_element_factory_get_uri_protocols (factory)
	GstElementFactory *factory
    PREINIT:
	gchar **uris;
    PPCODE:
	uris = gst_element_factory_get_uri_protocols (factory);
	if (uris) {
		gchar *uri;
		while ((uri = *(uris++)) != NULL)
		XPUSHs (sv_2mortal (newSVGChar (uri)));
	}

GstElement_ornull * gst_element_factory_create (GstElementFactory *factory, const gchar_ornull *name);

# GstElement * gst_element_factory_make (const gchar *factoryname, const gchar *name);
void
gst_element_factory_make (class, factoryname, name, ...);
	const gchar *factoryname
	const gchar *name
    PREINIT:
	int i;
    PPCODE:
	for (i = 1; i < items; i += 2)
		XPUSHs (
		  sv_2mortal (
		    newSVGstElement_ornull (
		      gst_element_factory_make (SvGChar (ST (i)),
		                                SvGChar (ST (i + 1))))));

# void __gst_element_factory_add_static_pad_template (GstElementFactory *elementfactory, GstStaticPadTemplate *templ);
# void __gst_element_factory_add_interface (GstElementFactory *elementfactory, const gchar *interfacename);

xs/GstFormat.xs  view on Meta::CPAN

# gboolean gst_formats_contains (const GstFormat *formats, GstFormat format);

=for apidoc __function__
=cut
# G_CONST_RETURN GstFormatDefinition* gst_format_get_details (GstFormat format);
void
gst_format_get_details (format)
	GstFormat format
    PREINIT:
	const GstFormatDefinition *details;
    PPCODE:
	details = gst_format_get_details (format);
	if (details) {
		EXTEND (sp, 3);
		PUSHs (sv_2mortal (newSVGstFormat (details->value)));
		PUSHs (sv_2mortal (newSVGChar (details->nick)));
		PUSHs (sv_2mortal (newSVGChar (details->description)));
	}

# FIXME
# GstIterator * gst_format_iterate_definitions (void);

xs/GstPad.xs  view on Meta::CPAN

	/* We need to keep the buffer alive. */
	pad, gst_buffer_ref (buffer)

gboolean gst_pad_check_pull_range (GstPad *pad);

# GstFlowReturn gst_pad_pull_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer);
void gst_pad_pull_range (GstPad *pad, guint64 offset, guint size)
    PREINIT:
	GstFlowReturn retval;
	GstBuffer *buffer = NULL;
    PPCODE:
	retval = gst_pad_pull_range (pad, offset, size, &buffer);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGstFlowReturn (retval)));
	PUSHs (sv_2mortal (newSVGstBuffer_ornull (buffer)));

gboolean gst_pad_push_event (GstPad *pad, GstEvent *event)
    C_ARGS:
	/* Need to keep event alive. */
	pad, gst_event_ref (event)

xs/GstPad.xs  view on Meta::CPAN

GstFlowReturn gst_pad_chain (GstPad *pad, GstBuffer *buffer)
    C_ARGS:
	/* We need to keep the buffer alive. */
	pad, gst_buffer_ref (buffer)

# GstFlowReturn gst_pad_get_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer);
void gst_pad_get_range (GstPad *pad, guint64 offset, guint size);
    PREINIT:
	GstFlowReturn retval;
	GstBuffer *buffer = NULL;
    PPCODE:
	retval = gst_pad_get_range (pad, offset, size, &buffer);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGstFlowReturn (retval)));
	PUSHs (sv_2mortal (newSVGstBuffer_ornull (buffer)));

gboolean gst_pad_send_event (GstPad *pad, GstEvent *event)
    C_ARGS:
	/* Need to keep event alive. */
	pad, gst_event_ref (event)

xs/GstPad.xs  view on Meta::CPAN


# GList* gst_pad_get_internal_links (GstPad *pad);
# GList* gst_pad_get_internal_links_default (GstPad *pad);
void
gst_pad_get_internal_links (pad)
	GstPad *pad
    ALIAS:
	get_internal_links_default = 1
    PREINIT:
	GList *list, *i;
    PPCODE:
	list = ix == 1 ? gst_pad_get_internal_links_default (pad) :
	                 gst_pad_get_internal_links (pad);
	for (i = list; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPad (i->data)));

# FIXME?
# void gst_pad_set_query_type_function (GstPad *pad, GstPadQueryTypeFunction type_func);

# G_CONST_RETURN GstQueryType* gst_pad_get_query_types (GstPad *pad);
# G_CONST_RETURN GstQueryType* gst_pad_get_query_types_default (GstPad *pad);
void
gst_pad_get_query_types (pad)
	GstPad *pad
    ALIAS:
	get_query_types_default = 1
    PREINIT:
	const GstQueryType *types = NULL;
    PPCODE:
	types = ix == 1 ? gst_pad_get_query_types_default (pad) :
	                  gst_pad_get_query_types (pad);
	if (types)
		while (*types++)
			XPUSHs (sv_2mortal (newSVGstQueryType (*types)));

gboolean gst_pad_query (GstPad *pad, GstQuery *query);

# FIXME?
# void gst_pad_set_query_function (GstPad *pad, GstPadQueryFunction query);

xs/GstQuery.xs  view on Meta::CPAN

# gboolean gst_query_types_contains (const GstQueryType *types, GstQueryType type);

=for apidoc __function__
=cut
# G_CONST_RETURN GstQueryTypeDefinition* gst_query_type_get_details (GstQueryType type);
void
gst_query_type_get_details (type)
	GstQueryType type
    PREINIT:
	const GstQueryTypeDefinition *details;
    PPCODE:
	details = gst_query_type_get_details (type);
	if (details) {
		EXTEND (sp, 3);
		PUSHs (sv_2mortal (newSVGstQueryType (details->value)));
		PUSHs (sv_2mortal (newSVGChar (details->nick)));
		PUSHs (sv_2mortal (newSVGChar (details->description)));
	}

# FIXME: Need to somehow apply our converter to the content.
# GstIterator * gst_query_type_iterate_definitions (void);

xs/GstQuery.xs  view on Meta::CPAN

    OUTPUT:
	RETVAL

# void gst_query_set_position (GstQuery *query, GstFormat format, gint64 cur);
# void gst_query_parse_position (GstQuery *query, GstFormat *format, gint64 *cur);
void
position (GstQuery *query, GstFormat format=0, gint64 cur=0)
    PREINIT:
	GstFormat old_format;
	gint64 old_cur;
    PPCODE:
	gst_query_parse_position (query, &old_format, &old_cur);
	if (items == 3)
		gst_query_set_position (query, format, cur);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGstFormat (old_format)));
	PUSHs (sv_2mortal (newSVGInt64 (old_cur)));

# --------------------------------------------------------------------------- #

MODULE = GStreamer::Query	PACKAGE = GStreamer::Query::Duration

xs/GstQuery.xs  view on Meta::CPAN

    OUTPUT:
	RETVAL

# void gst_query_set_duration (GstQuery *query, GstFormat format, gint64 duration);
# void gst_query_parse_duration (GstQuery *query, GstFormat *format, gint64 *duration);
void
duration (GstQuery *query, GstFormat format=0, gint64 duration=0)
    PREINIT:
	GstFormat old_format;
	gint64 old_duration;
    PPCODE:
	gst_query_parse_duration (query, &old_format, &old_duration);
	if (items == 3)
		gst_query_set_duration (query, format, duration);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGstFormat (old_format)));
	PUSHs (sv_2mortal (newSVGInt64 (old_duration)));

# --------------------------------------------------------------------------- #

MODULE = GStreamer::Query	PACKAGE = GStreamer::Query::Convert

xs/GstQuery.xs  view on Meta::CPAN


# void gst_query_set_convert (GstQuery *query, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 dest_value);
# void gst_query_parse_convert (GstQuery *query, GstFormat *src_format, gint64 *src_value, GstFormat *dest_format, gint64 *dest_value);
void
convert (GstQuery *query, GstFormat src_format=0, gint64 src_value=0, GstFormat dest_format=0, gint64 dest_value=0)
    PREINIT:
	GstFormat old_src_format;
	gint64 old_src_value;
	GstFormat old_dest_format;
	gint64 old_dest_value;
    PPCODE:
	gst_query_parse_convert (query, &old_src_format, &old_src_value, &old_dest_format, &old_dest_value);
	if (items == 5)
		gst_query_set_convert (query, src_format, src_value, dest_format, dest_value);
	EXTEND (sp, 4);
	PUSHs (sv_2mortal (newSVGstFormat (old_src_format)));
	PUSHs (sv_2mortal (newSVGInt64 (old_src_value)));
	PUSHs (sv_2mortal (newSVGstFormat (old_dest_format)));
	PUSHs (sv_2mortal (newSVGInt64 (old_dest_value)));

# --------------------------------------------------------------------------- #

xs/GstQuery.xs  view on Meta::CPAN


# void gst_query_set_segment (GstQuery *query, gdouble rate, GstFormat format, gint64 start_value, gint64 stop_value);
# void gst_query_parse_segment (GstQuery *query, gdouble *rate, GstFormat *format, gint64 *start_value, gint64 *stop_value);
void
segment (GstQuery *query, gdouble rate=0.0, GstFormat format=0, gint64 start_value=0, gint64 stop_value=0)
    PREINIT:
	gdouble old_rate;
	GstFormat old_format;
	gint64 old_start_value;
	gint64 old_stop_value;
    PPCODE:
	gst_query_parse_segment (query, &old_rate, &old_format, &old_start_value, &old_stop_value);
	if (items == 5)
		gst_query_set_segment (query, rate, format, start_value, stop_value);
	EXTEND (sp, 4);
	PUSHs (sv_2mortal (newSVnv (old_rate)));
	PUSHs (sv_2mortal (newSVGstFormat (old_format)));
	PUSHs (sv_2mortal (newSVGInt64 (old_start_value)));
	PUSHs (sv_2mortal (newSVGInt64 (old_stop_value)));

# --------------------------------------------------------------------------- #

xs/GstRegistry.xs  view on Meta::CPAN

	/* void */

void gst_registry_scan_path (GstRegistry *registry, const gchar *path);

# GList* gst_registry_get_path_list (GstRegistry *registry);
void
gst_registry_get_path_list (registry)
	GstRegistry *registry
    PREINIT:
	GList *paths, *i;
    PPCODE:
	paths = gst_registry_get_path_list (registry);
	for (i = paths; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGChar (i->data)));
	g_list_free (paths);

gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin);

void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin);

gboolean gst_registry_add_feature (GstRegistry * registry, GstPluginFeature * feature);

void gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature);

# GList * gst_registry_get_plugin_list (GstRegistry *registry);
void
gst_registry_get_plugin_list (registry)
	GstRegistry *registry
    PREINIT:
	GList *plugins, *i;
    PPCODE:
	plugins = gst_registry_get_plugin_list (registry);
	for (i = plugins; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPlugin (i->data)));
	g_list_free (plugins);

# GList* gst_registry_plugin_filter (GstRegistry *registry, GstPluginFilter filter, gboolean first, gpointer user_data);
void
gst_registry_plugin_filter (registry, filter, first, data=NULL)
	GstRegistry *registry
	SV *filter
	gboolean first
	SV *data
    PREINIT:
	GPerlCallback *callback;
	GList *list, *i;
    PPCODE:
	callback = gst2perl_plugin_filter_create (filter, data);
	list = gst_registry_plugin_filter (registry,
	                                   gst2perl_plugin_filter,
	                                   first,
	                                   callback);

	for (i = list; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPlugin (i->data)));

	g_list_free (list);

xs/GstRegistry.xs  view on Meta::CPAN

# GList* gst_registry_feature_filter (GstRegistry *registry, GstPluginFeatureFilter filter, gboolean first, gpointer user_data);
void
gst_registry_feature_filter (registry, filter, first, data=NULL)
	GstRegistry *registry
	SV *filter
	gboolean first
	SV *data
    PREINIT:
	GPerlCallback *callback;
	GList *list, *i;
    PPCODE:
	callback = gst2perl_plugin_feature_filter_create (filter, data);
	list = gst_registry_feature_filter (registry,
	                                    gst2perl_plugin_feature_filter,
	                                    first,
	                                    callback);

	for (i = list; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPluginFeature (i->data)));

	g_list_free (list);
	gperl_callback_destroy (callback);

# GList * gst_registry_get_feature_list (GstRegistry *registry, GType type);
void
gst_registry_get_feature_list (registry, type)
	GstRegistry *registry
	const char *type
    PREINIT:
	GList *features, *i;
    PPCODE:
	features = gst_registry_get_feature_list (registry, gperl_type_from_package (type));
	for (i = features; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPluginFeature (i->data)));
	g_list_free (features);

# GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name);
void
gst_registry_get_feature_list_by_plugin (registry, name)
	GstRegistry *registry
	const gchar *name
    PREINIT:
	GList *features, *i;
    PPCODE:
	features = gst_registry_get_feature_list_by_plugin (registry, name);
	for (i = features; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstPluginFeature (i->data)));
	g_list_free (features);

GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name);

# GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type);
GstPluginFeature *
gst_registry_find_feature (registry, name, type)

xs/GstTypeFindFactory.xs  view on Meta::CPAN


=for object GStreamer::TypeFindFactory Information about registered typefind functions

=cut

# GList * gst_type_find_factory_get_list (void);
void
gst_type_find_factory_get_list (class)
    PREINIT:
	GList *list, *i;
    PPCODE:
	PERL_UNUSED_VAR (ax);
	list = gst_type_find_factory_get_list ();
	for (i = list; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVGstTypeFindFactory (i->data)));
	g_list_free (list);

# gchar ** gst_type_find_factory_get_extensions (GstTypeFindFactory *factory);
void
gst_type_find_factory_get_extensions (GstTypeFindFactory *factory)
    PREINIT:
	gchar **list;
	gchar *ext;
    PPCODE:
	list = gst_type_find_factory_get_extensions (factory);
	while (list && (ext = *list++))
		XPUSHs (sv_2mortal (newSVGChar (ext)));

GstCaps * gst_type_find_factory_get_caps (GstTypeFindFactory *factory);

# FIXME: Need GstTypeFind support.
# void gst_type_find_factory_call_function (GstTypeFindFactory *factory, GstTypeFind *find);



( run in 0.500 second using v1.01-cache-2.11-cpan-5511b514fd6 )