Files
mediadevices/pkg/driver/driver.go
2019-12-28 09:39:31 -08:00

82 lines
1.0 KiB
Go

package driver
import (
"github.com/pion/mediadevices/pkg/frame"
)
type State uint
const (
StateClosed State = iota
StateOpened
StateStarted
StateStopped
)
type DataCb func(b []byte)
type OpenCloser interface {
Open() error
Close() error
}
type Infoer interface {
Info() Info
}
type Info struct {
Kind Kind
DeviceType DeviceType
}
type VideoCapable interface {
Start(setting VideoSetting, cb DataCb) error
Stop() error
Settings() []VideoSetting
}
type VideoSetting struct {
Width, Height int
FrameFormat frame.Format
}
type AudioCapable interface {
Start(setting AudioSetting, cb DataCb) error
Stop() error
Settings() []AudioSetting
}
type AudioSetting struct {
}
type Adapter interface {
OpenCloser
Infoer
}
type VideoAdapter interface {
Adapter
VideoCapable
}
type AudioAdapter interface {
Adapter
AudioCapable
}
type Driver interface {
Adapter
ID() string
Status() State
}
type VideoDriver interface {
Driver
VideoCapable
}
type AudioDriver interface {
Driver
AudioCapable
}