app

package
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2024 License: BSD-3-Clause Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GCDuint32

func GCDuint32(a, b uint32) uint32

GCDuint32 - greatest common divisor (GCD) via Euclidean algorithm

func Run

func Run(opts *Options) error

Types

type ChannelConfig

type ChannelConfig struct {
	Name                  string                 `json:"name"`
	StartNr               int                    `json:"startNr"`
	AuthUser              string                 `json:"authUser"`
	AuthPswd              string                 `json:"authPassword"`
	TimeShiftBufferDepthS uint32                 `json:"timeShiftBufferDepthS"`
	ReceiveNrRawSegments  uint32                 `json:"receiveNrRawSegments"`
	Reps                  []RepresentationConfig `json:"reps"`
	Ignore                bool                   `json:"ignore,omitempty"`
}

func (*ChannelConfig) GetRepConfig

func (cc *ChannelConfig) GetRepConfig(name string) (*RepresentationConfig, bool)

type ChannelMgr

type ChannelMgr struct {
	// contains filtered or unexported fields
}

ChannelMgr is a manager for channel objects. The key is the channel name that must be unique.

func NewChannelMgr

func NewChannelMgr(cfg *Config, defaultTimeShiftBufferDepthS, defaultReceiveNrRawSegments uint32) *ChannelMgr

func (*ChannelMgr) AddChannel

func (cm *ChannelMgr) AddChannel(ctx context.Context, chName, chDir string)

func (*ChannelMgr) GetChannel

func (cm *ChannelMgr) GetChannel(chName string) (*channel, bool)

type Config

type Config struct {
	DefaultUser string          `json:"defaultUser"`
	DefaultPswd string          `json:"defaultPassword"`
	Channels    []ChannelConfig `json:"channels"`
}

Config provides configuration for channels. If DefaultUsr or DefaultPswd is set, it will be used as default for all channels, meaning that no password less channels are allowed. Drop means that a channel will be dropped and not processed.

func GetEmptyConfig

func GetEmptyConfig() *Config

type Options

type Options struct {
	// contains filtered or unexported fields
}

func ParseOptions

func ParseOptions() (*Options, error)

type Receiver

type Receiver struct {
	// contains filtered or unexported fields
}

Receiver is a receiver of CMAF segments. There may be parallel full streams with their own set of tracks (streams).

func NewReceiver

func NewReceiver(ctx context.Context, opts *Options, cfg *Config) (*Receiver, error)

func (*Receiver) DeleteHandlerFunc

func (r *Receiver) DeleteHandlerFunc(w http.ResponseWriter, req *http.Request)

DeleteHandlerFunc is a handler for deleting segments. Not used since fixed timeshiftBufferDepth.

func (*Receiver) SegmentHandlerFunc

func (r *Receiver) SegmentHandlerFunc(w http.ResponseWriter, req *http.Request)

SegmentHandlerFunc is a handler for receiving segments, but will also accept MPDs (extension .mpd).

type RepresentationConfig

type RepresentationConfig struct {
	Name        string `json:"name"`
	Language    string `json:"language"`
	Role        string `json:"role"`
	DisplayName string `json:"displayName"`
	Bitrate     uint32 `json:"bitrate,omitempty"`
	Ignore      bool   `json:"ignore,omitempty"`
}

RepresentationConfig provides configuration for a representation. If Name matches an incoming stream, non-zero values here will override the values from the incoming stream. Ignore means that the representation should be ignored.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL