Ignite/cli/encode-server/decoders.go

41 lines
792 B
Go
Raw Normal View History

2023-11-03 04:56:47 +00:00
package main
import (
"git.gammaspectra.live/S.O.N.G/Ignite/decoder"
"io"
"slices"
)
const (
DecoderFFMPEG = "ffmpeg"
DecoderY4M = "y4m"
DecoderDav1d = "libdav1d"
2023-11-03 04:56:47 +00:00
)
type DecoderEntry struct {
Name string
Version func() string
MimeType string
New func(w io.Reader, settings map[string]any) (decoder.Decoder, error)
}
var Decoders []DecoderEntry
func GetDecoderByName(name string) *DecoderEntry {
if i := slices.IndexFunc(Decoders, func(entry DecoderEntry) bool {
return entry.Name == name
}); i != -1 {
return &Decoders[i]
}
return nil
}
2023-11-03 04:56:47 +00:00
func GetDecoderByMimeType(mimeType string) *DecoderEntry {
if i := slices.IndexFunc(Decoders, func(entry DecoderEntry) bool {
return entry.MimeType == mimeType
}); i != -1 {
return &Decoders[i]
}
return nil
}