driver

package
v0.0.0-...-6f04ce8 Latest Latest
Warning

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

Go to latest
Published: May 19, 2020 License: GPL-3.0 Imports: 10 Imported by: 1

Documentation

Overview

Package driver define driver operation. all sub-cards' driver should be in this package

Index

Constants

View Source
const (
	CtlCmdStart = iota
	CtlCmdStop
	CtlCmdName
	CtlCmdIP
	CtlCmdWorkerID
	CtlCmdSetting
)

CtlCmd ID style const

View Source
const (
	PipeRTSPIN = iota
	PipeEncoder
)

Pipe ID

View Source
const C9830TranscoderName string = "C9830"

C9830TranscoderName is the sub-card's name

View Source
const DummyName string = "Dummy"

DummyName is the sub-card's name

View Source
const LocalDecoderName string = "local_decoder"

LocalDecoderName is the sub-card's name

View Source
const LocalEncoderName string = "local_encoder"

LocalEncoderName is the sub-card's name

View Source
const RTSPInName string = "RTSPIn"

RTSPInName is the sub-card's name

View Source
const TranscoderBinName string = "TransCoder"

TranscoderBinName is the sub-card's name

Variables

View Source
var Pipes [2]*PipeSvr

Pipes global service

View Source
var (
	TransURL = fmt.Sprintf("http://%s/goform/form_data", comm.AppCfg.TransitSvr)
)

TransURL stores url for transit

Functions

func GetWorkerName

func GetWorkerName(w Worker) string

GetWorkerName get Worker's Name

func GetWorkerWorkerID

func GetWorkerWorkerID(w Worker) int

GetWorkerWorkerID get Worker's Slot

func GetWorkerWorkerIP

func GetWorkerWorkerIP(w Worker) net.IP

GetWorkerWorkerIP get Worker's Slot

func IsWorkerDec

func IsWorkerDec(w Worker) bool

IsWorkerDec return bool

func IsWorkerEnc

func IsWorkerEnc(w Worker) bool

IsWorkerEnc return bool

func RPC

func RPC(url string, cmd string, args interface{}, reply interface{}) error

RPC wrappers JSON-rpc queries

func SetDecodeSes

func SetDecodeSes(w Worker, sess *Session) error

SetDecodeSes set Session to Decode

func SetEncodeSes

func SetEncodeSes(w Worker, sess *Session) error

SetEncodeSes set Session to Encoder

func SetWorkerRunning

func SetWorkerRunning(w Worker, r bool) error

SetWorkerRunning set Running status

func SetWorkerSettings

func SetWorkerSettings(w Worker, s map[string]interface{}) error

SetWorkerSettings set Running status

Types

type C9830

type C9830 struct {

	// Card Slot
	Slot int

	// Card IP
	IP net.IP

	URL string
	// contains filtered or unexported fields
}

C9830 is the main struct for sub-card

func (*C9830) Close

func (c *C9830) Close() error

Close method

func (*C9830) Open

func (c *C9830) Open() ([]Worker, error)

Open method

type C9830Worker

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

C9830Worker is the main struct for sub-card's Worker

func (*C9830Worker) Control

func (w *C9830Worker) Control(c CtlCmd, arg interface{}) interface{}

Control method

func (*C9830Worker) Decode

func (w *C9830Worker) Decode(sess *Session) error

Decode method

func (*C9830Worker) Encode

func (w *C9830Worker) Encode(sess *Session) error

Encode method

type Card

type Card interface {
	Open() ([]Worker, error)
	Close() error
}

Card defines sub-cards

type CtlCmd

type CtlCmd int

CtlCmd is ID style type for control()

type Decoder

type Decoder interface {
	Worker
	Decode(sess *Session) error
}

Decoder defines Decoder family operation

type Dummy

type Dummy struct {
	Slot int

	IP net.IP
}

Dummy is the main struct for sub-card

func (*Dummy) Close

func (d *Dummy) Close() error

Close sub-card, do un-initialization. a close of connection usually required. But you can do more here

func (*Dummy) Open

func (d *Dummy) Open() ([]Worker, error)

Open sub-card, do initialization. And return slice of Worker interface{}. Here you can setup net connection to sub-card, and perform necessary communication with it, as querying the hardware version or working path in sub-card

type DummyWorker

type DummyWorker struct {
	// SlotID here
	Slot int

	// WorkerID here
	WorkerID int

	// IP here
	IP net.IP
}

DummyWorker is the main struct for sub-card's Worker

func (*DummyWorker) Control

func (w *DummyWorker) Control(c CtlCmd, arg interface{}) interface{}

Control do quering and setting, like querying version, setting paramenters. Return nil if ont all CtlCmd is supported

func (*DummyWorker) Report

func (w *DummyWorker) Report() []string

Report do reporting

type Encoder

type Encoder interface {
	Worker
	Encode(sess *Session) error
}

Encoder defines Encoder family operation

type LocalD

type LocalD struct {
	// Card Slot
	Slot int

	// Card IP
	IP net.IP
}

LocalD is the main struct for sub-card

func (*LocalD) Close

func (l *LocalD) Close() error

Close method

func (*LocalD) Open

func (l *LocalD) Open() ([]Worker, error)

Open method

type LocalDWorker

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

LocalDWorker is the main struct for sub-card's Worker

func (*LocalDWorker) Control

func (w *LocalDWorker) Control(c CtlCmd, arg interface{}) interface{}

Control method

func (*LocalDWorker) Decode

func (w *LocalDWorker) Decode(sess *Session) error

Decode method

type LocalE

type LocalE struct {
	// Card Slot
	Slot int

	// Card IP
	IP net.IP
}

LocalE is the main struct for sub-card

func (*LocalE) Close

func (l *LocalE) Close() error

Close method

func (*LocalE) Open

func (l *LocalE) Open() ([]Worker, error)

Open method

type LocalEWorker

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

LocalEWorker is the main struct for sub-card's Worker

func (*LocalEWorker) Control

func (w *LocalEWorker) Control(c CtlCmd, arg interface{}) interface{}

Control method

func (*LocalEWorker) Encode

func (w *LocalEWorker) Encode(sess *Session) error

Encode method

type Pipe

type Pipe struct {
	InWorkers  Worker
	OutWorkers []Worker
	// contains filtered or unexported fields
}

Pipe contains pipeline info used by PipeSvr

type PipeSvr

type PipeSvr struct {

	// IP is the Svr IP
	IP net.IP

	// Prefix to identity services
	Prefix int
	// contains filtered or unexported fields
}

PipeSvr alloc Pipe

func (*PipeSvr) AllocPull

func (sr *PipeSvr) AllocPull(id int, w Worker) error

AllocPull alloc one pull

func (*PipeSvr) AllocPush

func (sr *PipeSvr) AllocPush(id int, w Worker) error

AllocPush alloc one push

func (*PipeSvr) Create

func (sr *PipeSvr) Create()

Create a svr

func (*PipeSvr) FreePull

func (sr *PipeSvr) FreePull(id int, w Worker) error

FreePull free one pull

func (*PipeSvr) FreePush

func (sr *PipeSvr) FreePush(id int) error

FreePush free one push

func (*PipeSvr) GetInfo

func (sr *PipeSvr) GetInfo() []Pipe

GetInfo print tree-like string

type RTSPIn

type RTSPIn struct {

	// Card Slot
	Slot int

	// Card IP
	IP net.IP

	URL string
	// contains filtered or unexported fields
}

RTSPIn is the main struct for sub-card

func (*RTSPIn) Close

func (c *RTSPIn) Close() error

Close method

func (*RTSPIn) Open

func (c *RTSPIn) Open() ([]Worker, error)

Open method

type RTSPInWorker

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

RTSPInWorker is the main struct for sub-card's Worker

func (*RTSPInWorker) Control

func (w *RTSPInWorker) Control(c CtlCmd, arg interface{}) interface{}

Control method

func (*RTSPInWorker) Encode

func (w *RTSPInWorker) Encode(sess *Session) error

Encode method

type Session

type Session struct {
	IP net.IP

	Ports []int
}

Session is src or dst for workers

type StatusMonitor

type StatusMonitor struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

StatusMonitor struct for monitoring worker status

func (*StatusMonitor) GetStatus

func (sm *StatusMonitor) GetStatus() bool

GetStatus return current status

func (*StatusMonitor) StartMonitor

func (sm *StatusMonitor) StartMonitor(w Worker)

StartMonitor start goroutine

func (*StatusMonitor) StopMonitor

func (sm *StatusMonitor) StopMonitor()

StopMonitor send signal to stop goroutine

type TCBin

type TCBin struct {
	Card9830 Card
	CardRTSP Card
	// contains filtered or unexported fields
}

TCBin is the main struct for the Bin

func (*TCBin) Close

func (b *TCBin) Close() error

Close method

func (*TCBin) Open

func (b *TCBin) Open() ([]Worker, error)

Open method

type TCBinWorker

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

TCBinWorker is the main struct for sub-card's Worker

func (*TCBinWorker) Control

func (w *TCBinWorker) Control(c CtlCmd, arg interface{}) interface{}

Control method

func (*TCBinWorker) Encode

func (w *TCBinWorker) Encode(sess *Session) error

Encode method

type Worker

type Worker interface {
	Control(c CtlCmd, arg interface{}) interface{}
	Monitor() bool
}

Worker defines generic operation

Jump to

Keyboard shortcuts

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