stream-server/srt/stream_ids.go

43 lines
941 B
Go

package srt
import (
"os"
"io"
"strings"
"stream_server/transcoder"
)
func NewWriter(stream_key string) (io.WriteCloser, error) {
transcoder_in, err := transcoder.NewTranscoder(stream_key)
if err != nil {
return nil, err
}
return transcoder_in, nil
}
func CheckStreamID(stream_id []byte) (io.WriteCloser, bool) {
stream_key := make([]byte, 0)
for i := len(stream_id) - 1; i >= 0; i-- {
if stream_id[i] == 0 {
break
}
stream_key = append(stream_key, stream_id[i])
}
stream_key_string := strings.TrimSpace(string(stream_key))
if check_stream_key(stream_key_string) {
writer, err := NewWriter(stream_key_string)
if err != nil {
return nil, false
}
return writer, true
}
return nil, false
}
func check_stream_key(stream_key string) (bool) {
base_dir, _ := os.UserHomeDir()
if fileinfo, err := os.Stat(base_dir + "/live/" + stream_key); err == nil && fileinfo.IsDir() {
return true
}
return false
}