package lametranscoder import ( "github.com/viert/lame" "git.icedream.tech/icedream/uplink/app" "git.icedream.tech/icedream/uplink/app/transcoders" "git.icedream.tech/icedream/uplink/app/transcoders/options" ) var transcoderOptions = map[string]options.TranscoderOptionType{ "bitrate": &options.Int64TranscoderOption{DefaultValue: 128, Min: 32, Max: 320}, "quality": &options.Int64TranscoderOption{DefaultValue: 1, Min: 0, Max: 9}, } type Transcoder struct{} func (transcoder *Transcoder) Options() map[string]options.TranscoderOptionType { return transcoderOptions } func (transcoder *Transcoder) New(options map[string]interface{}) transcoders.TranscoderInstance { return nil } type TranscoderInstance struct { options map[string]interface{} *lame.LameWriter } func (instance *TranscoderInstance) Init(out *app.Stream, samplerate int, channels int) { instance.LameWriter = lame.NewWriter(out) instance.LameWriter.Encoder.SetBitrate(int(instance.options["bitrate"].(int64))) instance.LameWriter.Encoder.SetQuality(int(instance.options["quality"].(int64))) instance.LameWriter.Encoder.SetInSamplerate(samplerate) instance.LameWriter.Encoder.SetNumChannels(channels) instance.LameWriter.Encoder.InitParams() }