From 14ef53aa76d681d751ecc9f60a67be908d3d3bf1 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Thu, 9 Feb 2023 21:41:57 -0800 Subject: [PATCH 1/2] Add GstSample marshalling code --- go.sum | 2 ++ gst/audio/gst_audio_channels.go | 1 + gst/gst.go.c | 7 +++++++ gst/gst.go.h | 4 ++++ gst/gst_wrappers.go | 9 +++++++++ 5 files changed, 23 insertions(+) diff --git a/go.sum b/go.sum index ad14e8f9..a638f0db 100644 --- a/go.sum +++ b/go.sum @@ -2,3 +2,5 @@ github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/tinyzimmer/go-glib v0.0.24 h1:ktZZC22/9t88kGRgNEFV/SESgIWhGHE+q7Z7Qj++luw= github.com/tinyzimmer/go-glib v0.0.24/go.mod h1:ltV0gO6xNFzZhsIRbFXv8RTq9NGoNT2dmAER4YmZfaM= +github.com/tinyzimmer/go-glib v0.0.25 h1:2GpumtkxA0wpXhCXP6D3ksb5pGMfo9WbhgLvEw8njK4= +github.com/tinyzimmer/go-glib v0.0.25/go.mod h1:ltV0gO6xNFzZhsIRbFXv8RTq9NGoNT2dmAER4YmZfaM= diff --git a/gst/audio/gst_audio_channels.go b/gst/audio/gst_audio_channels.go index a4659382..5ffc7d0c 100644 --- a/gst/audio/gst_audio_channels.go +++ b/gst/audio/gst_audio_channels.go @@ -5,6 +5,7 @@ package audio */ import "C" import ( + "math" "strings" "unsafe" ) diff --git a/gst/gst.go.c b/gst/gst.go.c index adc00798..5d139413 100644 --- a/gst/gst.go.c +++ b/gst/gst.go.c @@ -153,6 +153,13 @@ gboolean gstObjectFlagIsSet (GstObject * obj, GstElementFlags flags) GstTocSetter * toTocSetter (GstElement * elem) { return GST_TOC_SETTER(elem); } GstTagSetter * toTagSetter (GstElement *elem) { return GST_TAG_SETTER(elem); } +/* Sample Utilities */ + +GstSample * getSampleValue (GValue * val) +{ + return gst_value_get_sample(val); +} + /* Misc */ diff --git a/gst/gst.go.h b/gst/gst.go.h index 62e4692c..7ae676c5 100644 --- a/gst/gst.go.h +++ b/gst/gst.go.h @@ -132,4 +132,8 @@ extern gpointer glistNext (GList * list); extern int sizeOfGCharArray (gchar ** arr); +/* Sample Utilities */ + +extern GstSample * getSampleValue (GValue * val); + #endif diff --git a/gst/gst_wrappers.go b/gst/gst_wrappers.go index 316a7dff..f982bb4f 100644 --- a/gst/gst_wrappers.go +++ b/gst/gst_wrappers.go @@ -234,6 +234,10 @@ func registerMarshalers() { T: TypeValueList, F: marshalValueList, }, + { + T: glib.Type(C.gst_sample_get_type()), + F: marshalSample, + }, } glib.RegisterGValueMarshalers(tm) @@ -500,3 +504,8 @@ func marshalQuery(p uintptr) (interface{}, error) { obj := (*C.GstQuery)(unsafe.Pointer(c)) return wrapQuery(obj), nil } + +func marshalSample(p uintptr) (interface{}, error) { + c := C.getSampleValue(toGValue(p)) + return wrapSample(c), nil +} From bced02e0ee831ee9f00e9ca8596283dbae3575f1 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Thu, 9 Feb 2023 21:58:01 -0800 Subject: [PATCH 2/2] CLeanup --- go.sum | 2 -- gst/audio/gst_audio_channels.go | 1 - 2 files changed, 3 deletions(-) diff --git a/go.sum b/go.sum index a638f0db..ad14e8f9 100644 --- a/go.sum +++ b/go.sum @@ -2,5 +2,3 @@ github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/tinyzimmer/go-glib v0.0.24 h1:ktZZC22/9t88kGRgNEFV/SESgIWhGHE+q7Z7Qj++luw= github.com/tinyzimmer/go-glib v0.0.24/go.mod h1:ltV0gO6xNFzZhsIRbFXv8RTq9NGoNT2dmAER4YmZfaM= -github.com/tinyzimmer/go-glib v0.0.25 h1:2GpumtkxA0wpXhCXP6D3ksb5pGMfo9WbhgLvEw8njK4= -github.com/tinyzimmer/go-glib v0.0.25/go.mod h1:ltV0gO6xNFzZhsIRbFXv8RTq9NGoNT2dmAER4YmZfaM= diff --git a/gst/audio/gst_audio_channels.go b/gst/audio/gst_audio_channels.go index 5ffc7d0c..a4659382 100644 --- a/gst/audio/gst_audio_channels.go +++ b/gst/audio/gst_audio_channels.go @@ -5,7 +5,6 @@ package audio */ import "C" import ( - "math" "strings" "unsafe" )