mirror of
				https://github.com/pion/mediadevices.git
				synced 2025-10-31 11:56:28 +08:00 
			
		
		
		
	 abdd96e6b2
			
		
	
	abdd96e6b2
	
	
	
		
			
			Allowing users to implement RTPCodec will give users freedom to have a custom encoder with custom RTP payload.
		
			
				
	
	
		
			31 lines
		
	
	
		
			862 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			862 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package opus
 | |
| 
 | |
| import (
 | |
| 	"github.com/pion/mediadevices/pkg/codec"
 | |
| 	"github.com/pion/mediadevices/pkg/io/audio"
 | |
| 	"github.com/pion/mediadevices/pkg/prop"
 | |
| 	"github.com/pion/mediadevices/pkg/wave/mixer"
 | |
| )
 | |
| 
 | |
| // Params stores opus specific encoding parameters.
 | |
| type Params struct {
 | |
| 	codec.BaseParams
 | |
| 	// ChannelMixer is a mixer to be used if number of given and expected channels differ.
 | |
| 	ChannelMixer mixer.ChannelMixer
 | |
| }
 | |
| 
 | |
| // NewParams returns default opus codec specific parameters.
 | |
| func NewParams() (Params, error) {
 | |
| 	return Params{}, nil
 | |
| }
 | |
| 
 | |
| // RTPCodec represents the codec metadata
 | |
| func (p *Params) RTPCodec() *codec.RTPCodec {
 | |
| 	return codec.NewRTPOpusCodec(48000)
 | |
| }
 | |
| 
 | |
| // BuildAudioEncoder builds opus encoder with given params
 | |
| func (p *Params) BuildAudioEncoder(r audio.Reader, property prop.Media) (codec.ReadCloser, error) {
 | |
| 	return newEncoder(r, property, *p)
 | |
| }
 |