types

package
v1.8.5 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2024 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// request types
	RequestTypeRoomComposite  = "room_composite"
	RequestTypeWeb            = "web"
	RequestTypeParticipant    = "participant"
	RequestTypeTrackComposite = "track_composite"
	RequestTypeTrack          = "track"

	// source types
	SourceTypeWeb SourceType = "web"
	SourceTypeSDK SourceType = "sdk"

	// egress types
	EgressTypeStream    EgressType = "stream"
	EgressTypeWebsocket EgressType = "websocket"
	EgressTypeFile      EgressType = "file"
	EgressTypeSegments  EgressType = "segments"
	EgressTypeImages    EgressType = "images"

	// input types
	MimeTypeAAC      MimeType = "audio/aac"
	MimeTypeOpus     MimeType = "audio/opus"
	MimeTypeRawAudio MimeType = "audio/x-raw"
	MimeTypeH264     MimeType = "video/h264"
	MimeTypeVP8      MimeType = "video/vp8"
	MimeTypeVP9      MimeType = "video/vp9"
	MimeTypeJPEG     MimeType = "image/jpeg"
	MimeTypeRawVideo MimeType = "video/x-raw"

	// video profiles
	ProfileBaseline Profile = "baseline"
	ProfileMain     Profile = "main"
	ProfileHigh     Profile = "high"

	// output types
	OutputTypeUnknownFile OutputType = ""
	OutputTypeRaw         OutputType = "audio/x-raw"
	OutputTypeOGG         OutputType = "audio/ogg"
	OutputTypeIVF         OutputType = "video/x-ivf"
	OutputTypeMP4         OutputType = "video/mp4"
	OutputTypeTS          OutputType = "video/mp2t"
	OutputTypeWebM        OutputType = "video/webm"
	OutputTypeJPEG        OutputType = "image/jpeg"
	OutputTypeRTMP        OutputType = "rtmp"
	OutputTypeHLS         OutputType = "application/x-mpegurl"
	OutputTypeJSON        OutputType = "application/json"
	OutputTypeBlob        OutputType = "application/octet-stream"

	// file extensions
	FileExtensionRaw  = ".raw"
	FileExtensionOGG  = ".ogg"
	FileExtensionIVF  = ".ivf"
	FileExtensionMP4  = ".mp4"
	FileExtensionTS   = ".ts"
	FileExtensionWebM = ".webm"
	FileExtensionM3U8 = ".m3u8"
	FileExtensionJPEG = ".jpeg"
)

Variables

View Source
var (
	DefaultAudioCodecs = map[OutputType]MimeType{
		OutputTypeRaw:  MimeTypeRawAudio,
		OutputTypeOGG:  MimeTypeOpus,
		OutputTypeMP4:  MimeTypeAAC,
		OutputTypeTS:   MimeTypeAAC,
		OutputTypeWebM: MimeTypeOpus,
		OutputTypeRTMP: MimeTypeAAC,
		OutputTypeHLS:  MimeTypeAAC,
	}

	DefaultVideoCodecs = map[OutputType]MimeType{
		OutputTypeIVF:  MimeTypeVP8,
		OutputTypeMP4:  MimeTypeH264,
		OutputTypeTS:   MimeTypeH264,
		OutputTypeWebM: MimeTypeVP8,
		OutputTypeRTMP: MimeTypeH264,
		OutputTypeHLS:  MimeTypeH264,
	}

	FileExtensions = map[FileExtension]struct{}{
		FileExtensionRaw:  {},
		FileExtensionOGG:  {},
		FileExtensionIVF:  {},
		FileExtensionMP4:  {},
		FileExtensionTS:   {},
		FileExtensionWebM: {},
		FileExtensionM3U8: {},
		FileExtensionJPEG: {},
	}

	FileExtensionForOutputType = map[OutputType]FileExtension{
		OutputTypeRaw:  FileExtensionRaw,
		OutputTypeOGG:  FileExtensionOGG,
		OutputTypeIVF:  FileExtensionIVF,
		OutputTypeMP4:  FileExtensionMP4,
		OutputTypeTS:   FileExtensionTS,
		OutputTypeWebM: FileExtensionWebM,
		OutputTypeHLS:  FileExtensionM3U8,
		OutputTypeJPEG: FileExtensionJPEG,
	}

	CodecCompatibility = map[OutputType]map[MimeType]bool{
		OutputTypeRaw: {
			MimeTypeRawAudio: true,
		},
		OutputTypeOGG: {
			MimeTypeOpus: true,
		},
		OutputTypeIVF: {
			MimeTypeVP8: true,
			MimeTypeVP9: true,
		},
		OutputTypeMP4: {
			MimeTypeAAC:  true,
			MimeTypeOpus: true,
			MimeTypeH264: true,
		},
		OutputTypeTS: {
			MimeTypeAAC:  true,
			MimeTypeOpus: true,
			MimeTypeH264: true,
		},
		OutputTypeWebM: {
			MimeTypeOpus: true,
			MimeTypeVP8:  true,
			MimeTypeVP9:  true,
		},
		OutputTypeRTMP: {
			MimeTypeAAC:  true,
			MimeTypeH264: true,
		},
		OutputTypeHLS: {
			MimeTypeAAC:  true,
			MimeTypeH264: true,
		},
		OutputTypeUnknownFile: {
			MimeTypeAAC:  true,
			MimeTypeOpus: true,
			MimeTypeH264: true,
			MimeTypeVP8:  true,
			MimeTypeVP9:  true,
		},
	}

	AllOutputAudioCodecs = map[MimeType]bool{
		MimeTypeAAC:      true,
		MimeTypeOpus:     true,
		MimeTypeRawAudio: true,
	}

	AllOutputVideoCodecs = map[MimeType]bool{
		MimeTypeH264: true,
	}

	AudioOnlyFileOutputTypes = []OutputType{
		OutputTypeOGG,
		OutputTypeMP4,
	}
	VideoOnlyFileOutputTypes = []OutputType{
		OutputTypeMP4,
	}
	AudioVideoFileOutputTypes = []OutputType{
		OutputTypeMP4,
	}

	TrackOutputTypes = map[MimeType]OutputType{
		MimeTypeOpus: OutputTypeOGG,
		MimeTypeH264: OutputTypeMP4,
		MimeTypeVP8:  OutputTypeWebM,
		MimeTypeVP9:  OutputTypeWebM,
	}
)

Functions

func GetMapIntersection added in v1.7.0

func GetMapIntersection[K comparable](mapA map[K]bool, mapB map[K]bool) map[K]bool

func IsOutputTypeCompatibleWithCodecs added in v1.7.0

func IsOutputTypeCompatibleWithCodecs(ot OutputType, codecs map[MimeType]bool) bool

Types

type EgressType

type EgressType string

type FileExtension

type FileExtension string

type MimeType

type MimeType string

type OutputType

type OutputType string

func GetOutputTypeCompatibleWithCodecs added in v1.7.0

func GetOutputTypeCompatibleWithCodecs(types []OutputType, audioCodecs map[MimeType]bool, videoCodecs map[MimeType]bool) OutputType

type Profile

type Profile string

type RequestType added in v1.7.8

type RequestType string

type SourceType added in v1.5.6

type SourceType string

Jump to

Keyboard shortcuts

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