-
Notifications
You must be signed in to change notification settings - Fork 110
/
utils.go
41 lines (32 loc) · 954 Bytes
/
utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package vpx
import (
"fmt"
"github.com/edaniels/golog"
"go.viam.com/rdk/gostream"
"go.viam.com/rdk/gostream/codec"
)
// DefaultStreamConfig configures vpx as the encoder for a stream.
var DefaultStreamConfig gostream.StreamConfig
func init() {
DefaultStreamConfig.VideoEncoderFactory = NewEncoderFactory(Version8)
}
// NewEncoderFactory returns a vpx factory for the given vpx codec.
func NewEncoderFactory(codecVersion Version) codec.VideoEncoderFactory {
return &factory{codecVersion}
}
type factory struct {
codecVersion Version
}
func (f *factory) New(width, height, keyFrameInterval int, logger golog.Logger) (codec.VideoEncoder, error) {
return NewEncoder(f.codecVersion, width, height, keyFrameInterval, logger)
}
func (f *factory) MIMEType() string {
switch f.codecVersion {
case Version8:
return "video/vp8"
case Version9:
return "video/vp9"
default:
panic(fmt.Errorf("unknown codec version %q", f.codecVersion))
}
}