Ignite/cli/encode-server/decoders.go

39 lines
763 B
Go

package main
import (
"git.gammaspectra.live/S.O.N.G/Ignite/decoder"
"io"
"slices"
)
const (
DecoderY4M = "y4m"
DecoderDav1d = "libdav1d"
)
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
}
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
}