mirror of
https://github.com/pion/mediadevices.git
synced 2025-10-05 08:36:55 +08:00
82 lines
1.0 KiB
Go
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
|
|
}
|