Documentation
¶
Index ¶
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") )
Functions ¶
This section is empty.
Types ¶
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 Job ¶
type Job struct {
// id of the job. It's automatically generated by the API when creating
// a new Job.
//
// unique: true
ID string `redis-hash:"jobID" json:"jobId"`
// name of the provider
//
// required: true
ProviderName string `redis-hash:"providerName" json:"providerName"`
// id of the job on the provider
//
// required: true
ProviderJobID string `redis-hash:"providerJobID" json:"providerJobId"`
// configuration for adaptive streaming jobs
// Defaults to false.
//
// required: false
StreamingParams StreamingParams `redis-hash:"streamingparams,expand" json:"streamingParams,omitempty"`
// Time of the creation of the job in the API
//
// required: true
CreationTime time.Time `redis-hash:"creationTime" json:"creationTime"`
// Source of the job
//
// required: true
SourceMedia string `redis-hash:"source" json:"source"`
// Output list of the given job
//
// required: true
Outputs []TranscodeOutput `redis-hash:"-" json:"outputs"`
}
Job represents the job that is persisted in the repository of the Transcoding API.
swagger:model
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 Preset ¶
type Preset struct {
Name string `json:"name,omitempty" redis-hash:"name"`
Description string `json:"description,omitempty" redis-hash:"description,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 Repository ¶
type Repository interface {
JobRepository
PresetMapRepository
LocalPresetRepository
}
Repository represents the repository for persisting types of the API.
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 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"`
GopMode string `json:"gopMode,omitempty" redis-hash:"gopmode,omitempty"`
InterlaceMode string `json:"interlaceMode,omitempty" redis-hash:"interlacemode,omitempty"`
BFrames string `json:"bframes,omitempty" redis-hash:"bframes,omitempty"`
}
VideoPreset defines the set of parameters for video on a given preset