mirror of
https://github.com/go-gst/go-gst.git
synced 2025-10-23 15:53:21 +08:00
146 lines
6.3 KiB
C
146 lines
6.3 KiB
C
#ifndef __GST_GO_H__
|
|
#define __GST_GO_H__
|
|
|
|
#include <stdlib.h>
|
|
#include <gst/gst.h>
|
|
#include <gst/base/base.h>
|
|
#include <gst/controller/gstinterpolationcontrolsource.h>
|
|
#include <gst/controller/gstdirectcontrolbinding.h>
|
|
|
|
typedef struct _PadDestroyNotifyInfo {
|
|
gpointer pad_ptr;
|
|
gpointer func_map_ptr;
|
|
} PadDestroyNotifyInfo;
|
|
|
|
/*
|
|
Type Castings
|
|
*/
|
|
|
|
extern GType objectGType (GObject *obj);
|
|
|
|
extern GstAllocator * toGstAllocator (void *p);
|
|
extern GstBin * toGstBin (void *p);
|
|
extern GstBinClass * toGstBinClass (void *p);
|
|
extern GstBufferList * toGstBufferList (void *p);
|
|
extern GstBufferPool * toGstBufferPool (void *p);
|
|
extern GstBuffer * toGstBuffer (void *p);
|
|
extern GstBus * toGstBus (void *p);
|
|
extern GstCapsFeatures * toGstCapsFeatures (void *p);
|
|
extern GstCaps * toGstCaps (void *p);
|
|
extern GstChildProxy * toGstChildProxy (void *p);
|
|
extern GstClock * toGstClock (void *p);
|
|
extern GstContext * toGstContext (void *p);
|
|
extern GstDevice * toGstDevice (void *p);
|
|
extern GstDeviceProvider * toGstDeviceProvider (void *p);
|
|
extern GstElementFactory * toGstElementFactory (void *p);
|
|
extern GstElementClass * toGstElementClass (void *p);
|
|
extern GstElement * toGstElement (void *p);
|
|
extern GstEvent * toGstEvent (void *p);
|
|
extern GstGhostPad * toGstGhostPad (void *p);
|
|
extern GstMemory * toGstMemory (void *p);
|
|
extern GstMessage * toGstMessage (void *p);
|
|
extern GstMeta * toGstMeta (void *p);
|
|
extern GstMiniObject * toGstMiniObject (void *p);
|
|
extern GstObject * toGstObject (void *p);
|
|
extern GstPad * toGstPad (void *p);
|
|
extern GstPadTemplate * toGstPadTemplate (void *p);
|
|
extern GstPipeline * toGstPipeline (void *p);
|
|
extern GstPluginFeature * toGstPluginFeature (void *p);
|
|
extern GstPlugin * toGstPlugin (void *p);
|
|
extern GstProxyPad * toGstProxyPad (void *p);
|
|
extern GstQuery * toGstQuery (void *p);
|
|
extern GstRegistry * toGstRegistry (void *p);
|
|
extern GstSample * toGstSample (void *p);
|
|
extern GstStreamCollection * toGstStreamCollection (void *p);
|
|
extern GstStream * toGstStream (void *p);
|
|
extern GstStructure * toGstStructure (void *p);
|
|
extern GstTagList * toGstTagList (void *p);
|
|
extern GstTask * toGstTask (void *p);
|
|
extern GstTaskPool * toGstTaskPool (void *p);
|
|
extern GstURIHandler * toGstURIHandler (void *p);
|
|
extern GstUri * toGstURI (void *p);
|
|
extern GstControlBinding * toGstControlBinding (void *p);
|
|
extern GstControlSource * toGstControlSource (void *p);
|
|
extern GstTimedValueControlSource * toGstTimedValueControlSource (void *p);
|
|
|
|
/* Buffer Utilities */
|
|
|
|
extern GstBuffer * getBufferValue (GValue * val);
|
|
|
|
extern gboolean bufferIsWritable (GstBuffer * buf);
|
|
|
|
extern GstBuffer * makeBufferWritable (GstBuffer * buf);
|
|
|
|
extern GType bufferListType ();
|
|
|
|
/* BufferList Utilities */
|
|
|
|
extern gboolean bufferListIsWritable (GstBufferList * bufList);
|
|
|
|
extern GstBufferList * makeBufferListWritable (GstBufferList * bufList);
|
|
|
|
extern void addToBufferList (GstBufferList * bufList, GstBuffer * buf);
|
|
|
|
/* BufferPool utilities */
|
|
|
|
extern gboolean bufferPoolIsFlushing (GstBufferPool * pool);
|
|
|
|
/* Caps utilties */
|
|
|
|
extern gboolean capsIsWritable (GstCaps * caps);
|
|
|
|
extern GstCaps * makeCapsWritable (GstCaps * caps);
|
|
|
|
/* Context utilities */
|
|
|
|
extern gboolean contextIsWritable (GstContext * ctx);
|
|
|
|
extern GstContext * makeContextWritable (GstContext * ctx);
|
|
|
|
/* Event Utilities */
|
|
|
|
extern gboolean eventIsWritable (GstEvent * event);
|
|
|
|
extern GstEvent * makeEventWritable (GstEvent * event);
|
|
|
|
/* TOC Utilities */
|
|
|
|
extern gboolean entryTypeIsAlternative (GstTocEntryType * type);
|
|
extern gboolean entryTypeIsSequence (GstTocEntryType * type);
|
|
extern GstTocEntry * copyTocEntry (GstTocEntry * entry);
|
|
extern GstTocEntry * makeTocEntryWritable (GstTocEntry * entry);
|
|
extern GstTocEntry * tocEntryRef (GstTocEntry * entry);
|
|
extern void tocEntryUnref (GstTocEntry * entry);
|
|
extern GstToc * copyToc (GstToc * toc);
|
|
extern GstToc * makeTocWritable (GstToc * toc);
|
|
extern GstToc * tocRef (GstToc * toc);
|
|
extern void tocUnref (GstToc * toc);
|
|
|
|
/* TagList utilities */
|
|
|
|
extern gboolean tagListIsWritable (GstTagList * tagList);
|
|
extern GstTagList * makeTagListWritable (GstTagList * tagList);
|
|
|
|
/* Object Utilities */
|
|
|
|
extern gboolean gstElementIsURIHandler (GstElement * elem);
|
|
extern gboolean gstObjectFlagIsSet (GstObject * obj, GstElementFlags flags);
|
|
|
|
/* Element utilities */
|
|
|
|
extern GstTocSetter * toTocSetter (GstElement * elem);
|
|
extern GstTagSetter * toTagSetter (GstElement *elem);
|
|
|
|
|
|
/* Misc */
|
|
|
|
extern gpointer glistNext (GList * list);
|
|
|
|
extern int sizeOfGCharArray (gchar ** arr);
|
|
|
|
/* Sample Utilities */
|
|
|
|
extern GstSample * getSampleValue (GValue * val);
|
|
|
|
#endif
|