gst

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

gst

a small go gstreamer binding

Examples

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

Documentation

Index

Constants

View Source
const (
	StateVoidPending = State(C.GST_STATE_VOID_PENDING)
	StateNull        = State(C.GST_STATE_NULL)
	StateReady       = State(C.GST_STATE_READY)
	StatePaused      = State(C.GST_STATE_PAUSED)
	StatePlaying     = State(C.GST_STATE_PLAYING)
)
View Source
const (
	STATE_CHANGE_FAILURE    = StateChangeReturn(C.GST_STATE_CHANGE_FAILURE)
	STATE_CHANGE_SUCCESS    = StateChangeReturn(C.GST_STATE_CHANGE_SUCCESS)
	STATE_CHANGE_ASYNC      = StateChangeReturn(C.GST_STATE_CHANGE_ASYNC)
	STATE_CHANGE_NO_PREROLL = StateChangeReturn(C.GST_STATE_CHANGE_NO_PREROLL)
)
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) AddBin added in v0.0.9

func (b *Bin) AddBin(child *Bin)

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)

func (*Bin) RemoveBin added in v0.0.9

func (b *Bin) RemoveBin(child *Bin)

func (*Bin) RemoveMany added in v0.0.7

func (b *Bin) RemoveMany(childs ...*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) PopFiltered added in v0.0.8

func (b *Bus) PopFiltered(messageType MessageType) (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) GetRequestPad2 added in v0.0.9

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

func (*Element) GetState added in v0.0.7

func (e *Element) GetState(timeout_ns int64) (state, pending State,
	ret StateChangeReturn)

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) LinkFileterd added in v0.0.7

func (e *Element) LinkFileterd(dst *Element, gstCaps *Caps) 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) RemovePad added in v0.0.6

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

func (*Element) SetObject

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

func (*Element) SetPadAddedCallback

func (e *Element) SetPadAddedCallback(callback PadAddedCallback)

func (*Element) SetRtpBinFecDecSignal added in v0.1.0

func (e *Element) SetRtpBinFecDecSignal(pt int)

func (*Element) SetRtpBinNewRtpJitterSignal added in v0.1.0

func (e *Element) SetRtpBinNewRtpJitterSignal(params string)

func (*Element) SetRtpBinNewStorageSignal added in v0.1.0

func (e *Element) SetRtpBinNewStorageSignal(latency int)

func (*Element) SetRtpBinRequestptmapSignal added in v0.1.0

func (e *Element) SetRtpBinRequestptmapSignal()

func (*Element) SetState added in v0.0.6

func (e *Element) SetState(state State) StateChangeReturn
func (e *Element) UnLink(dst *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 (*Pad) SetObject added in v0.0.6

func (p *Pad) SetObject(name string, value interface{})
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) GetState added in v0.0.7

func (p *Pipeline) GetState(timeout_ns int64) (state, pending State, ret StateChangeReturn)

func (*Pipeline) SeekSimple added in v0.1.0

func (p *Pipeline) SeekSimple(millisec int64) bool

func (*Pipeline) SetLatency

func (p *Pipeline) SetLatency(latency uint64)

func (*Pipeline) SetState

func (p *Pipeline) SetState(state State) StateChangeReturn

type Sample

type Sample struct {
	Data     []byte
	Duration uint64
}

type State added in v0.0.7

type State C.GstState

func (State) String added in v0.0.7

func (s State) String() string

type StateChangeReturn added in v0.0.7

type StateChangeReturn C.GstStateChangeReturn

type Structure

type Structure struct {
	C *C.GstStructure
}

func NewStructure

func NewStructure(name string) (structure *Structure)

func StructureFromString added in v0.0.9

func StructureFromString(structure string) (gstStruct *Structure)

func (*Structure) GetDoubleArrayValue added in v0.1.0

func (s *Structure) GetDoubleArrayValue(key string) (res []float64, err error)

func (*Structure) GetStructureName added in v0.1.0

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

func (*Structure) SetValue

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

func (*Structure) ToString

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

Jump to

Keyboard shortcuts

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