package gst // #include "gst.go.h" import "C" import ( "unsafe" "github.com/gotk3/gotk3/glib" ) func init() { tm := []glib.TypeMarshaler{ // Enums { T: glib.Type(C.gst_buffering_mode_get_type()), F: marshalBufferingMode, }, { T: glib.Type(C.gst_format_get_type()), F: marshalFormat, }, { T: glib.Type(C.gst_message_type_get_type()), F: marshalMessageType, }, { T: glib.Type(C.gst_pad_link_return_get_type()), F: marshalPadLinkReturn, }, { T: glib.Type(C.gst_state_get_type()), F: marshalState, }, { T: glib.Type(C.gst_seek_flags_get_type()), F: marshalSeekFlags, }, { T: glib.Type(C.gst_seek_type_get_type()), F: marshalSeekType, }, { T: glib.Type(C.gst_state_change_return_get_type()), F: marshalStateChangeReturn, }, // Objects/Interfaces { T: glib.Type(C.gst_pipeline_get_type()), F: marshalPipeline, }, { T: glib.Type(C.gst_bin_get_type()), F: marshalBin, }, { T: glib.Type(C.gst_bus_get_type()), F: marshalBus, }, { T: glib.Type(C.gst_element_get_type()), F: marshalElement, }, { T: glib.Type(C.gst_element_factory_get_type()), F: marshalElementFactory, }, { T: glib.Type(C.gst_ghost_pad_get_type()), F: marshalGhostPad, }, { T: glib.Type(C.gst_object_get_type()), F: marshalObject, }, { T: glib.Type(C.gst_pad_get_type()), F: marshalPad, }, { T: glib.Type(C.gst_plugin_feature_get_type()), F: marshalPluginFeature, }, // Boxed {T: glib.Type(C.gst_message_get_type()), F: marshalMessage}, } glib.RegisterGValueMarshalers(tm) } func wrapObject(obj *glib.Object) *Object { return &Object{InitiallyUnowned: &glib.InitiallyUnowned{Object: obj}} } func wrapElementFactory(obj *glib.Object) *ElementFactory { return &ElementFactory{wrapPluginFeature(obj)} } func wrapPluginFeature(obj *glib.Object) *PluginFeature { return &PluginFeature{wrapObject(obj)} } func wrapPipeline(obj *glib.Object) *Pipeline { return &Pipeline{Bin: wrapBin(obj)} } func wrapElement(obj *glib.Object) *Element { return &Element{wrapObject(obj)} } func wrapBin(obj *glib.Object) *Bin { return &Bin{wrapElement(obj)} } func wrapClock(obj *glib.Object) *Clock { return &Clock{wrapObject(obj)} } func wrapBus(obj *glib.Object) *Bus { return &Bus{Object: wrapObject(obj)} } func wrapMessage(msg *C.GstMessage) *Message { return &Message{msg: msg} } func wrapPad(obj *glib.Object) *Pad { return &Pad{wrapObject(obj)} } func wrapPadTemplate(obj *glib.Object) *PadTemplate { return &PadTemplate{wrapObject(obj)} } func wrapGhostPad(obj *glib.Object) *GhostPad { return &GhostPad{wrapPad(obj)} } func wrapPlugin(obj *glib.Object) *Plugin { return &Plugin{wrapObject(obj)} } func wrapRegistry(obj *glib.Object) *Registry { return &Registry{wrapObject(obj)} } func wrapAppSink(elem *Element) *AppSink { return &AppSink{elem} } func wrapAppSrc(elem *Element) *AppSrc { return &AppSrc{elem} } func wrapSample(sample *C.GstSample) *Sample { return &Sample{sample: sample} } func wrapBuffer(buf *C.GstBuffer) *Buffer { return &Buffer{ptr: buf} } // Enums/Constants func marshalBufferingMode(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return BufferingMode(c), nil } func marshalFormat(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return Format(c), nil } func marshalMessageType(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return MessageType(c), nil } func marshalPadLinkReturn(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return PadLinkReturn(c), nil } func marshalState(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return State(c), nil } func marshalSeekFlags(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return SeekFlags(c), nil } func marshalSeekType(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return SeekType(c), nil } func marshalStateChangeReturn(p uintptr) (interface{}, error) { c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) return StateChangeReturn(c), nil } func marshalGhostPad(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapGhostPad(obj), nil } func marshalPad(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapPad(obj), nil } func marshalMessage(p uintptr) (interface{}, error) { c := C.g_value_get_boxed((*C.GValue)(unsafe.Pointer(p))) return &Message{(*C.GstMessage)(unsafe.Pointer(c))}, nil } func marshalObject(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapObject(obj), nil } func marshalBus(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapBus(obj), nil } func marshalElementFactory(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapElementFactory(obj), nil } func marshalPipeline(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapPipeline(obj), nil } func marshalPluginFeature(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapPluginFeature(obj), nil } func marshalElement(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapElement(obj), nil } func marshalBin(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{GObject: glib.ToGObject(unsafe.Pointer(c))} return wrapBin(obj), nil }