Documentation
¶
Index ¶
- Variables
- type AudioChannel
- type AudioDownmix
- type AudioPreset
- type ChannelLayout
- type ComputeClass
- type DolbyVisionSettings
- type ExecutionEnvironment
- type ExecutionFeatures
- type File
- type GopUnit
- type HDR10Settings
- type Image
- type Job
- type JobFilter
- type JobRepository
- type LocalPreset
- type LocalPresetRepository
- type OutputOptions
- type Overlays
- type Preset
- type PresetMap
- type PresetMapRepository
- type PresetSummary
- type PresetSummaryRepository
- type Repository
- type ScanType
- type SidecarAssetKind
- type StreamingParams
- type TimecodeBurnin
- type TranscodeOutput
- type VideoPreset
Constants ¶
This section is empty.
Variables ¶
var ( // ErrJobNotFound is the error returned when the job is not found on GetJob or // DeleteJob. ErrJobNotFound = errors.New("job not found") // ErrPresetMapNotFound is the error returned when the presetmap is not found // on GetPresetMap, UpdatePresetMap or DeletePresetMap. ErrPresetMapNotFound = errors.New("presetmap not found") // ErrPresetMapAlreadyExists is the error returned when the presetmap already // exists. ErrPresetMapAlreadyExists = errors.New("presetmap already exists") // ErrLocalPresetNotFound is the error returned when the local preset is not found // on GetPresetMap, UpdatePresetMap or DeletePresetMap. ErrLocalPresetNotFound = errors.New("local preset not found") // ErrLocalPresetAlreadyExists is the error returned when the local preset already // exists. ErrLocalPresetAlreadyExists = errors.New("local preset already exists") // ErrPresetSummaryAlreadyExists is the error returned when the preset summary already // exists. ErrPresetSummaryAlreadyExists = errors.New("preset summary already exists") // ErrPresetSummaryNotFound is the error returned when the preset summary is not found ErrPresetSummaryNotFound = errors.New("preset summary not found") )
Functions ¶
This section is empty.
Types ¶
type AudioChannel ¶ added in v0.1.3
AudioChannel describes the position and attributes of a single channel of audio inside a container
type AudioDownmix ¶ added in v0.1.3
type AudioDownmix struct {
SrcChannels []AudioChannel
DestChannels []AudioChannel
}
AudioDownmix holds source and output channels for providers to handle downmixing
type AudioPreset ¶
type AudioPreset struct {
Codec string `json:"codec,omitempty" redis-hash:"codec,omitempty"`
Bitrate string `json:"bitrate,omitempty" redis-hash:"bitrate,omitempty"`
}
AudioPreset defines the set of parameters for audio on a given preset
type ChannelLayout ¶ added in v0.1.3
type ChannelLayout string
ChannelLayout describes layout of an audio channel
const ( ChannelLayoutCenter ChannelLayout = "C" ChannelLayoutLeft ChannelLayout = "L" ChannelLayoutRight ChannelLayout = "R" ChannelLayoutLeftSurround ChannelLayout = "Ls" ChannelLayoutRightSurround ChannelLayout = "Rs" ChannelLayoutLeftBack ChannelLayout = "Lb" ChannelLayoutRightBack ChannelLayout = "Rb" ChannelLayoutLeftTotal ChannelLayout = "Lt" ChannelLayoutRightTotal ChannelLayout = "Rt" ChannelLayoutLFE ChannelLayout = "LFE" )
type ComputeClass ¶
type ComputeClass = string
ComputeClass represents a group of resources with similar capability
const ( // ComputeClassTranscodeDefault runs any default transcodes ComputeClassTranscodeDefault ComputeClass = "transcodeDefault" // ComputeClassDolbyVisionTranscode runs Dolby Vision transcodes ComputeClassDolbyVisionTranscode ComputeClass = "doViTranscode" // ComputeClassDolbyVisionPreprocess runs Dolby Vision pre-processing ComputeClassDolbyVisionPreprocess ComputeClass = "doViPreprocess" // ComputeClassDolbyVisionMezzQC runs QC check on the mezzanine ComputeClassDolbyVisionMezzQC ComputeClass = "doViMezzQC" )
type DolbyVisionSettings ¶
type DolbyVisionSettings struct {
Enabled bool `json:"enabled" redis-hash:"enabled"`
}
DolbyVisionSettings defines a set of configurations for setting DolbyVision metadata
type ExecutionEnvironment ¶
type ExecutionEnvironment struct {
Cloud string `redis-hash:"cloud,omitempty" json:"cloud"`
Region string `redis-hash:"region,omitempty" json:"region"`
ComputeTags map[ComputeClass]string `redis-hash:"computetags,omitempty,expand" json:"computeTags,omitempty"`
InputAlias string `redis-hash:"inputalias,omitempty" json:"inputAlias,omitempty"`
OutputAlias string `redis-hash:"outputalias,omitempty" json:"outputAlias,omitempty"`
}
ExecutionEnvironment contains configurations for the environment used while transcoding
type ExecutionFeatures ¶
type ExecutionFeatures map[string]interface{}
ExecutionFeatures is a map whose key is a custom feature name and value is a json string representing the corresponding custom feature definition
type File ¶ added in v0.1.3
type File struct {
Width uint `redis-hash:"width,omitempty" json:"width,omitempty"`
Height uint `redis-hash:"height,omitempty" json:"height,omitempty"`
FrameRate float64 `redis-hash:"framerate,omitempty" json:"frameRate,omitempty"`
FileSize int64 `redis-hash:"filesize,omitempty" json:"fileSize,omitempty"`
ScanType ScanType `redis-hash:"scantype,omitempty" json:"scanType,omitempty"`
}
File represents basic information about the source that may be of aid to providers
swagger:model
type HDR10Settings ¶
type HDR10Settings struct {
Enabled bool `json:"enabled" redis-hash:"enabled"`
MaxCLL uint `json:"maxCLL,omitempty" redis-hash:"maxcll,omitempty"`
MaxFALL uint `json:"maxFALL,omitempty" redis-hash:"maxfll,omitempty"`
MasterDisplay string `json:"masterDisplay,omitempty" redis-hash:"masterdisplay,omitempty"`
}
HDR10Settings defines a set of configurations for defining HDR10 metadata
type Image ¶ added in v0.1.3
type Image struct {
URL string `json:"url" redis-hash:"url"`
}
Image defines the image overlay settings
type Job ¶
type Job struct {
// id of the job. It's automatically generated by the API when creating
// a new Job.
ID string `redis-hash:"jobID" json:"jobId"`
// Name is an optional client-provided name for the job, when supplied, provider code
// is encouraged to set this value as a searchable attribute within the provider
// if this feature is supported
Name string `redis-hash:"name,omitempty" json:"name,omitempty"`
// name of the provider
ProviderName string `redis-hash:"providerName" json:"providerName"`
// id of the job on the provider
ProviderJobID string `redis-hash:"providerJobID" json:"providerJobId"`
// configuration for adaptive streaming jobs
StreamingParams StreamingParams `redis-hash:"streamingparams,expand" json:"streamingParams,omitempty"`
// ExecutionEnv contains configurations for the environment used while transcoding
ExecutionEnv ExecutionEnvironment `redis-hash:"executionenvironment,expand" json:"executionEnv,omitempty"`
// configuration for execution features for the selected provider
ExecutionFeatures ExecutionFeatures `redis-hash:"-" json:"executionFeatures,omitempty"`
// string value of the execution config for auditing jobs after the fact
ExecutionCfgReport string `redis-hash:"execution-cfg,omitempty" json:"executionCfgReport,omitempty"`
// Time of the creation of the job in the API
CreationTime time.Time `redis-hash:"creationTime" json:"creationTime"`
// Source of the job
SourceMedia string `redis-hash:"source" json:"source"`
// SourceInfo is source information
SourceInfo File `redis-hash:"sourceinfo,omitempty" json:"sourceInfo,omitempty"`
// SourceSplice is a set of second ranges to excise from the input and catenate
// together before processing the source. For example, [[0,1],[8,9]], will cut out
// a two-second clip, from the first and last second of a 10s video.
//
// NOTE(as): I don't think "redis-hash" is a great way to interact with redis
// we should probably be storing JSON or GOBs
SourceSplice timecode.Splice
// Base Destination of the job
DestinationBasePath string `redis-hash:"destbasepath,omitempty" json:"destinationBasePath,omitempty"`
// SidecarAssets contain a map of string keys to file locations
SidecarAssets map[SidecarAssetKind]string `redis-hash:"sidecarassets,omitempty,expand" json:"sidecarAssets,omitempty"`
// Output list of the given job
Outputs []TranscodeOutput `redis-hash:"-" json:"outputs"`
// AudioDownmix holds source and output channels for configuring downmixing
AudioDownmix *AudioDownmix `redis-hash:"-" json:"audioDownmix,omitempty"`
// ExplicitKeyframeOffsets define offsets from the beginning of the media to insert keyframes when encoding
ExplicitKeyframeOffsets []float64 `redis-hash:"-" json:"explicitKeyframeOffsets,omitempty"`
// Optional list of string labels
Labels []string `redis-hash:"labels,omitempty" json:"labels,omitempty"`
}
Job represents the job that is persisted in the repository of the Transcoding API.
func (Job) RootFolder ¶ added in v0.1.4
type JobFilter ¶
type JobFilter struct {
// Filter jobs since the given time.
Since time.Time
// Limit the number of jobs in the result. 0 means no limit.
Limit uint
}
JobFilter contains a set of parameters for filtering the list of jobs in JobRepository.
type JobRepository ¶
type JobRepository interface {
CreateJob(*Job) error
DeleteJob(*Job) error
GetJob(id string) (*Job, error)
ListJobs(JobFilter) ([]Job, error)
}
JobRepository is the interface that defines the set of methods for managing Job persistence.
type LocalPreset ¶
type LocalPreset struct {
// name of the local preset
//
// unique: true
// required: true
Name string `redis-hash:"-" json:"name"`
// the preset structure
// required: true
Preset Preset `redis-hash:"preset,expand" json:"preset"`
}
LocalPreset is a struct to persist encoding configurations. Some providers don't have the ability to store presets on it's side so we persist locally.
swagger:model
type LocalPresetRepository ¶
type LocalPresetRepository interface {
CreateLocalPreset(*LocalPreset) error
UpdateLocalPreset(*LocalPreset) error
DeleteLocalPreset(*LocalPreset) error
GetLocalPreset(name string) (*LocalPreset, error)
}
LocalPresetRepository provides an interface that defines the set of methods for managing presets when the provider don't have the ability to store/manage it.
type OutputOptions ¶
type OutputOptions struct {
// extension for the output file, it's usually attached to the
// container (for example, webm for VP, mp4 for MPEG-4 and ts for HLS).
//
// The dot should not be part of the extension, i.e. use "webm" instead
// of ".webm".
//
// required: true
Extension string `redis-hash:"extension" json:"extension"`
}
OutputOptions is the set of options for the output file.
This type includes only configuration parameters that are not defined in providers (like the extension of the output file).
swagger:model
func (*OutputOptions) Validate ¶
func (o *OutputOptions) Validate() error
Validate checks that the OutputOptions object is properly defined.
type Overlays ¶ added in v0.1.3
type Overlays struct {
Images []Image `json:"images,omitempty" redis-hash:"image,expand,omitempty"`
TimecodeBurnin *TimecodeBurnin `json:"timecodeBurnin,omitempty" redis-hash:"timecodeburnin,expand,omitempty"`
}
Overlays defines all the overlay settings for a Video preset
type Preset ¶
type Preset struct {
Name string `json:"name,omitempty" redis-hash:"name"`
Description string `json:"description,omitempty" redis-hash:"description,omitempty"`
SourceContainer string `json:"sourceContainer,omitempty" redis-hash:"sourcecontainer,omitempty"`
Container string `json:"container,omitempty" redis-hash:"container,omitempty"`
RateControl string `json:"rateControl,omitempty" redis-hash:"ratecontrol,omitempty"`
TwoPass bool `json:"twoPass" redis-hash:"twopass"`
Video VideoPreset `json:"video" redis-hash:"video,expand"`
Audio AudioPreset `json:"audio" redis-hash:"audio,expand"`
}
Preset defines the set of parameters of a given preset
type PresetMap ¶
type PresetMap struct {
// name of the presetmap
//
// unique: true
// required: true
Name string `redis-hash:"presetmap_name" json:"name"`
// mapping of provider name to provider's internal preset id.
//
// required: true
ProviderMapping map[string]string `redis-hash:"pmapping,expand" json:"providerMapping"`
// set of options in the output file for this preset.
//
// required: true
OutputOpts OutputOptions `redis-hash:"output,expand" json:"output"`
}
PresetMap represents the preset that is persisted in the repository of the Transcoding API
Each presetmap is just an aggregator of provider presets, where each preset in the API maps to a preset on each provider
swagger:model
type PresetMapRepository ¶
type PresetMapRepository interface {
CreatePresetMap(*PresetMap) error
UpdatePresetMap(*PresetMap) error
DeletePresetMap(*PresetMap) error
GetPresetMap(name string) (*PresetMap, error)
ListPresetMaps() ([]PresetMap, error)
}
PresetMapRepository is the interface that defines the set of methods for managing PresetMap persistence.
type PresetSummary ¶
type PresetSummary struct {
Name string `redis-hash:"-"`
Container string `redis-hash:"container"`
VideoCodec string `redis-hash:"videocodec,omitempty"`
VideoConfigID string `redis-hash:"videoconfigid,omitempty"`
VideoFilters []string `redis-hash:"videoFilters,omitempty"`
AudioCodec string `redis-hash:"audiocodec,omitempty"`
AudioConfigID string `redis-hash:"audioconfigid,omitempty"`
}
PresetSummary holds references to external resources that represent the configurations of audio and video streams and their containers
swagger:model
func (PresetSummary) HasVideo ¶ added in v0.1.3
func (ps PresetSummary) HasVideo() bool
type PresetSummaryRepository ¶
type PresetSummaryRepository interface {
CreatePresetSummary(*PresetSummary) error
DeletePresetSummary(name string) error
GetPresetSummary(name string) (PresetSummary, error)
}
PresetSummaryRepository provides an interface that defines the set of methods for managing preset summaries when storing remote reference state is hard to do externally
type Repository ¶
type Repository interface {
JobRepository
PresetMapRepository
LocalPresetRepository
PresetSummaryRepository
}
Repository represents the repository for persisting types of the API.
type ScanType ¶
type ScanType string
ScanType is a string that represents the scan type of the content.
type SidecarAssetKind ¶
type SidecarAssetKind = string
const SidecarAssetKindDolbyVisionMetadata SidecarAssetKind = "dolbyVisionMetadata"
type StreamingParams ¶
type StreamingParams struct {
// duration of the segment
//
// required: true
SegmentDuration uint `redis-hash:"segmentDuration" json:"segmentDuration"`
// the protocol name (hls or dash)
//
// required: true
Protocol string `redis-hash:"protocol" json:"protocol"`
// the playlist file name
// required: true
PlaylistFileName string `redis-hash:"playlistFileName" json:"playlistFileName,omitempty"`
}
StreamingParams represents the params necessary to create Adaptive Streaming jobs
swagger:model
type TimecodeBurnin ¶ added in v0.1.3
type TimecodeBurnin struct {
Enabled bool `json:"enabled" redis-hash:"enabled"`
FontSize int `json:"fontSize,omitempty" redis-hash:"fontsize,omitempty"`
Position int `json:"position,omitempty" redis-hash:"position,omitempty"`
Prefix string `json:"prefix,omitempty" redis-hash:"prefix,omitempty"`
}
TimecodeBurnin defines the timecode burnin settings
type TranscodeOutput ¶
type TranscodeOutput struct {
// Presetmap for the output
//
// required: true
Preset PresetMap `redis-hash:"presetmap,expand" json:"presetmap"`
// Filename for the output
//
// required: true
FileName string `redis-hash:"filename" json:"filename"`
}
TranscodeOutput represents a transcoding output. It's a combination of the preset and the output file name.
type VideoPreset ¶
type VideoPreset struct {
Profile string `json:"profile,omitempty" redis-hash:"profile,omitempty"`
ProfileLevel string `json:"profileLevel,omitempty" redis-hash:"profilelevel,omitempty"`
Width string `json:"width,omitempty" redis-hash:"width,omitempty"`
Height string `json:"height,omitempty" redis-hash:"height,omitempty"`
Codec string `json:"codec,omitempty" redis-hash:"codec,omitempty"`
Bitrate string `json:"bitrate,omitempty" redis-hash:"bitrate,omitempty"`
GopSize string `json:"gopSize,omitempty" redis-hash:"gopsize,omitempty"`
GopUnit string `json:"gopUnit,omitempty" redis-hash:"gopunit,omitempty"`
GopMode string `json:"gopMode,omitempty" redis-hash:"gopmode,omitempty"`
InterlaceMode string `json:"interlaceMode,omitempty" redis-hash:"interlacemode,omitempty"`
HDR10Settings HDR10Settings `json:"hdr10" redis-hash:"hdr10,expand,omitempty"`
DolbyVisionSettings DolbyVisionSettings `json:"dolbyVision" redis-hash:"dolbyvision,expand,omitempty"`
Overlays *Overlays `json:"overlays,omitempty" redis-hash:"overlays,expand,omitempty"`
// Crop contains offsets for top, bottom, left and right src cropping
Crop video.Crop `json:"crop" redis-hash:"crop,expand,omitempty"`
}
VideoPreset defines the set of parameters for video on a given preset