gst

package module
v0.0.6-0...-b64cbdb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

README

gst

a small go gstreamer binding

Examples

https://github.com/notedit/gst-go-demo

TODO

add emit-signals, new-sample, pull-sample callback

Documentation

Index

Constants

View Source
const (
	PAD_UNKNOWN = PadDirection(C.GST_PAD_UNKNOWN)
	PAD_SRC     = PadDirection(C.GST_PAD_SRC)
	PAD_SINK    = PadDirection(C.GST_PAD_SINK)
)
View Source
const (
	PadLinkOk             PadLinkReturn = C.GST_PAD_LINK_OK
	PadLinkWrongHierarchy               = C.GST_PAD_LINK_WRONG_HIERARCHY
	PadLinkWasLinked                    = C.GST_PAD_LINK_WAS_LINKED
	PadLinkWrongDirection               = C.GST_PAD_LINK_WRONG_DIRECTION
	PadLinkNoFormat                     = C.GST_PAD_LINK_NOFORMAT
	PadLinkNoSched                      = C.GST_PAD_LINK_NOSCHED
	PadLinkRefused                      = C.GST_PAD_LINK_REFUSED
)

Variables

This section is empty.

Functions

func BufferGetData

func BufferGetData(gstBuffer *Buffer) (data []byte, err error)

func CheckPlugins

func CheckPlugins(plugins []string) error

Types

type Bin

type Bin struct {
	Element
}

func BinNew

func BinNew(name string) (bin *Bin)

func ParseBinFromDescription

func ParseBinFromDescription(binStr string, ghostPads bool) (bin *Bin, err error)

func (*Bin) Add

func (b *Bin) Add(child *Element)

func (*Bin) AddMany

func (b *Bin) AddMany(elements ...*Element)

func (*Bin) GetByName

func (b *Bin) GetByName(name string) (element *Element)

func (*Bin) Remove

func (b *Bin) Remove(child *Element)

type Buffer

type Buffer struct {
	C *C.GstBuffer
}

func BufferNewAndAlloc

func BufferNewAndAlloc(size uint) (gstBuffer *Buffer, err error)

func BufferNewWrapped

func BufferNewWrapped(data []byte) (gstBuffer *Buffer, err error)

type Bus

type Bus struct {
	C *C.GstBus
}

func (*Bus) HavePending

func (b *Bus) HavePending() bool

func (*Bus) Pop

func (b *Bus) Pop() (message *Message)

func (*Bus) Pull

func (b *Bus) Pull(messageType MessageType) (message *Message)

type Caps

type Caps struct {
	// contains filtered or unexported fields
}

func CapsFromString

func CapsFromString(caps string) (gstCaps *Caps)

func (*Caps) String

func (c *Caps) String() (str string)

func (*Caps) ToString

func (c *Caps) ToString() (str string)

type Clock

type Clock struct {
	C *C.GstClock
}

func (*Clock) GetClockTime

func (c *Clock) GetClockTime() uint64

type Element

type Element struct {
	GstElement *C.GstElement
	// contains filtered or unexported fields
}

func ElementFactoryMake

func ElementFactoryMake(factoryName string, name string) (e *Element, err error)

func (*Element) AddPad

func (e *Element) AddPad(pad *Pad) bool

func (*Element) GetClock

func (e *Element) GetClock() (gstClock *Clock)

func (*Element) GetClockBaseTime

func (e *Element) GetClockBaseTime() uint64

func (*Element) GetPadTemplate

func (e *Element) GetPadTemplate(name string) (padTemplate *PadTemplate)

func (*Element) GetRequestPad

func (e *Element) GetRequestPad(padTemplate *PadTemplate, name string, caps *Caps) (pad *Pad)

func (*Element) GetStaticPad

func (e *Element) GetStaticPad(name string) (pad *Pad)

func (*Element) IsEOS

func (e *Element) IsEOS() bool

appsink

func (e *Element) Link(dst *Element) bool

func (*Element) Name

func (e *Element) Name() (name string)

func (*Element) PullSample

func (e *Element) PullSample() (sample *Sample, err error)

func (*Element) PushBuffer

func (e *Element) PushBuffer(data []byte) (err error)

func (*Element) SetObject

func (e *Element) SetObject(name string, value interface{})

func (*Element) SetPadAddedCallback

func (e *Element) SetPadAddedCallback(callback PadAddedCallback)

func (*Element) VideoOverlayExpose

func (e *Element) VideoOverlayExpose()

VideoOverlayExpose tells an overlay that it has been exposed. This will redraw the current frame in the drawable even if the pipeline is PAUSED.

func (*Element) VideoOverlayHandleEvents

func (e *Element) VideoOverlayHandleEvents(handleEvents bool)

VideoOverlayHandleEvents tells an overlay that it should handle events from the window system. These events are forwarded upstream as navigation events. In some window system, events are not propagated in the window hierarchy if a client is listening for them. This method allows you to disable events handling completely from the GstVideoOverlay.

func (*Element) VideoOverlaySetWindowHandle

func (e *Element) VideoOverlaySetWindowHandle(windowID uintptr)

VideoOverlaySetWindowHandle will call the video overlay's set_window_handle method. You should use this method to tell to an overlay to display video output to a specific window (e.g. an XWindow on X11). Passing 0 as the handle will tell the overlay to stop using that window and create an internal one. registers the windowID for video output of the element.

type GMainLoop

type GMainLoop struct {
	C *C.GMainLoop
}

func MainLoopNew

func MainLoopNew() (loop *GMainLoop)

func (*GMainLoop) IsRuning

func (l *GMainLoop) IsRuning() bool

func (*GMainLoop) Quit

func (l *GMainLoop) Quit()

func (*GMainLoop) Run

func (l *GMainLoop) Run()

type Message

type Message struct {
	C *C.GstMessage
}

func (*Message) GetName

func (message *Message) GetName() (name string)

func (*Message) GetStructure

func (message *Message) GetStructure() (structure *Structure)

func (*Message) GetType

func (message *Message) GetType() (messageType MessageType)

type MessageType

type MessageType C.GstMessageType
const (
	MessageUnknown         MessageType = C.GST_MESSAGE_UNKNOWN
	MessageEos             MessageType = C.GST_MESSAGE_EOS
	MessageError           MessageType = C.GST_MESSAGE_ERROR
	MessageWarning         MessageType = C.GST_MESSAGE_WARNING
	MessageInfo            MessageType = C.GST_MESSAGE_INFO
	MessageTag             MessageType = C.GST_MESSAGE_TAG
	MessageBuffering       MessageType = C.GST_MESSAGE_BUFFERING
	MessageStateChanged    MessageType = C.GST_MESSAGE_STATE_CHANGED
	MessageStateDirty      MessageType = C.GST_MESSAGE_STATE_DIRTY
	MessageStepDone        MessageType = C.GST_MESSAGE_STEP_DONE
	MessageClockProvide    MessageType = C.GST_MESSAGE_CLOCK_PROVIDE
	MessageClockLost       MessageType = C.GST_MESSAGE_CLOCK_LOST
	MessageStructureChange MessageType = C.GST_MESSAGE_STREAM_STATUS
	MessageApplication     MessageType = C.GST_MESSAGE_APPLICATION
	MessageElement         MessageType = C.GST_MESSAGE_ELEMENT
	MessageSegmentStart    MessageType = C.GST_MESSAGE_SEGMENT_START
	MessageSegmentDone     MessageType = C.GST_MESSAGE_SEGMENT_DONE
	MessageDurationChanged MessageType = C.GST_MESSAGE_DURATION_CHANGED
	MessageLatency         MessageType = C.GST_MESSAGE_LATENCY
	MessageAsyncStart      MessageType = C.GST_MESSAGE_ASYNC_START
	MessageAsyncDone       MessageType = C.GST_MESSAGE_ASYNC_DONE
	MessageRequestState    MessageType = C.GST_MESSAGE_REQUEST_STATE
	MessageStepStart       MessageType = C.GST_MESSAGE_STEP_START
	MessageQos             MessageType = C.GST_MESSAGE_QOS
	MessageProgress        MessageType = C.GST_MESSAGE_PROGRESS
	MessageToc             MessageType = C.GST_MESSAGE_TOC
	MessageResetTime       MessageType = C.GST_MESSAGE_RESET_TIME
	MessageStreamStart     MessageType = C.GST_MESSAGE_STREAM_START
	MessageNeedContext     MessageType = C.GST_MESSAGE_NEED_CONTEXT
	MessageHaveContext     MessageType = C.GST_MESSAGE_HAVE_CONTEXT
	MessageExtended        MessageType = C.GST_MESSAGE_EXTENDED
	MessageDeviceAdded     MessageType = C.GST_MESSAGE_DEVICE_ADDED
	MessageDeviceRemoved   MessageType = C.GST_MESSAGE_DEVICE_REMOVED
	//MessagePropertyNotify   MessageType = C.GST_MESSAGE_PROPERTY_NOTIFY
	//MessageStreamCollection MessageType = C.GST_MESSAGE_STREAM_COLLECTION
	//MessageStreamsSelected  MessageType = C.GST_MESSAGE_STREAMS_SELECTED
	//MessageRedirect         MessageType = C.GST_MESSAGE_REDIRECT
	MessageAny MessageType = C.GST_MESSAGE_ANY
)

type Pad

type Pad struct {
	// contains filtered or unexported fields
}

func (*Pad) GetCurrentCaps

func (p *Pad) GetCurrentCaps() (gstCaps *Caps)

func (*Pad) IsEOS

func (p *Pad) IsEOS() bool

func (*Pad) IsLinked

func (p *Pad) IsLinked() bool
func (p *Pad) Link(sink *Pad) (padLinkReturn PadLinkReturn)

func (*Pad) Name

func (p *Pad) Name() string
func (p *Pad) Unlink(sink *Pad) (padLinkReturn PadLinkReturn)

type PadAddedCallback

type PadAddedCallback func(element *Element, pad *Pad)

type PadDirection

type PadDirection C.GstPadDirection

func (PadDirection) String

func (p PadDirection) String() string

type PadLinkReturn

type PadLinkReturn int

type PadTemplate

type PadTemplate struct {
	C *C.GstPadTemplate
}

type Pipeline

type Pipeline struct {
	Bin
}

func ParseLaunch

func ParseLaunch(pipelineStr string) (p *Pipeline, err error)

func PipelineNew

func PipelineNew(name string) (e *Pipeline, err error)

func (*Pipeline) GetBus

func (p *Pipeline) GetBus() (bus *Bus)

func (*Pipeline) GetClock

func (p *Pipeline) GetClock() (clock *Clock)

func (*Pipeline) GetDelay

func (p *Pipeline) GetDelay() uint64

func (*Pipeline) GetLatency

func (p *Pipeline) GetLatency() uint64

func (*Pipeline) SetLatency

func (p *Pipeline) SetLatency(latency uint64)

func (*Pipeline) SetState

func (p *Pipeline) SetState(state StateOptions)

type Sample

type Sample struct {
	Data     []byte
	Duration uint64
	Pts      uint64
	Dts      uint64
	Offset   uint64
}

type StateOptions

type StateOptions int

type Structure

type Structure struct {
	C *C.GstStructure
}

func NewStructure

func NewStructure(name string) (structure *Structure)

func (*Structure) SetValue

func (s *Structure) SetValue(name string, value interface{})

func (*Structure) ToString

func (s *Structure) ToString() (str string)

Directories

Path Synopsis
examples
x11embed
This example embeds a gstream pipeline output into an X11 window.
This example embeds a gstream pipeline output into an X11 window.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL