Files
mediadevices/pkg/driver/driver.go
2020-02-06 22:44:29 -08:00

77 lines
1.0 KiB
Go

package driver
import (
"time"
"github.com/pion/mediadevices/pkg/frame"
"github.com/pion/mediadevices/pkg/io/audio"
"github.com/pion/mediadevices/pkg/io/video"
)
type OpenCloser interface {
Open() error
Close() error
}
type Infoer interface {
Info() Info
}
type Info struct {
DeviceType DeviceType
}
type VideoCapable interface {
Start(setting VideoSetting) (video.Reader, error)
Stop() error
Settings() []VideoSetting
}
type VideoSetting struct {
Width, Height int
FrameFormat frame.Format
}
type AudioCapable interface {
Start(setting AudioSetting) (audio.Reader, error)
Stop() error
Settings() []AudioSetting
}
type AudioSetting struct {
SampleRate int
Latency time.Duration
Mono bool
}
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
}