mirror of
https://github.com/go-gst/go-gst.git
synced 2025-10-06 00:17:00 +08:00
298 lines
12 KiB
Go
298 lines
12 KiB
Go
package base
|
|
|
|
/*
|
|
#include "gst.go.h"
|
|
*/
|
|
import "C"
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"github.com/go-gst/go-glib/glib"
|
|
"github.com/go-gst/go-gst/gst"
|
|
)
|
|
|
|
//export goGstBaseTransformAcceptCaps
|
|
func goGstBaseTransformAcceptCaps(self *C.GstBaseTransform, direction C.GstPadDirection, caps *C.GstCaps) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
AcceptCaps(*GstBaseTransform, gst.PadDirection, *gst.Caps) bool
|
|
})
|
|
ret = iface.AcceptCaps(ToGstBaseTransform(self), gst.PadDirection(direction), gst.ToGstCaps(unsafe.Pointer(caps)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformBeforeTransform
|
|
func goGstBaseTransformBeforeTransform(self *C.GstBaseTransform, buffer *C.GstBuffer) {
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
BeforeTransform(*GstBaseTransform, *gst.Buffer)
|
|
})
|
|
iface.BeforeTransform(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(buffer)))
|
|
})
|
|
}
|
|
|
|
//export goGstBaseTransformCopyMetadata
|
|
func goGstBaseTransformCopyMetadata(self *C.GstBaseTransform, input, output *C.GstBuffer) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
CopyMetadata(self *GstBaseTransform, input, output *gst.Buffer) bool
|
|
})
|
|
ret = iface.CopyMetadata(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(input)), gst.ToGstBuffer(unsafe.Pointer(output)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformDecideAllocation
|
|
func goGstBaseTransformDecideAllocation(self *C.GstBaseTransform, query *C.GstQuery) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
DecideAllocation(self *GstBaseTransform, query *gst.Query) bool
|
|
})
|
|
ret = iface.DecideAllocation(ToGstBaseTransform(self), gst.ToGstQuery(unsafe.Pointer(query)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformFilterMeta
|
|
func goGstBaseTransformFilterMeta(self *C.GstBaseTransform, query *C.GstQuery, api C.GType, params *C.GstStructure) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
FilterMeta(self *GstBaseTransform, query *gst.Query, api glib.Type, params *gst.Structure) bool
|
|
})
|
|
ret = iface.FilterMeta(ToGstBaseTransform(self), gst.ToGstQuery(unsafe.Pointer(query)), glib.Type(api), gst.FromGstStructureUnsafe(unsafe.Pointer(params)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformFixateCaps
|
|
func goGstBaseTransformFixateCaps(self *C.GstBaseTransform, direction C.GstPadDirection, caps, othercaps *C.GstCaps) *C.GstCaps {
|
|
var ret *gst.Caps
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
FixateCaps(self *GstBaseTransform, directon gst.PadDirection, caps *gst.Caps, othercaps *gst.Caps) *gst.Caps
|
|
})
|
|
ret = iface.FixateCaps(ToGstBaseTransform(self), gst.PadDirection(direction), gst.ToGstCaps(unsafe.Pointer(caps)), gst.ToGstCaps(unsafe.Pointer(othercaps)))
|
|
})
|
|
if ret == nil {
|
|
return nil
|
|
}
|
|
return (*C.GstCaps)(unsafe.Pointer(ret.Instance()))
|
|
}
|
|
|
|
//export goGstBaseTransformGenerateOutput
|
|
func goGstBaseTransformGenerateOutput(self *C.GstBaseTransform, buf **C.GstBuffer) C.GstFlowReturn {
|
|
var ret gst.FlowReturn
|
|
var out *gst.Buffer
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
GenerateOutput(self *GstBaseTransform) (gst.FlowReturn, *gst.Buffer)
|
|
})
|
|
ret, out = iface.GenerateOutput(ToGstBaseTransform(self))
|
|
})
|
|
if out != nil {
|
|
C.memcpy(unsafe.Pointer(*buf), unsafe.Pointer(out.Instance()), C.sizeof_GstBuffer)
|
|
}
|
|
return C.GstFlowReturn(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformGetUnitSize
|
|
func goGstBaseTransformGetUnitSize(self *C.GstBaseTransform, caps *C.GstCaps, size *C.gsize) C.gboolean {
|
|
var ret bool
|
|
var out int64
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
GetUnitSize(self *GstBaseTransform, caps *gst.Caps) (ok bool, size int64)
|
|
})
|
|
ret, out = iface.GetUnitSize(ToGstBaseTransform(self), gst.ToGstCaps(unsafe.Pointer(caps)))
|
|
})
|
|
if ret {
|
|
*size = C.gsize(out)
|
|
}
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformPrepareOutputBuffer
|
|
func goGstBaseTransformPrepareOutputBuffer(self *C.GstBaseTransform, input *C.GstBuffer, outbuf **C.GstBuffer) C.GstFlowReturn {
|
|
var ret gst.FlowReturn
|
|
var out *gst.Buffer
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
PrepareOutputBuffer(self *GstBaseTransform, input *gst.Buffer) (gst.FlowReturn, *gst.Buffer)
|
|
})
|
|
ret, out = iface.PrepareOutputBuffer(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(input)))
|
|
})
|
|
if out != nil {
|
|
C.memcpy(unsafe.Pointer(*outbuf), unsafe.Pointer(out.Instance()), C.sizeof_GstBuffer)
|
|
}
|
|
return C.GstFlowReturn(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformProposeAllocation
|
|
func goGstBaseTransformProposeAllocation(self *C.GstBaseTransform, decide, query *C.GstQuery) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
ProposeAllocation(self *GstBaseTransform, decideQuery, query *gst.Query) bool
|
|
})
|
|
ret = iface.ProposeAllocation(ToGstBaseTransform(self), gst.ToGstQuery(unsafe.Pointer(decide)), gst.ToGstQuery(unsafe.Pointer(query)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformQuery
|
|
func goGstBaseTransformQuery(self *C.GstBaseTransform, direction C.GstPadDirection, query *C.GstQuery) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
Query(self *GstBaseTransform, direction gst.PadDirection, query *gst.Query) bool
|
|
})
|
|
ret = iface.Query(ToGstBaseTransform(self), gst.PadDirection(direction), gst.ToGstQuery(unsafe.Pointer(query)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformSetCaps
|
|
func goGstBaseTransformSetCaps(self *C.GstBaseTransform, incaps, outcaps *C.GstCaps) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
SetCaps(self *GstBaseTransform, incaps, outcaps *gst.Caps) bool
|
|
})
|
|
ret = iface.SetCaps(ToGstBaseTransform(self), gst.ToGstCaps(unsafe.Pointer(incaps)), gst.ToGstCaps(unsafe.Pointer(outcaps)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformSinkEvent
|
|
func goGstBaseTransformSinkEvent(self *C.GstBaseTransform, event *C.GstEvent) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
SinkEvent(self *GstBaseTransform, event *gst.Event) bool
|
|
})
|
|
ret = iface.SinkEvent(ToGstBaseTransform(self), gst.ToGstEvent(unsafe.Pointer(event)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformSrcEvent
|
|
func goGstBaseTransformSrcEvent(self *C.GstBaseTransform, event *C.GstEvent) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
SrcEvent(self *GstBaseTransform, event *gst.Event) bool
|
|
})
|
|
ret = iface.SrcEvent(ToGstBaseTransform(self), gst.ToGstEvent(unsafe.Pointer(event)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformStart
|
|
func goGstBaseTransformStart(self *C.GstBaseTransform) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
Start(self *GstBaseTransform) bool
|
|
})
|
|
ret = iface.Start(ToGstBaseTransform(self))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformStop
|
|
func goGstBaseTransformStop(self *C.GstBaseTransform) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
Stop(self *GstBaseTransform) bool
|
|
})
|
|
ret = iface.Stop(ToGstBaseTransform(self))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformSubmitInputBuffer
|
|
func goGstBaseTransformSubmitInputBuffer(self *C.GstBaseTransform, isDiscont C.gboolean, input *C.GstBuffer) C.GstFlowReturn {
|
|
var ret gst.FlowReturn
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
SubmitInputBuffer(self *GstBaseTransform, isDiscont bool, input *gst.Buffer) gst.FlowReturn
|
|
})
|
|
ret = iface.SubmitInputBuffer(ToGstBaseTransform(self), gobool(isDiscont), gst.ToGstBuffer(unsafe.Pointer(input)))
|
|
})
|
|
return C.GstFlowReturn(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformTransform
|
|
func goGstBaseTransformTransform(self *C.GstBaseTransform, inbuf, outbuf *C.GstBuffer) C.GstFlowReturn {
|
|
var ret gst.FlowReturn
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
Transform(self *GstBaseTransform, inbuf, outbuf *gst.Buffer) gst.FlowReturn
|
|
})
|
|
ret = iface.Transform(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(inbuf)), gst.ToGstBuffer(unsafe.Pointer(outbuf)))
|
|
})
|
|
return C.GstFlowReturn(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformTransformCaps
|
|
func goGstBaseTransformTransformCaps(self *C.GstBaseTransform, direction C.GstPadDirection, caps, filter *C.GstCaps) *C.GstCaps {
|
|
var ret *gst.Caps
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
TransformCaps(self *GstBaseTransform, direction gst.PadDirection, caps, filter *gst.Caps) *gst.Caps
|
|
})
|
|
ret = iface.TransformCaps(ToGstBaseTransform(self), gst.PadDirection(direction), gst.ToGstCaps(unsafe.Pointer(caps)), gst.ToGstCaps(unsafe.Pointer(filter)))
|
|
})
|
|
if ret == nil {
|
|
return nil
|
|
}
|
|
return (*C.GstCaps)(unsafe.Pointer(ret.Instance()))
|
|
}
|
|
|
|
//export goGstBaseTransformTransformIP
|
|
func goGstBaseTransformTransformIP(self *C.GstBaseTransform, buf *C.GstBuffer) C.GstFlowReturn {
|
|
var ret gst.FlowReturn
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
TransformIP(self *GstBaseTransform, buf *gst.Buffer) gst.FlowReturn
|
|
})
|
|
ret = iface.TransformIP(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(buf)))
|
|
})
|
|
return C.GstFlowReturn(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformTransformMeta
|
|
func goGstBaseTransformTransformMeta(self *C.GstBaseTransform, outbuf *C.GstBuffer, meta *C.GstMeta, inbuf *C.GstBuffer) C.gboolean {
|
|
var ret bool
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
TransformMeta(self *GstBaseTransform, outbuf *gst.Buffer, meta *gst.Meta, inbuf *gst.Buffer) bool
|
|
})
|
|
ret = iface.TransformMeta(ToGstBaseTransform(self), gst.ToGstBuffer(unsafe.Pointer(outbuf)), gst.FromGstMetaUnsafe(unsafe.Pointer(meta)), gst.ToGstBuffer(unsafe.Pointer(inbuf)))
|
|
})
|
|
return gboolean(ret)
|
|
}
|
|
|
|
//export goGstBaseTransformTransformSize
|
|
func goGstBaseTransformTransformSize(self *C.GstBaseTransform, direction C.GstPadDirection, caps *C.GstCaps, size C.gsize, othercaps *C.GstCaps, outsize *C.gsize) C.gboolean {
|
|
var ret bool
|
|
var othersize int64
|
|
glib.WithPointerTransferOriginal(unsafe.Pointer(self), func(gObject *glib.Object, goObject glib.GoObjectSubclass) {
|
|
iface := goObject.(interface {
|
|
TransformSize(self *GstBaseTransform, direction gst.PadDirection, caps *gst.Caps, size int64, othercaps *gst.Caps) (ok bool, othersize int64)
|
|
})
|
|
ret, othersize = iface.TransformSize(ToGstBaseTransform(self), gst.PadDirection(direction), gst.ToGstCaps(unsafe.Pointer(caps)), int64(size), gst.ToGstCaps(unsafe.Pointer(othercaps)))
|
|
})
|
|
if ret {
|
|
*outsize = C.gsize(othersize)
|
|
}
|
|
return gboolean(ret)
|
|
}
|