major rework of reference handling

This commit is contained in:
Avi Zimmerman
2021-01-19 00:18:30 +02:00
parent 63a53be42a
commit 1f7d60b390
79 changed files with 1239 additions and 800 deletions

View File

@@ -37,7 +37,7 @@ func ToGstBaseSink(obj interface{}) *GstBaseSink {
// wrapGstBaseSink wraps the given unsafe.Pointer in a GstBaseSink instance.
func wrapGstBaseSink(obj *C.GstBaseSink) *GstBaseSink {
return &GstBaseSink{gst.FromGstElementUnsafe(unsafe.Pointer(obj))}
return &GstBaseSink{gst.FromGstElementUnsafeNone(unsafe.Pointer(obj))}
}
// Instance returns the underlying C GstBaseSrc instance
@@ -98,7 +98,7 @@ func (g *GstBaseSink) GetLastSample() *gst.Sample {
if sample == nil {
return nil
}
return gst.FromGstSampleUnsafe(unsafe.Pointer(sample))
return gst.FromGstSampleUnsafeFull(unsafe.Pointer(sample))
}
// GetLatency gets the currently configured latency.

View File

@@ -26,7 +26,7 @@ func goGstBaseSinkEvent(sink *C.GstBaseSink, event *C.GstEvent) C.gboolean {
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Event(self *GstBaseSink, event *gst.Event) bool
})
return gboolean(iface.Event(wrapGstBaseSink(sink), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return gboolean(iface.Event(wrapGstBaseSink(sink), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}
//export goGstBaseSinkFixate
@@ -34,7 +34,7 @@ func goGstBaseSinkFixate(sink *C.GstBaseSink, caps *C.GstCaps) *C.GstCaps {
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Fixate(self *GstBaseSink, caps *gst.Caps) *gst.Caps
})
fixated := iface.Fixate(wrapGstBaseSink(sink), gst.FromGstCapsUnsafe(unsafe.Pointer(caps)))
fixated := iface.Fixate(wrapGstBaseSink(sink), gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps)))
if fixated == nil {
return nil
}
@@ -46,7 +46,7 @@ func goGstBaseSinkGetCaps(sink *C.GstBaseSink, filter *C.GstCaps) *C.GstCaps {
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
GetCaps(self *GstBaseSink, filter *gst.Caps) *gst.Caps
})
filtered := iface.GetCaps(wrapGstBaseSink(sink), gst.FromGstCapsUnsafe(unsafe.Pointer(filter)))
filtered := iface.GetCaps(wrapGstBaseSink(sink), gst.FromGstCapsUnsafeNone(unsafe.Pointer(filter)))
if filtered == nil {
return nil
}
@@ -58,7 +58,7 @@ func goGstBaseSinkGetTimes(sink *C.GstBaseSink, buf *C.GstBuffer, start, end *C.
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
GetTimes(self *GstBaseSink, buffer *gst.Buffer) (start, end time.Duration)
})
retStart, retEnd := iface.GetTimes(wrapGstBaseSink(sink), gst.FromGstBufferUnsafe(unsafe.Pointer(buf)))
retStart, retEnd := iface.GetTimes(wrapGstBaseSink(sink), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf)))
*start = C.GstClockTime(retStart.Nanoseconds())
*end = C.GstClockTime(retEnd.Nanoseconds())
}
@@ -68,7 +68,7 @@ func goGstBaseSinkPrepare(sink *C.GstBaseSink, buf *C.GstBuffer) C.GstFlowReturn
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Prepare(self *GstBaseSink, buffer *gst.Buffer) gst.FlowReturn
})
return C.GstFlowReturn(iface.Prepare(wrapGstBaseSink(sink), gst.FromGstBufferUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(iface.Prepare(wrapGstBaseSink(sink), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))))
}
//export goGstBaseSinkPrepareList
@@ -76,7 +76,7 @@ func goGstBaseSinkPrepareList(sink *C.GstBaseSink, list *C.GstBufferList) C.GstF
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
PrepareList(self *GstBaseSink, bufferList *gst.BufferList) gst.FlowReturn
})
return C.GstFlowReturn(iface.PrepareList(wrapGstBaseSink(sink), gst.FromGstBufferListUnsafe(unsafe.Pointer(list))))
return C.GstFlowReturn(iface.PrepareList(wrapGstBaseSink(sink), gst.FromGstBufferListUnsafeNone(unsafe.Pointer(list))))
}
//export goGstBaseSinkPreroll
@@ -84,7 +84,7 @@ func goGstBaseSinkPreroll(sink *C.GstBaseSink, buf *C.GstBuffer) C.GstFlowReturn
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Preroll(self *GstBaseSink, buffer *gst.Buffer) gst.FlowReturn
})
return C.GstFlowReturn(iface.Preroll(wrapGstBaseSink(sink), gst.FromGstBufferUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(iface.Preroll(wrapGstBaseSink(sink), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))))
}
//export goGstBaseSinkProposeAllocation
@@ -92,7 +92,7 @@ func goGstBaseSinkProposeAllocation(sink *C.GstBaseSink, query *C.GstQuery) C.gb
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
ProposeAllocation(self *GstBaseSink, query *gst.Query) bool
})
return gboolean(iface.ProposeAllocation(wrapGstBaseSink(sink), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(iface.ProposeAllocation(wrapGstBaseSink(sink), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseSinkQuery
@@ -100,7 +100,7 @@ func goGstBaseSinkQuery(sink *C.GstBaseSink, query *C.GstQuery) C.gboolean {
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Query(self *GstBaseSink, query *gst.Query) bool
})
return gboolean(iface.Query(wrapGstBaseSink(sink), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(iface.Query(wrapGstBaseSink(sink), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseSinkRender
@@ -108,7 +108,7 @@ func goGstBaseSinkRender(sink *C.GstBaseSink, buf *C.GstBuffer) C.GstFlowReturn
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
Render(self *GstBaseSink, buffer *gst.Buffer) gst.FlowReturn
})
return C.GstFlowReturn(iface.Render(wrapGstBaseSink(sink), gst.FromGstBufferUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(iface.Render(wrapGstBaseSink(sink), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))))
}
//export goGstBaseSinkRenderList
@@ -116,7 +116,7 @@ func goGstBaseSinkRenderList(sink *C.GstBaseSink, buf *C.GstBufferList) C.GstFlo
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
RenderList(self *GstBaseSink, bufferList *gst.BufferList) gst.FlowReturn
})
return C.GstFlowReturn(iface.RenderList(wrapGstBaseSink(sink), gst.FromGstBufferListUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(iface.RenderList(wrapGstBaseSink(sink), gst.FromGstBufferListUnsafeNone(unsafe.Pointer(buf))))
}
//export goGstBaseSinkSetCaps
@@ -124,7 +124,7 @@ func goGstBaseSinkSetCaps(sink *C.GstBaseSink, caps *C.GstCaps) C.gboolean {
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
SetCaps(self *GstBaseSink, caps *gst.Caps) bool
})
return gboolean(iface.SetCaps(wrapGstBaseSink(sink), gst.FromGstCapsUnsafe(unsafe.Pointer(caps))))
return gboolean(iface.SetCaps(wrapGstBaseSink(sink), gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps))))
}
//export goGstBaseSinkStart
@@ -164,5 +164,5 @@ func goGstBaseSinkWaitEvent(sink *C.GstBaseSink, event *C.GstEvent) C.GstFlowRet
iface := glib.FromObjectUnsafePrivate(unsafe.Pointer(sink)).(interface {
WaitEvent(self *GstBaseSink, event *gst.Event) gst.FlowReturn
})
return C.GstFlowReturn(iface.WaitEvent(wrapGstBaseSink(sink), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return C.GstFlowReturn(iface.WaitEvent(wrapGstBaseSink(sink), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}

View File

@@ -30,7 +30,7 @@ func ToGstBaseSrc(obj interface{}) *GstBaseSrc {
// wrapGstBaseSrc wraps the given unsafe.Pointer in a GstBaseSrc instance.
func wrapGstBaseSrc(obj *C.GstBaseSrc) *GstBaseSrc {
return &GstBaseSrc{gst.FromGstElementUnsafe(unsafe.Pointer(obj))}
return &GstBaseSrc{gst.FromGstElementUnsafeNone(unsafe.Pointer(obj))}
}
// Instance returns the underlying C GstBaseSrc instance
@@ -43,7 +43,10 @@ func (g *GstBaseSrc) GetAllocator() (*gst.Allocator, *gst.AllocationParams) {
var allocParams C.GstAllocationParams
var allocator *C.GstAllocator
C.gst_base_src_get_allocator(g.Instance(), &allocator, &allocParams)
return gst.FromGstAllocatorUnsafe(unsafe.Pointer(allocator)), gst.FromGstAllocationParamsUnsafe(unsafe.Pointer(&allocParams))
if allocator == nil {
return nil, nil
}
return gst.FromGstAllocatorUnsafeFull(unsafe.Pointer(allocator)), gst.FromGstAllocationParamsUnsafe(unsafe.Pointer(&allocParams))
}
// GetBlocksize returns the number of bytes that the source will push out with each buffer.
@@ -51,7 +54,11 @@ func (g *GstBaseSrc) GetBlocksize() uint { return uint(C.gst_base_src_get_blocks
// GetBufferPool returns the BufferPool used by this source. Unref after usage.
func (g *GstBaseSrc) GetBufferPool() *gst.BufferPool {
return gst.FromGstBufferPoolUnsafe(unsafe.Pointer(C.gst_base_src_get_buffer_pool(g.Instance())))
pool := C.gst_base_src_get_buffer_pool(g.Instance())
if pool == nil {
return nil
}
return gst.FromGstBufferPoolUnsafeFull(unsafe.Pointer(pool))
}
// DoTimestamp will query if the timestamps outgoing on this source's buffers are based on the current

View File

@@ -17,7 +17,7 @@ func goGstBaseSrcGetCaps(src *C.GstBaseSrc, filter *C.GstCaps) *C.GstCaps {
caller := elem.(interface {
GetCaps(*GstBaseSrc, *gst.Caps) *gst.Caps
})
res := caller.GetCaps(wrapGstBaseSrc(src), gst.FromGstCapsUnsafe(unsafe.Pointer(filter)))
res := caller.GetCaps(wrapGstBaseSrc(src), gst.FromGstCapsUnsafeNone(unsafe.Pointer(filter)))
return (*C.GstCaps)(unsafe.Pointer(res.Instance()))
}
@@ -36,7 +36,7 @@ func goGstBaseSrcFixate(src *C.GstBaseSrc, caps *C.GstCaps) *C.GstCaps {
caller := elem.(interface {
Fixate(*GstBaseSrc, *gst.Caps) *gst.Caps
})
res := caller.Fixate(wrapGstBaseSrc(src), gst.FromGstCapsUnsafe(unsafe.Pointer(caps)))
res := caller.Fixate(wrapGstBaseSrc(src), gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps)))
return (*C.GstCaps)(unsafe.Pointer(res.Instance()))
}
@@ -46,7 +46,7 @@ func goGstBaseSrcSetCaps(src *C.GstBaseSrc, filter *C.GstCaps) C.gboolean {
caller := elem.(interface {
SetCaps(*GstBaseSrc, *gst.Caps) bool
})
return gboolean(caller.SetCaps(wrapGstBaseSrc(src), gst.FromGstCapsUnsafe(unsafe.Pointer(filter))))
return gboolean(caller.SetCaps(wrapGstBaseSrc(src), gst.FromGstCapsUnsafeNone(unsafe.Pointer(filter))))
}
//export goGstBaseSrcDecideAllocation
@@ -55,7 +55,7 @@ func goGstBaseSrcDecideAllocation(src *C.GstBaseSrc, query *C.GstQuery) C.gboole
caller := elem.(interface {
DecideAllocation(*GstBaseSrc, *gst.Query) bool
})
return gboolean(caller.DecideAllocation(wrapGstBaseSrc(src), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(caller.DecideAllocation(wrapGstBaseSrc(src), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseSrcStart
@@ -82,7 +82,7 @@ func goGstBaseSrcGetTimes(src *C.GstBaseSrc, buf *C.GstBuffer, start *C.GstClock
caller := elem.(interface {
GetTimes(*GstBaseSrc, *gst.Buffer) (start, end time.Duration)
})
gostart, goend := caller.GetTimes(wrapGstBaseSrc(src), gst.FromGstBufferUnsafe(unsafe.Pointer(buf)))
gostart, goend := caller.GetTimes(wrapGstBaseSrc(src), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf)))
*start = C.GstClockTime(gostart.Nanoseconds())
*end = C.GstClockTime(goend.Nanoseconds())
}
@@ -116,7 +116,7 @@ func goGstBaseSrcPrepareSeekSegment(src *C.GstBaseSrc, seek *C.GstEvent, segment
caller := elem.(interface {
PrepareSeekSegment(*GstBaseSrc, *gst.Event, *gst.Segment) bool
})
return gboolean(caller.PrepareSeekSegment(wrapGstBaseSrc(src), gst.FromGstEventUnsafe(unsafe.Pointer(seek)), gst.FromGstSegmentUnsafe(unsafe.Pointer(segment))))
return gboolean(caller.PrepareSeekSegment(wrapGstBaseSrc(src), gst.FromGstEventUnsafeNone(unsafe.Pointer(seek)), gst.FromGstSegmentUnsafe(unsafe.Pointer(segment))))
}
//export goGstBaseSrcDoSeek
@@ -152,7 +152,7 @@ func goGstBaseSrcQuery(src *C.GstBaseSrc, query *C.GstQuery) C.gboolean {
caller := elem.(interface {
Query(*GstBaseSrc, *gst.Query) bool
})
return gboolean(caller.Query(wrapGstBaseSrc(src), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(caller.Query(wrapGstBaseSrc(src), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseSrcEvent
@@ -161,7 +161,7 @@ func goGstBaseSrcEvent(src *C.GstBaseSrc, event *C.GstEvent) C.gboolean {
caller := elem.(interface {
Event(*GstBaseSrc, *gst.Event) bool
})
return gboolean(caller.Event(wrapGstBaseSrc(src), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return gboolean(caller.Event(wrapGstBaseSrc(src), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}
//export goGstBaseSrcCreate
@@ -196,5 +196,5 @@ func goGstBaseSrcFill(src *C.GstBaseSrc, offset C.guint64, size C.guint, buf *C.
caller := elem.(interface {
Fill(*GstBaseSrc, uint64, uint, *gst.Buffer) gst.FlowReturn
})
return C.GstFlowReturn(caller.Fill(wrapGstBaseSrc(src), uint64(offset), uint(size), gst.FromGstBufferUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(caller.Fill(wrapGstBaseSrc(src), uint64(offset), uint(size), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))))
}

View File

@@ -50,7 +50,7 @@ func ToGstBaseTransform(obj interface{}) *GstBaseTransform {
// wrapGstBaseTransform wraps the given unsafe.Pointer in a GstBaseSrc instance.
func wrapGstBaseTransform(obj *C.GstBaseTransform) *GstBaseTransform {
return &GstBaseTransform{gst.FromGstElementUnsafe(unsafe.Pointer(obj))}
return &GstBaseTransform{gst.FromGstElementUnsafeNone(unsafe.Pointer(obj))}
}
// Instance returns the underlying C GstBaseTransform instance
@@ -63,12 +63,19 @@ func (g *GstBaseTransform) GetAllocator() (*gst.Allocator, *gst.AllocationParams
var allocParams C.GstAllocationParams
var allocator *C.GstAllocator
C.gst_base_transform_get_allocator(g.Instance(), &allocator, &allocParams)
return gst.FromGstAllocatorUnsafe(unsafe.Pointer(allocator)), gst.FromGstAllocationParamsUnsafe(unsafe.Pointer(&allocParams))
if allocator == nil {
return nil, nil
}
return gst.FromGstAllocatorUnsafeFull(unsafe.Pointer(allocator)), gst.FromGstAllocationParamsUnsafe(unsafe.Pointer(&allocParams))
}
// GetBufferPool returns the BufferPool used by this transform. Unref after usage.
func (g *GstBaseTransform) GetBufferPool() *gst.BufferPool {
return gst.FromGstBufferPoolUnsafe(unsafe.Pointer(C.gst_base_transform_get_buffer_pool(g.Instance())))
pool := C.gst_base_transform_get_buffer_pool(g.Instance())
if pool == nil {
return nil
}
return gst.FromGstBufferPoolUnsafeFull(unsafe.Pointer(pool))
}
// IsInPlace returns if the transform is configured to do in-place transform.
@@ -88,7 +95,7 @@ func (g *GstBaseTransform) IsQoSEnabled() bool {
// QueuedBuffer returns the currentl queued buffer.
func (g *GstBaseTransform) QueuedBuffer() *gst.Buffer {
return gst.FromGstBufferUnsafe(unsafe.Pointer(g.Instance().queued_buf))
return gst.FromGstBufferUnsafeNone(unsafe.Pointer(g.Instance().queued_buf))
}
// SINCE 1.18
@@ -164,12 +171,12 @@ func (g *GstBaseTransform) SetTransformIPOnPassthrough(enabled bool) {
// SinkPad returns the sink pad object for this element.
func (g *GstBaseTransform) SinkPad() *gst.Pad {
return gst.FromGstPadUnsafe(unsafe.Pointer(g.Instance().sinkpad))
return gst.FromGstPadUnsafeNone(unsafe.Pointer(g.Instance().sinkpad))
}
// SrcPad returns the src pad object for this element.
func (g *GstBaseTransform) SrcPad() *gst.Pad {
return gst.FromGstPadUnsafe(unsafe.Pointer(g.Instance().srcpad))
return gst.FromGstPadUnsafeNone(unsafe.Pointer(g.Instance().srcpad))
}
// UpdateQoS sets the QoS parameters in the transform. This function is called internally when a QOS event is received

View File

@@ -18,7 +18,7 @@ func goGstBaseTransformAcceptCaps(self *C.GstBaseTransform, direction C.GstPadDi
caller := elem.(interface {
AcceptCaps(self *GstBaseTransform, direction gst.PadDirection, caps *gst.Caps) bool
})
return gboolean(caller.AcceptCaps(wrapGstBaseTransform(self), gst.PadDirection(direction), gst.FromGstCapsUnsafe(unsafe.Pointer(caps))))
return gboolean(caller.AcceptCaps(wrapGstBaseTransform(self), gst.PadDirection(direction), gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps))))
}
//export goGstBaseTransformBeforeTransform
@@ -27,7 +27,7 @@ func goGstBaseTransformBeforeTransform(self *C.GstBaseTransform, buffer *C.GstBu
caller := elem.(interface {
BeforeTransform(self *GstBaseTransform, buffer *gst.Buffer)
})
caller.BeforeTransform(wrapGstBaseTransform(self), gst.FromGstBufferUnsafe(unsafe.Pointer(buffer)))
caller.BeforeTransform(wrapGstBaseTransform(self), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buffer)))
}
//export goGstBaseTransformCopyMetadata
@@ -36,7 +36,7 @@ func goGstBaseTransformCopyMetadata(self *C.GstBaseTransform, input, outbuf *C.G
caller := elem.(interface {
CopyMetadata(self *GstBaseTransform, input, output *gst.Buffer) bool
})
return gboolean(caller.CopyMetadata(wrapGstBaseTransform(self), gst.FromGstBufferUnsafe(unsafe.Pointer(input)), gst.FromGstBufferUnsafe(unsafe.Pointer(outbuf))))
return gboolean(caller.CopyMetadata(wrapGstBaseTransform(self), gst.FromGstBufferUnsafeNone(unsafe.Pointer(input)), gst.FromGstBufferUnsafeNone(unsafe.Pointer(outbuf))))
}
//export goGstBaseTransformDecideAllocation
@@ -45,7 +45,7 @@ func goGstBaseTransformDecideAllocation(self *C.GstBaseTransform, query *C.GstQu
caller := elem.(interface {
DecideAllocation(self *GstBaseTransform, query *gst.Query) bool
})
return gboolean(caller.DecideAllocation(wrapGstBaseTransform(self), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(caller.DecideAllocation(wrapGstBaseTransform(self), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseTransformFilterMeta
@@ -56,7 +56,7 @@ func goGstBaseTransformFilterMeta(self *C.GstBaseTransform, query *C.GstQuery, a
})
return gboolean(caller.FilterMeta(
wrapGstBaseTransform(self),
gst.FromGstQueryUnsafe(unsafe.Pointer(query)),
gst.FromGstQueryUnsafeNone(unsafe.Pointer(query)),
glib.Type(api),
gst.FromGstStructureUnsafe(unsafe.Pointer(params)),
))
@@ -69,8 +69,8 @@ func goGstBaseTransformFixateCaps(self *C.GstBaseTransform, direction C.GstPadDi
FixateCaps(self *GstBaseTransform, directon gst.PadDirection, caps *gst.Caps, othercaps *gst.Caps) *gst.Caps
})
wrappedCaps := gst.FromGstCapsUnsafe(unsafe.Pointer(caps))
wrappedOther := gst.FromGstCapsUnsafe(unsafe.Pointer(othercaps))
wrappedCaps := gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps))
wrappedOther := gst.FromGstCapsUnsafeNone(unsafe.Pointer(othercaps))
defer wrappedOther.Unref()
fixated := caller.FixateCaps(wrapGstBaseTransform(self), gst.PadDirection(direction), wrappedCaps, wrappedOther)
@@ -99,7 +99,7 @@ func goGstBaseTransformGetUnitSize(self *C.GstBaseTransform, caps *C.GstCaps, si
caller := elem.(interface {
GetUnitSize(self *GstBaseTransform, caps *gst.Caps) (ok bool, size int64)
})
ok, retsize := caller.GetUnitSize(wrapGstBaseTransform(self), gst.FromGstCapsUnsafe(unsafe.Pointer(caps)))
ok, retsize := caller.GetUnitSize(wrapGstBaseTransform(self), gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps)))
if ok {
*size = C.gsize(retsize)
}
@@ -112,7 +112,7 @@ func goGstBaseTransformPrepareOutputBuffer(self *C.GstBaseTransform, input *C.Gs
caller := elem.(interface {
PrepareOutputBuffer(self *GstBaseTransform, input *gst.Buffer) (gst.FlowReturn, *gst.Buffer)
})
ret, out := caller.PrepareOutputBuffer(wrapGstBaseTransform(self), gst.FromGstBufferUnsafe(unsafe.Pointer(input)))
ret, out := caller.PrepareOutputBuffer(wrapGstBaseTransform(self), gst.FromGstBufferUnsafeNone(unsafe.Pointer(input)))
if out != nil {
C.memcpy(unsafe.Pointer(*outbuf), unsafe.Pointer(out.Instance()), C.sizeof_GstBuffer)
}
@@ -125,7 +125,7 @@ func goGstBaseTransformProposeAllocation(self *C.GstBaseTransform, decide, query
caller := elem.(interface {
ProposeAllocation(self *GstBaseTransform, decideQuery, query *gst.Query) bool
})
return gboolean(caller.ProposeAllocation(wrapGstBaseTransform(self), gst.FromGstQueryUnsafe(unsafe.Pointer(decide)), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(caller.ProposeAllocation(wrapGstBaseTransform(self), gst.FromGstQueryUnsafeNone(unsafe.Pointer(decide)), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseTransformQuery
@@ -134,7 +134,7 @@ func goGstBaseTransformQuery(self *C.GstBaseTransform, direction C.GstPadDirecti
caller := elem.(interface {
Query(self *GstBaseTransform, direction gst.PadDirection, query *gst.Query) bool
})
return gboolean(caller.Query(wrapGstBaseTransform(self), gst.PadDirection(direction), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(caller.Query(wrapGstBaseTransform(self), gst.PadDirection(direction), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}
//export goGstBaseTransformSetCaps
@@ -145,8 +145,8 @@ func goGstBaseTransformSetCaps(self *C.GstBaseTransform, incaps, outcaps *C.GstC
})
return gboolean(caller.SetCaps(
wrapGstBaseTransform(self),
gst.FromGstCapsUnsafe(unsafe.Pointer(incaps)),
gst.FromGstCapsUnsafe(unsafe.Pointer(outcaps)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(incaps)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(outcaps)),
))
}
@@ -156,7 +156,7 @@ func goGstBaseTransformSinkEvent(self *C.GstBaseTransform, event *C.GstEvent) C.
caller := elem.(interface {
SinkEvent(self *GstBaseTransform, event *gst.Event) bool
})
return gboolean(caller.SinkEvent(wrapGstBaseTransform(self), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return gboolean(caller.SinkEvent(wrapGstBaseTransform(self), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}
//export goGstBaseTransformSrcEvent
@@ -165,7 +165,7 @@ func goGstBaseTransformSrcEvent(self *C.GstBaseTransform, event *C.GstEvent) C.g
caller := elem.(interface {
SrcEvent(self *GstBaseTransform, event *gst.Event) bool
})
return gboolean(caller.SrcEvent(wrapGstBaseTransform(self), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return gboolean(caller.SrcEvent(wrapGstBaseTransform(self), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}
//export goGstBaseTransformStart
@@ -195,7 +195,7 @@ func goGstBaseTransformSubmitInputBuffer(self *C.GstBaseTransform, isDiscont C.g
return C.GstFlowReturn(caller.SubmitInputBuffer(
wrapGstBaseTransform(self),
gobool(isDiscont),
gst.FromGstBufferUnsafe(unsafe.Pointer(input)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(input)),
))
}
@@ -207,8 +207,8 @@ func goGstBaseTransformTransform(self *C.GstBaseTransform, inbuf, outbuf *C.GstB
})
return C.GstFlowReturn(caller.Transform(
wrapGstBaseTransform(self),
gst.FromGstBufferUnsafe(unsafe.Pointer(inbuf)),
gst.FromGstBufferUnsafe(unsafe.Pointer(outbuf)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(inbuf)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(outbuf)),
))
}
@@ -221,8 +221,8 @@ func goGstBaseTransformTransformCaps(self *C.GstBaseTransform, direction C.GstPa
out := caller.TransformCaps(
wrapGstBaseTransform(self),
gst.PadDirection(direction),
gst.FromGstCapsUnsafe(unsafe.Pointer(caps)),
gst.FromGstCapsUnsafe(unsafe.Pointer(filter)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(filter)),
)
if out == nil {
return nil
@@ -238,7 +238,7 @@ func goGstBaseTransformTransformIP(self *C.GstBaseTransform, buf *C.GstBuffer) C
})
return C.GstFlowReturn(caller.TransformIP(
wrapGstBaseTransform(self),
gst.FromGstBufferUnsafe(unsafe.Pointer(buf)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf)),
))
}
@@ -250,9 +250,9 @@ func goGstBaseTransformTransformMeta(self *C.GstBaseTransform, outbuf *C.GstBuff
})
return gboolean(caller.TransformMeta(
wrapGstBaseTransform(self),
gst.FromGstBufferUnsafe(unsafe.Pointer(outbuf)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(outbuf)),
gst.FromGstMetaUnsafe(unsafe.Pointer(meta)),
gst.FromGstBufferUnsafe(unsafe.Pointer(inbuf)),
gst.FromGstBufferUnsafeNone(unsafe.Pointer(inbuf)),
))
}
@@ -265,9 +265,9 @@ func goGstBaseTransformTransformSize(self *C.GstBaseTransform, direction C.GstPa
ok, othersize := caller.TransformSize(
wrapGstBaseTransform(self),
gst.PadDirection(direction),
gst.FromGstCapsUnsafe(unsafe.Pointer(caps)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(caps)),
int64(size),
gst.FromGstCapsUnsafe(unsafe.Pointer(othercaps)),
gst.FromGstCapsUnsafeNone(unsafe.Pointer(othercaps)),
)
if ok {
*outsize = C.gsize(othersize)

View File

@@ -115,14 +115,14 @@ func wrapCollectData(ptr *C.GstCollectData) *CollectData { return &CollectData{p
func (c *CollectData) Instance() *C.GstCollectData { return c.ptr }
// Collect returns the owner CollectPads
func (c *CollectData) Collect() *CollectPads { return wrapCollectPads(c.ptr.collect) }
func (c *CollectData) Collect() *CollectPads { return wrapCollectPadsNone(c.ptr.collect) }
// Pad returns the pad managed by this data.
func (c *CollectData) Pad() *gst.Pad { return gst.FromGstPadUnsafe(unsafe.Pointer(c.ptr.pad)) }
func (c *CollectData) Pad() *gst.Pad { return gst.FromGstPadUnsafeNone(unsafe.Pointer(c.ptr.pad)) }
// Buffer returns the currently queued buffer.
func (c *CollectData) Buffer() *gst.Buffer {
return gst.FromGstBufferUnsafe(unsafe.Pointer(c.ptr.buffer))
return gst.FromGstBufferUnsafeNone(unsafe.Pointer(c.ptr.buffer))
}
// Pos returns the position in the buffer.
@@ -158,12 +158,21 @@ type collectPadsFuncMap struct {
// NewCollectPads creates a new CollectPads instance.
func NewCollectPads() *CollectPads {
return wrapCollectPads(C.gst_collect_pads_new())
return wrapCollectPadsFull(C.gst_collect_pads_new())
}
func wrapCollectPads(ptr *C.GstCollectPads) *CollectPads {
func wrapCollectPadsFull(ptr *C.GstCollectPads) *CollectPads {
collect := &CollectPads{
Object: gst.FromGstObjectUnsafe(unsafe.Pointer(ptr)),
Object: gst.FromGstObjectUnsafeFull(unsafe.Pointer(ptr)),
funcMap: &collectPadsFuncMap{},
}
collect.selfPtr = gopointer.Save(collect)
return collect
}
func wrapCollectPadsNone(ptr *C.GstCollectPads) *CollectPads {
collect := &CollectPads{
Object: gst.FromGstObjectUnsafeNone(unsafe.Pointer(ptr)),
funcMap: &collectPadsFuncMap{},
}
collect.selfPtr = gopointer.Save(collect)
@@ -225,7 +234,7 @@ func (c *CollectPads) ClipRunningTime(data *CollectData, buf *gst.Buffer) (ret g
nil,
))
if goutbuf != nil {
outbuf = gst.FromGstBufferUnsafe(unsafe.Pointer(goutbuf))
outbuf = gst.FromGstBufferUnsafeFull(unsafe.Pointer(goutbuf))
}
return
}
@@ -262,7 +271,7 @@ func (c *CollectPads) Peek(data *CollectData) *gst.Buffer {
if buf == nil {
return nil
}
return gst.FromGstBufferUnsafe(unsafe.Pointer(buf))
return gst.FromGstBufferUnsafeFull(unsafe.Pointer(buf))
}
// Pop the buffer currently queued in data. This function should be called with the pads STREAM_LOCK held, such
@@ -272,7 +281,7 @@ func (c *CollectPads) Pop(data *CollectData) *gst.Buffer {
if buf == nil {
return nil
}
return gst.FromGstBufferUnsafe(unsafe.Pointer(buf))
return gst.FromGstBufferUnsafeFull(unsafe.Pointer(buf))
}
// QueryDefault is the Default GstCollectPads query handling that elements should always chain up to to ensure
@@ -293,7 +302,7 @@ func (c *CollectPads) ReadBuffer(data *CollectData, size uint) *gst.Buffer {
if buf == nil {
return nil
}
return gst.FromGstBufferUnsafe(unsafe.Pointer(buf))
return gst.FromGstBufferUnsafeFull(unsafe.Pointer(buf))
}
// RemovePad removes a pad from the collection of collect pads. This function will also free the GstCollectData
@@ -428,5 +437,5 @@ func (c *CollectPads) TakeBuffer(data *CollectData, size uint) *gst.Buffer {
if buf == nil {
return nil
}
return gst.FromGstBufferUnsafe(unsafe.Pointer(buf))
return gst.FromGstBufferUnsafeFull(unsafe.Pointer(buf))
}

View File

@@ -22,7 +22,7 @@ func goGstCollectPadsBufferFunc(pads *C.GstCollectPads, data *C.GstCollectData,
var wrappedBuf *gst.Buffer
var wrappedData *CollectData
if buf != nil {
wrappedBuf = gst.FromGstBufferUnsafe(unsafe.Pointer(buf))
wrappedBuf = gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))
defer wrappedBuf.Unref()
}
if data != nil {
@@ -38,7 +38,7 @@ func goGstCollectPadsClipFunc(pads *C.GstCollectPads, data *C.GstCollectData, in
collectPads := iface.(*CollectPads)
f := collectPads.funcMap.clipFunc
buf := gst.FromGstBufferUnsafe(unsafe.Pointer(inbuf))
buf := gst.FromGstBufferUnsafeNone(unsafe.Pointer(inbuf))
defer buf.Unref()
ret, gooutbuf := f(collectPads, wrapCollectData(data), buf)
@@ -64,7 +64,7 @@ func goGstCollectPadsEventFunc(pads *C.GstCollectPads, data *C.GstCollectData, e
collectPads := iface.(*CollectPads)
f := collectPads.funcMap.eventFunc
return gboolean(f(collectPads, wrapCollectData(data), gst.FromGstEventUnsafe(unsafe.Pointer(event))))
return gboolean(f(collectPads, wrapCollectData(data), gst.FromGstEventUnsafeNone(unsafe.Pointer(event))))
}
//export goGstCollectPadsFlushFunc
@@ -91,5 +91,5 @@ func goGstCollectPadsQueryFunc(pads *C.GstCollectPads, data *C.GstCollectData, q
collectPads := iface.(*CollectPads)
f := collectPads.funcMap.queryFunc
return gboolean(f(collectPads, wrapCollectData(data), gst.FromGstQueryUnsafe(unsafe.Pointer(query))))
return gboolean(f(collectPads, wrapCollectData(data), gst.FromGstQueryUnsafeNone(unsafe.Pointer(query))))
}

View File

@@ -28,7 +28,7 @@ func ToGstPushSrc(obj interface{}) *GstPushSrc {
// wrapGstPushSrc wraps the given unsafe.Pointer in a GstPushSrc instance.
func wrapGstPushSrc(obj *C.GstPushSrc) *GstPushSrc {
return &GstPushSrc{&GstBaseSrc{gst.FromGstElementUnsafe(unsafe.Pointer(obj))}}
return &GstPushSrc{&GstBaseSrc{gst.FromGstElementUnsafeNone(unsafe.Pointer(obj))}}
}
// Instance returns the underlying C GstBaseSrc instance

View File

@@ -43,5 +43,5 @@ func goGstPushSrcFill(src *C.GstPushSrc, buf *C.GstBuffer) C.GstFlowReturn {
caller := glib.FromObjectUnsafePrivate(unsafe.Pointer(src)).(interface {
Fill(*GstPushSrc, *gst.Buffer) gst.FlowReturn
})
return C.GstFlowReturn(caller.Fill(wrapGstPushSrc(src), gst.FromGstBufferUnsafe(unsafe.Pointer(buf))))
return C.GstFlowReturn(caller.Fill(wrapGstPushSrc(src), gst.FromGstBufferUnsafeNone(unsafe.Pointer(buf))))
}

View File

@@ -18,7 +18,7 @@ func TypeFindHelper(pad *gst.Pad, size uint64) *gst.Caps {
if caps == nil {
return nil
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps))
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps))
}
// TypeFindHelperForBuffer tries to find what type of data is contained in the given GstBuffer,
@@ -42,7 +42,7 @@ func TypeFindHelperForBuffer(obj *gst.Object, buffer *gst.Buffer) (*gst.Caps, gs
if caps == nil {
return nil, gst.TypeFindProbability(prob)
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
}
// TypeFindHelperForBufferWithExtension ries to find what type of data is contained in the given GstBuffer,
@@ -73,7 +73,7 @@ func TypeFindHelperForBufferWithExtension(obj *gst.Object, buffer *gst.Buffer, e
if caps == nil {
return nil, gst.TypeFindProbability(prob)
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
}
// TypeFindHelperForData tries to find what type of data is contained in the given data,
@@ -97,7 +97,7 @@ func TypeFindHelperForData(obj *gst.Object, data []byte) (*gst.Caps, gst.TypeFin
if caps == nil {
return nil, gst.TypeFindProbability(prob)
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
}
// TypeFindHelperForDataWithExtension ries to find what type of data is contained in the given data,
@@ -128,7 +128,7 @@ func TypeFindHelperForDataWithExtension(obj *gst.Object, data []byte, extension
if caps == nil {
return nil, gst.TypeFindProbability(prob)
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps)), gst.TypeFindProbability(prob)
}
// TypeFindHelperForExtension tries to find the best GstCaps associated with extension.
@@ -148,5 +148,5 @@ func TypeFindHelperForExtension(obj *gst.Object, extension string) *gst.Caps {
if caps == nil {
return nil
}
return gst.FromGstCapsUnsafe(unsafe.Pointer(caps))
return gst.FromGstCapsUnsafeFull(unsafe.Pointer(caps))
}