37 lines
		
	
	
		
			901 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			901 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright © Go Opus Authors (see AUTHORS file)
 | |
| //
 | |
| // License for use of this code is detailed in the LICENSE file
 | |
| 
 | |
| package opus
 | |
| 
 | |
| /*
 | |
| // Link opus using pkg-config.
 | |
| #cgo pkg-config: opus
 | |
| #include <opus.h>
 | |
| */
 | |
| import "C"
 | |
| 
 | |
| type Application int
 | |
| 
 | |
| const (
 | |
| 	// Optimize encoding for VoIP
 | |
| 	AppVoIP = Application(C.OPUS_APPLICATION_VOIP)
 | |
| 	// Optimize encoding for non-voice signals like music
 | |
| 	AppAudio = Application(C.OPUS_APPLICATION_AUDIO)
 | |
| 	// Optimize encoding for low latency applications
 | |
| 	AppRestrictedLowdelay = Application(C.OPUS_APPLICATION_RESTRICTED_LOWDELAY)
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	xMAX_BITRATE       = 48000
 | |
| 	xMAX_FRAME_SIZE_MS = 60
 | |
| 	xMAX_FRAME_SIZE    = xMAX_BITRATE * xMAX_FRAME_SIZE_MS / 1000
 | |
| 	// Maximum size of an encoded frame. I actually have no idea, but this
 | |
| 	// looks like it's big enough.
 | |
| 	maxEncodedFrameSize = 10000
 | |
| )
 | |
| 
 | |
| func Version() string {
 | |
| 	return C.GoString(C.opus_get_version_string())
 | |
| }
 |