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