/* This file is automatically generated. Any changes made here will be lost. */

/* This header defines simple perlapi-ish macros for creating SV wrappers
 * and extracting the GPerl value from SV wrappers.  These macros are used
 * by the autogenerated typemaps, and are defined here so that you can use
 * the same logic anywhere in your code (e.g., if you handle the argument
 * stack by hand instead of using the typemap). */

#ifdef GST_TYPE_BIN
  typedef GstBin GstBin_ornull;
# define SvGstBin(sv)		((GstBin *) gperl_get_object_check (sv, GST_TYPE_BIN))
# define newSVGstBin(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstBin_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstBin (sv) : NULL)
# define newSVGstBin_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstBin (val))
#endif /* GST_TYPE_BIN */

#ifdef GST_TYPE_BUS
  typedef GstBus GstBus_ornull;
# define SvGstBus(sv)		((GstBus *) gperl_get_object_check (sv, GST_TYPE_BUS))
# define newSVGstBus(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstBus_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstBus (sv) : NULL)
# define newSVGstBus_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstBus (val))
#endif /* GST_TYPE_BUS */

#ifdef GST_TYPE_CLOCK
  typedef GstClock GstClock_ornull;
# define SvGstClock(sv)		((GstClock *) gperl_get_object_check (sv, GST_TYPE_CLOCK))
# define newSVGstClock(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstClock_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstClock (sv) : NULL)
# define newSVGstClock_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstClock (val))
#endif /* GST_TYPE_CLOCK */

#ifdef GST_TYPE_ELEMENT
  typedef GstElement GstElement_ornull;
# define SvGstElement(sv)		((GstElement *) gperl_get_object_check (sv, GST_TYPE_ELEMENT))
# define newSVGstElement(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstElement_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstElement (sv) : NULL)
# define newSVGstElement_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstElement (val))
#endif /* GST_TYPE_ELEMENT */

#ifdef GST_TYPE_ELEMENT_FACTORY
  typedef GstElementFactory GstElementFactory_ornull;
# define SvGstElementFactory(sv)		((GstElementFactory *) gperl_get_object_check (sv, GST_TYPE_ELEMENT_FACTORY))
# define newSVGstElementFactory(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstElementFactory_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstElementFactory (sv) : NULL)
# define newSVGstElementFactory_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstElementFactory (val))
#endif /* GST_TYPE_ELEMENT_FACTORY */

#ifdef GST_TYPE_GHOST_PAD
  typedef GstGhostPad GstGhostPad_ornull;
# define SvGstGhostPad(sv)		((GstGhostPad *) gperl_get_object_check (sv, GST_TYPE_GHOST_PAD))
# define newSVGstGhostPad(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstGhostPad_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstGhostPad (sv) : NULL)
# define newSVGstGhostPad_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstGhostPad (val))
#endif /* GST_TYPE_GHOST_PAD */

#ifdef GST_TYPE_INDEX
  typedef GstIndex GstIndex_ornull;
# define SvGstIndex(sv)		((GstIndex *) gperl_get_object_check (sv, GST_TYPE_INDEX))
# define newSVGstIndex(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstIndex_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstIndex (sv) : NULL)
# define newSVGstIndex_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstIndex (val))
#endif /* GST_TYPE_INDEX */

#ifdef GST_TYPE_INDEX_FACTORY
  typedef GstIndexFactory GstIndexFactory_ornull;
# define SvGstIndexFactory(sv)		((GstIndexFactory *) gperl_get_object_check (sv, GST_TYPE_INDEX_FACTORY))
# define newSVGstIndexFactory(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstIndexFactory_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstIndexFactory (sv) : NULL)
# define newSVGstIndexFactory_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstIndexFactory (val))
#endif /* GST_TYPE_INDEX_FACTORY */

#ifdef GST_TYPE_OBJECT
  typedef GstObject GstObject_ornull;
# define SvGstObject(sv)		((GstObject *) gperl_get_object_check (sv, GST_TYPE_OBJECT))
# define newSVGstObject(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstObject_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstObject (sv) : NULL)
# define newSVGstObject_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstObject (val))
#endif /* GST_TYPE_OBJECT */

#ifdef GST_TYPE_PAD
  typedef GstPad GstPad_ornull;
# define SvGstPad(sv)		((GstPad *) gperl_get_object_check (sv, GST_TYPE_PAD))
# define newSVGstPad(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstPad_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstPad (sv) : NULL)
# define newSVGstPad_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstPad (val))
#endif /* GST_TYPE_PAD */

#ifdef GST_TYPE_PAD_TEMPLATE
  typedef GstPadTemplate GstPadTemplate_ornull;
# define SvGstPadTemplate(sv)		((GstPadTemplate *) gperl_get_object_check (sv, GST_TYPE_PAD_TEMPLATE))
# define newSVGstPadTemplate(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstPadTemplate_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstPadTemplate (sv) : NULL)
# define newSVGstPadTemplate_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstPadTemplate (val))
#endif /* GST_TYPE_PAD_TEMPLATE */

#ifdef GST_TYPE_PIPELINE
  typedef GstPipeline GstPipeline_ornull;
# define SvGstPipeline(sv)		((GstPipeline *) gperl_get_object_check (sv, GST_TYPE_PIPELINE))
# define newSVGstPipeline(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstPipeline_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstPipeline (sv) : NULL)
# define newSVGstPipeline_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstPipeline (val))
#endif /* GST_TYPE_PIPELINE */

#ifdef GST_TYPE_PLUGIN
  typedef GstPlugin GstPlugin_ornull;
# define SvGstPlugin(sv)		((GstPlugin *) gperl_get_object_check (sv, GST_TYPE_PLUGIN))
# define newSVGstPlugin(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstPlugin_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstPlugin (sv) : NULL)
# define newSVGstPlugin_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstPlugin (val))
#endif /* GST_TYPE_PLUGIN */

#ifdef GST_TYPE_PLUGIN_FEATURE
  typedef GstPluginFeature GstPluginFeature_ornull;
# define SvGstPluginFeature(sv)		((GstPluginFeature *) gperl_get_object_check (sv, GST_TYPE_PLUGIN_FEATURE))
# define newSVGstPluginFeature(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstPluginFeature_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstPluginFeature (sv) : NULL)
# define newSVGstPluginFeature_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstPluginFeature (val))
#endif /* GST_TYPE_PLUGIN_FEATURE */

#ifdef GST_TYPE_QUEUE
  typedef GstQueue GstQueue_ornull;
# define SvGstQueue(sv)		((GstQueue *) gperl_get_object_check (sv, GST_TYPE_QUEUE))
# define newSVGstQueue(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstQueue_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstQueue (sv) : NULL)
# define newSVGstQueue_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstQueue (val))
#endif /* GST_TYPE_QUEUE */

#ifdef GST_TYPE_REGISTRY
  typedef GstRegistry GstRegistry_ornull;
# define SvGstRegistry(sv)		((GstRegistry *) gperl_get_object_check (sv, GST_TYPE_REGISTRY))
# define newSVGstRegistry(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstRegistry_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstRegistry (sv) : NULL)
# define newSVGstRegistry_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstRegistry (val))
#endif /* GST_TYPE_REGISTRY */

#ifdef GST_TYPE_SYSTEM_CLOCK
  typedef GstSystemClock GstSystemClock_ornull;
# define SvGstSystemClock(sv)		((GstSystemClock *) gperl_get_object_check (sv, GST_TYPE_SYSTEM_CLOCK))
# define newSVGstSystemClock(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstSystemClock_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstSystemClock (sv) : NULL)
# define newSVGstSystemClock_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstSystemClock (val))
#endif /* GST_TYPE_SYSTEM_CLOCK */

#ifdef GST_TYPE_TASK
  typedef GstTask GstTask_ornull;
# define SvGstTask(sv)		((GstTask *) gperl_get_object_check (sv, GST_TYPE_TASK))
# define newSVGstTask(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstTask_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstTask (sv) : NULL)
# define newSVGstTask_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstTask (val))
#endif /* GST_TYPE_TASK */

#ifdef GST_TYPE_TYPE_FIND_FACTORY
  typedef GstTypeFindFactory GstTypeFindFactory_ornull;
# define SvGstTypeFindFactory(sv)		((GstTypeFindFactory *) gperl_get_object_check (sv, GST_TYPE_TYPE_FIND_FACTORY))
# define newSVGstTypeFindFactory(val)		(gperl_new_object (G_OBJECT (val), TRUE))
# define SvGstTypeFindFactory_ornull(sv)	(((sv) && SvOK (sv)) ? SvGstTypeFindFactory (sv) : NULL)
# define newSVGstTypeFindFactory_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstTypeFindFactory (val))
#endif /* GST_TYPE_TYPE_FIND_FACTORY */

#ifdef GST_TYPE_CHILD_PROXY
  /* GInterface derivative GstChildProxy */
# define SvGstChildProxy(sv)	((GstChildProxy*)gperl_get_object_check (sv, GST_TYPE_CHILD_PROXY))
# define newSVGstChildProxy(val)	(gperl_new_object (G_OBJECT (val), FALSE))
  typedef GstChildProxy GstChildProxy_ornull;
# define SvGstChildProxy_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstChildProxy(sv) : NULL)
# define newSVGstChildProxy_ornull(val)	(((val) == NULL) ? &PL_sv_undef : gperl_new_object (G_OBJECT (val), FALSE))
#endif /* GST_TYPE_CHILD_PROXY */

#ifdef GST_TYPE_TAG_SETTER
  /* GInterface derivative GstTagSetter */
# define SvGstTagSetter(sv)	((GstTagSetter*)gperl_get_object_check (sv, GST_TYPE_TAG_SETTER))
# define newSVGstTagSetter(val)	(gperl_new_object (G_OBJECT (val), FALSE))
  typedef GstTagSetter GstTagSetter_ornull;
# define SvGstTagSetter_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstTagSetter(sv) : NULL)
# define newSVGstTagSetter_ornull(val)	(((val) == NULL) ? &PL_sv_undef : gperl_new_object (G_OBJECT (val), FALSE))
#endif /* GST_TYPE_TAG_SETTER */

#ifdef GST_TYPE_URI_HANDLER
  /* GInterface derivative GstURIHandler */
# define SvGstURIHandler(sv)	((GstURIHandler*)gperl_get_object_check (sv, GST_TYPE_URI_HANDLER))
# define newSVGstURIHandler(val)	(gperl_new_object (G_OBJECT (val), FALSE))
  typedef GstURIHandler GstURIHandler_ornull;
# define SvGstURIHandler_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstURIHandler(sv) : NULL)
# define newSVGstURIHandler_ornull(val)	(((val) == NULL) ? &PL_sv_undef : gperl_new_object (G_OBJECT (val), FALSE))
#endif /* GST_TYPE_URI_HANDLER */

#ifdef GST_TYPE_BUFFER
  typedef GstBuffer GstBuffer_ornull;
  typedef GstBuffer GstBuffer_noinc;
  typedef GstBuffer GstBuffer_noinc_ornull;
# define SvGstBuffer(sv)			((GstBuffer *) gst2perl_mini_object_from_sv (sv))
# define SvGstBuffer_ornull(sv)		(((sv) && SvOK (sv)) ? SvGstBuffer(sv) : NULL)
# define newSVGstBuffer(val)			(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), TRUE))
# define newSVGstBuffer_ornull(val)		(((val) == NULL) ? &PL_sv_undef : newSVGstBuffer(val))
# define newSVGstBuffer_noinc(val)		(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), FALSE))
# define newSVGstBuffer_noinc_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstBuffer_noinc(val))
#endif /* GST_TYPE_BUFFER */

#ifdef GST_TYPE_EVENT
  typedef GstEvent GstEvent_ornull;
  typedef GstEvent GstEvent_noinc;
  typedef GstEvent GstEvent_noinc_ornull;
# define SvGstEvent(sv)			((GstEvent *) gst2perl_mini_object_from_sv (sv))
# define SvGstEvent_ornull(sv)		(((sv) && SvOK (sv)) ? SvGstEvent(sv) : NULL)
# define newSVGstEvent(val)			(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), TRUE))
# define newSVGstEvent_ornull(val)		(((val) == NULL) ? &PL_sv_undef : newSVGstEvent(val))
# define newSVGstEvent_noinc(val)		(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), FALSE))
# define newSVGstEvent_noinc_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstEvent_noinc(val))
#endif /* GST_TYPE_EVENT */

#ifdef GST_TYPE_MESSAGE
  typedef GstMessage GstMessage_ornull;
  typedef GstMessage GstMessage_noinc;
  typedef GstMessage GstMessage_noinc_ornull;
# define SvGstMessage(sv)			((GstMessage *) gst2perl_mini_object_from_sv (sv))
# define SvGstMessage_ornull(sv)		(((sv) && SvOK (sv)) ? SvGstMessage(sv) : NULL)
# define newSVGstMessage(val)			(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), TRUE))
# define newSVGstMessage_ornull(val)		(((val) == NULL) ? &PL_sv_undef : newSVGstMessage(val))
# define newSVGstMessage_noinc(val)		(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), FALSE))
# define newSVGstMessage_noinc_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstMessage_noinc(val))
#endif /* GST_TYPE_MESSAGE */

#ifdef GST_TYPE_MINI_OBJECT
  typedef GstMiniObject GstMiniObject_ornull;
  typedef GstMiniObject GstMiniObject_noinc;
  typedef GstMiniObject GstMiniObject_noinc_ornull;
# define SvGstMiniObject(sv)			((GstMiniObject *) gst2perl_mini_object_from_sv (sv))
# define SvGstMiniObject_ornull(sv)		(((sv) && SvOK (sv)) ? SvGstMiniObject(sv) : NULL)
# define newSVGstMiniObject(val)			(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), TRUE))
# define newSVGstMiniObject_ornull(val)		(((val) == NULL) ? &PL_sv_undef : newSVGstMiniObject(val))
# define newSVGstMiniObject_noinc(val)		(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), FALSE))
# define newSVGstMiniObject_noinc_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstMiniObject_noinc(val))
#endif /* GST_TYPE_MINI_OBJECT */

#ifdef GST_TYPE_QUERY
  typedef GstQuery GstQuery_ornull;
  typedef GstQuery GstQuery_noinc;
  typedef GstQuery GstQuery_noinc_ornull;
# define SvGstQuery(sv)			((GstQuery *) gst2perl_mini_object_from_sv (sv))
# define SvGstQuery_ornull(sv)		(((sv) && SvOK (sv)) ? SvGstQuery(sv) : NULL)
# define newSVGstQuery(val)			(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), TRUE))
# define newSVGstQuery_ornull(val)		(((val) == NULL) ? &PL_sv_undef : newSVGstQuery(val))
# define newSVGstQuery_noinc(val)		(gst2perl_sv_from_mini_object (GST_MINI_OBJECT (val), FALSE))
# define newSVGstQuery_noinc_ornull(val)	(((val) == NULL) ? &PL_sv_undef : newSVGstQuery_noinc(val))
#endif /* GST_TYPE_QUERY */

#ifdef GST_TYPE_CAPS
  /* GBoxed GstCaps */
  typedef GstCaps GstCaps_ornull;
# define SvGstCaps(sv)	((GstCaps *) gperl_get_boxed_check ((sv), GST_TYPE_CAPS))
# define SvGstCaps_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstCaps (sv) : NULL)
  typedef GstCaps GstCaps_own;
  typedef GstCaps GstCaps_copy;
  typedef GstCaps GstCaps_own_ornull;
# define newSVGstCaps(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_CAPS, FALSE))
# define newSVGstCaps_ornull(val)	((val) ? newSVGstCaps(val) : &PL_sv_undef)
# define newSVGstCaps_own(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_CAPS, TRUE))
# define newSVGstCaps_copy(val)	(gperl_new_boxed_copy ((gpointer) (val), GST_TYPE_CAPS))
# define newSVGstCaps_own_ornull(val)	((val) ? newSVGstCaps_own(val) : &PL_sv_undef)
#endif /* GST_TYPE_CAPS */

#ifdef GST_TYPE_INDEX_ENTRY
  /* GBoxed GstIndexEntry */
  typedef GstIndexEntry GstIndexEntry_ornull;
# define SvGstIndexEntry(sv)	((GstIndexEntry *) gperl_get_boxed_check ((sv), GST_TYPE_INDEX_ENTRY))
# define SvGstIndexEntry_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstIndexEntry (sv) : NULL)
  typedef GstIndexEntry GstIndexEntry_own;
  typedef GstIndexEntry GstIndexEntry_copy;
  typedef GstIndexEntry GstIndexEntry_own_ornull;
# define newSVGstIndexEntry(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_INDEX_ENTRY, FALSE))
# define newSVGstIndexEntry_ornull(val)	((val) ? newSVGstIndexEntry(val) : &PL_sv_undef)
# define newSVGstIndexEntry_own(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_INDEX_ENTRY, TRUE))
# define newSVGstIndexEntry_copy(val)	(gperl_new_boxed_copy ((gpointer) (val), GST_TYPE_INDEX_ENTRY))
# define newSVGstIndexEntry_own_ornull(val)	((val) ? newSVGstIndexEntry_own(val) : &PL_sv_undef)
#endif /* GST_TYPE_INDEX_ENTRY */

#ifdef GST_TYPE_TAG_LIST
  /* GBoxed GstTagList */
  typedef GstTagList GstTagList_ornull;
# define SvGstTagList(sv)	((GstTagList *) gperl_get_boxed_check ((sv), GST_TYPE_TAG_LIST))
# define SvGstTagList_ornull(sv)	(gperl_sv_is_defined (sv) ? SvGstTagList (sv) : NULL)
  typedef GstTagList GstTagList_own;
  typedef GstTagList GstTagList_copy;
  typedef GstTagList GstTagList_own_ornull;
# define newSVGstTagList(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_TAG_LIST, FALSE))
# define newSVGstTagList_ornull(val)	((val) ? newSVGstTagList(val) : &PL_sv_undef)
# define newSVGstTagList_own(val)	(gperl_new_boxed ((gpointer) (val), GST_TYPE_TAG_LIST, TRUE))
# define newSVGstTagList_copy(val)	(gperl_new_boxed_copy ((gpointer) (val), GST_TYPE_TAG_LIST))
# define newSVGstTagList_own_ornull(val)	((val) ? newSVGstTagList_own(val) : &PL_sv_undef)
#endif /* GST_TYPE_TAG_LIST */

#ifdef GST_TYPE_CLOCK_RETURN
  /* GEnum GstClockReturn */
# define SvGstClockReturn(sv)	((GstClockReturn)gperl_convert_enum (GST_TYPE_CLOCK_RETURN, sv))
# define newSVGstClockReturn(val)	(gperl_convert_back_enum (GST_TYPE_CLOCK_RETURN, val))
#endif /* GST_TYPE_CLOCK_RETURN */

#ifdef GST_TYPE_EVENT_TYPE
  /* GEnum GstEventType */
# define SvGstEventType(sv)	((GstEventType)gperl_convert_enum (GST_TYPE_EVENT_TYPE, sv))
# define newSVGstEventType(val)	(gperl_convert_back_enum (GST_TYPE_EVENT_TYPE, val))
#endif /* GST_TYPE_EVENT_TYPE */

#ifdef GST_TYPE_FLOW_RETURN
  /* GEnum GstFlowReturn */
# define SvGstFlowReturn(sv)	((GstFlowReturn)gperl_convert_enum (GST_TYPE_FLOW_RETURN, sv))
# define newSVGstFlowReturn(val)	(gperl_convert_back_enum (GST_TYPE_FLOW_RETURN, val))
#endif /* GST_TYPE_FLOW_RETURN */

#ifdef GST_TYPE_FORMAT
  /* GEnum GstFormat */
# define SvGstFormat(sv)	((GstFormat)gperl_convert_enum (GST_TYPE_FORMAT, sv))
# define newSVGstFormat(val)	(gperl_convert_back_enum (GST_TYPE_FORMAT, val))
#endif /* GST_TYPE_FORMAT */

#ifdef GST_TYPE_INDEX_CERTAINTY
  /* GEnum GstIndexCertainty */
# define SvGstIndexCertainty(sv)	((GstIndexCertainty)gperl_convert_enum (GST_TYPE_INDEX_CERTAINTY, sv))
# define newSVGstIndexCertainty(val)	(gperl_convert_back_enum (GST_TYPE_INDEX_CERTAINTY, val))
#endif /* GST_TYPE_INDEX_CERTAINTY */

#ifdef GST_TYPE_INDEX_LOOKUP_METHOD
  /* GEnum GstIndexLookupMethod */
# define SvGstIndexLookupMethod(sv)	((GstIndexLookupMethod)gperl_convert_enum (GST_TYPE_INDEX_LOOKUP_METHOD, sv))
# define newSVGstIndexLookupMethod(val)	(gperl_convert_back_enum (GST_TYPE_INDEX_LOOKUP_METHOD, val))
#endif /* GST_TYPE_INDEX_LOOKUP_METHOD */

#ifdef GST_TYPE_PAD_DIRECTION
  /* GEnum GstPadDirection */
# define SvGstPadDirection(sv)	((GstPadDirection)gperl_convert_enum (GST_TYPE_PAD_DIRECTION, sv))
# define newSVGstPadDirection(val)	(gperl_convert_back_enum (GST_TYPE_PAD_DIRECTION, val))
#endif /* GST_TYPE_PAD_DIRECTION */

#ifdef GST_TYPE_PAD_LINK_RETURN
  /* GEnum GstPadLinkReturn */
# define SvGstPadLinkReturn(sv)	((GstPadLinkReturn)gperl_convert_enum (GST_TYPE_PAD_LINK_RETURN, sv))
# define newSVGstPadLinkReturn(val)	(gperl_convert_back_enum (GST_TYPE_PAD_LINK_RETURN, val))
#endif /* GST_TYPE_PAD_LINK_RETURN */

#ifdef GST_TYPE_PAD_PRESENCE
  /* GEnum GstPadPresence */
# define SvGstPadPresence(sv)	((GstPadPresence)gperl_convert_enum (GST_TYPE_PAD_PRESENCE, sv))
# define newSVGstPadPresence(val)	(gperl_convert_back_enum (GST_TYPE_PAD_PRESENCE, val))
#endif /* GST_TYPE_PAD_PRESENCE */

#ifdef GST_TYPE_QUERY_TYPE
  /* GEnum GstQueryType */
# define SvGstQueryType(sv)	((GstQueryType)gperl_convert_enum (GST_TYPE_QUERY_TYPE, sv))
# define newSVGstQueryType(val)	(gperl_convert_back_enum (GST_TYPE_QUERY_TYPE, val))
#endif /* GST_TYPE_QUERY_TYPE */

#ifdef GST_TYPE_SEEK_TYPE
  /* GEnum GstSeekType */
# define SvGstSeekType(sv)	((GstSeekType)gperl_convert_enum (GST_TYPE_SEEK_TYPE, sv))
# define newSVGstSeekType(val)	(gperl_convert_back_enum (GST_TYPE_SEEK_TYPE, val))
#endif /* GST_TYPE_SEEK_TYPE */

#ifdef GST_TYPE_STATE
  /* GEnum GstState */
# define SvGstState(sv)	((GstState)gperl_convert_enum (GST_TYPE_STATE, sv))
# define newSVGstState(val)	(gperl_convert_back_enum (GST_TYPE_STATE, val))
#endif /* GST_TYPE_STATE */

#ifdef GST_TYPE_STATE_CHANGE_RETURN
  /* GEnum GstStateChangeReturn */
# define SvGstStateChangeReturn(sv)	((GstStateChangeReturn)gperl_convert_enum (GST_TYPE_STATE_CHANGE_RETURN, sv))
# define newSVGstStateChangeReturn(val)	(gperl_convert_back_enum (GST_TYPE_STATE_CHANGE_RETURN, val))
#endif /* GST_TYPE_STATE_CHANGE_RETURN */

#ifdef GST_TYPE_TAG_MERGE_MODE
  /* GEnum GstTagMergeMode */
# define SvGstTagMergeMode(sv)	((GstTagMergeMode)gperl_convert_enum (GST_TYPE_TAG_MERGE_MODE, sv))
# define newSVGstTagMergeMode(val)	(gperl_convert_back_enum (GST_TYPE_TAG_MERGE_MODE, val))
#endif /* GST_TYPE_TAG_MERGE_MODE */

#ifdef GST_TYPE_URI_TYPE
  /* GEnum GstURIType */
# define SvGstURIType(sv)	((GstURIType)gperl_convert_enum (GST_TYPE_URI_TYPE, sv))
# define newSVGstURIType(val)	(gperl_convert_back_enum (GST_TYPE_URI_TYPE, val))
#endif /* GST_TYPE_URI_TYPE */

#ifdef GST_TYPE_ASSOC_FLAGS
  /* GFlags GstAssocFlags */
# define SvGstAssocFlags(sv)	((GstAssocFlags)gperl_convert_flags (GST_TYPE_ASSOC_FLAGS, sv))
# define newSVGstAssocFlags(val)	(gperl_convert_back_flags (GST_TYPE_ASSOC_FLAGS, val))
#endif /* GST_TYPE_ASSOC_FLAGS */

#ifdef GST_TYPE_BUFFER_FLAG
  /* GFlags GstBufferFlag */
# define SvGstBufferFlag(sv)	((GstBufferFlag)gperl_convert_flags (GST_TYPE_BUFFER_FLAG, sv))
# define newSVGstBufferFlag(val)	(gperl_convert_back_flags (GST_TYPE_BUFFER_FLAG, val))
#endif /* GST_TYPE_BUFFER_FLAG */

#ifdef GST_TYPE_EVENT_TYPE_FLAGS
  /* GFlags GstEventTypeFlags */
# define SvGstEventTypeFlags(sv)	((GstEventTypeFlags)gperl_convert_flags (GST_TYPE_EVENT_TYPE_FLAGS, sv))
# define newSVGstEventTypeFlags(val)	(gperl_convert_back_flags (GST_TYPE_EVENT_TYPE_FLAGS, val))
#endif /* GST_TYPE_EVENT_TYPE_FLAGS */

#ifdef GST_TYPE_MESSAGE_TYPE
  /* GFlags GstMessageType */
# define SvGstMessageType(sv)	((GstMessageType)gperl_convert_flags (GST_TYPE_MESSAGE_TYPE, sv))
# define newSVGstMessageType(val)	(gperl_convert_back_flags (GST_TYPE_MESSAGE_TYPE, val))
#endif /* GST_TYPE_MESSAGE_TYPE */

#ifdef GST_TYPE_SEEK_FLAGS
  /* GFlags GstSeekFlags */
# define SvGstSeekFlags(sv)	((GstSeekFlags)gperl_convert_flags (GST_TYPE_SEEK_FLAGS, sv))
# define newSVGstSeekFlags(val)	(gperl_convert_back_flags (GST_TYPE_SEEK_FLAGS, val))
#endif /* GST_TYPE_SEEK_FLAGS */

#ifdef GST_TYPE_TAG_FLAG
  /* GFlags GstTagFlag */
# define SvGstTagFlag(sv)	((GstTagFlag)gperl_convert_flags (GST_TYPE_TAG_FLAG, sv))
# define newSVGstTagFlag(val)	(gperl_convert_back_flags (GST_TYPE_TAG_FLAG, val))
#endif /* GST_TYPE_TAG_FLAG */
