Documentation
¶
Index ¶
- func GenerateSectionImages(m *Manager, req SectionImageRequest, fallback func() error) error
- type CamService
- type LiveStateNotifier
- type Manager
- func (m *Manager) EndStream(ctx context.Context, streamID uint, discardVoD bool) error
- func (m *Manager) Notify(ctx context.Context, notification *protobuf.Notification) (*protobuf.NotificationResponse, error)
- func (m *Manager) ReapStaleStreams()
- func (m *Manager) Register(ctx context.Context, req *protobuf.RegisterRequest) (*protobuf.RegisterResponse, error)
- func (m *Manager) RequestSectionImages(ctx context.Context, req SectionImageRequest) error
- func (m *Manager) RequestSelfStream(ctx context.Context, stream model.Stream) error
- func (m *Manager) Run() error
- func (m *Manager) TriggerDueStreams() error
- func (m *Manager) UpdateLights()
- type Option
- type SectionImageRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateSectionImages ¶ added in v1.8.0
func GenerateSectionImages(m *Manager, req SectionImageRequest, fallback func() error) error
GenerateSectionImages generates the thumbnails for the given video sections.
Section image generation is being moved from the workers to the runners. Until every deployment runs runners, fallback - the legacy worker path - is used whenever no runner takes the job. m may be nil when no runner manager is configured.
Types ¶
type CamService ¶ added in v1.7.0
type LiveStateNotifier ¶ added in v1.7.9
LiveStateNotifier is called whenever a stream transitions into or out of the live state, so that other parts of the application (e.g. the websocket hub) can react to it.
type Manager ¶
type Manager struct {
protobuf.UnimplementedRunnerManagerServiceServer
// contains filtered or unexported fields
}
Manager manages communication with runners and handles job distribution
func New ¶
func New(dao dao.DaoWrapper, opts ...Option) *Manager
New returns a new instance of Manager with the given Options
func (*Manager) EndStream ¶ added in v1.7.9
EndStream cancels all runner jobs tracked for the given stream, e.g. when an admin manually stops a stream. It is a no-op if no runner jobs are tracked for the stream (e.g. because it is running on a legacy worker instead).
func (*Manager) Notify ¶
func (m *Manager) Notify(ctx context.Context, notification *protobuf.Notification) (*protobuf.NotificationResponse, error)
func (*Manager) ReapStaleStreams ¶ added in v1.7.9
func (m *Manager) ReapStaleStreams()
ReapStaleStreams finds streams that are stuck in live state and cleans them up. This handles the case where the runner crashes and can never deliver StreamEndNotification.
func (*Manager) Register ¶
func (m *Manager) Register(ctx context.Context, req *protobuf.RegisterRequest) (*protobuf.RegisterResponse, error)
func (*Manager) RequestSectionImages ¶ added in v1.8.0
func (m *Manager) RequestSectionImages(ctx context.Context, req SectionImageRequest) error
RequestSectionImages asks a runner to generate thumbnails for the given video sections. The runner answers asynchronously with a SectionImagesReadyNotification, which saveSectionImages then stores, so this returns as soon as the job is accepted.
func (*Manager) RequestSelfStream ¶ added in v1.5.7
func (*Manager) TriggerDueStreams ¶
func (*Manager) UpdateLights ¶ added in v1.7.5
func (m *Manager) UpdateLights()
type Option ¶
type Option func(m *Manager)
Option is a func that applies configuration to the Manager
func WithCamService ¶ added in v1.7.0
func WithCamService(camService CamService) Option
func WithListenAddr ¶
WithListenAddr sets the address the Manager listens on for gRPC connections from the Runner. If not applied, the default is used (:50056)
func WithLiveStateNotifier ¶ added in v1.7.9
func WithLiveStateNotifier(notifier LiveStateNotifier) Option
WithLiveStateNotifier registers a callback invoked when a stream starts or stops being live, e.g. to notify viewers via websocket.
func WithMassStorage ¶ added in v1.5.7
func WithSubtitleClient ¶ added in v1.5.7
func WithSubtitleClient(client pb.SubtitleGeneratorClient, auth string) Option
type SectionImageRequest ¶ added in v1.8.0
type SectionImageRequest struct {
StreamID uint
PlaylistURL string
Sections []model.VideoSection
}
SectionImageRequest describes the video sections of a stream that need a thumbnail.