mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	
		
			
	
	
		
			124 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * BlueALSA - bluez-a2dp.c
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2016-2017 Arkadiusz Bokowy
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This file is a part of bluez-alsa.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This project is licensed under the terms of the MIT license.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "a2dp-codecs.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const a2dp_sbc_t bluez_a2dp_sbc = {
							 | 
						||
| 
								 | 
							
									.frequency =
							 | 
						||
| 
								 | 
							
										SBC_SAMPLING_FREQ_16000 |
							 | 
						||
| 
								 | 
							
										SBC_SAMPLING_FREQ_32000 |
							 | 
						||
| 
								 | 
							
										SBC_SAMPLING_FREQ_44100 |
							 | 
						||
| 
								 | 
							
										SBC_SAMPLING_FREQ_48000,
							 | 
						||
| 
								 | 
							
									.channel_mode =
							 | 
						||
| 
								 | 
							
										SBC_CHANNEL_MODE_MONO |
							 | 
						||
| 
								 | 
							
										SBC_CHANNEL_MODE_DUAL_CHANNEL |
							 | 
						||
| 
								 | 
							
										SBC_CHANNEL_MODE_STEREO |
							 | 
						||
| 
								 | 
							
										SBC_CHANNEL_MODE_JOINT_STEREO,
							 | 
						||
| 
								 | 
							
									.block_length =
							 | 
						||
| 
								 | 
							
										SBC_BLOCK_LENGTH_4 |
							 | 
						||
| 
								 | 
							
										SBC_BLOCK_LENGTH_8 |
							 | 
						||
| 
								 | 
							
										SBC_BLOCK_LENGTH_12 |
							 | 
						||
| 
								 | 
							
										SBC_BLOCK_LENGTH_16,
							 | 
						||
| 
								 | 
							
									.subbands =
							 | 
						||
| 
								 | 
							
										SBC_SUBBANDS_4 |
							 | 
						||
| 
								 | 
							
										SBC_SUBBANDS_8,
							 | 
						||
| 
								 | 
							
									.allocation_method =
							 | 
						||
| 
								 | 
							
										SBC_ALLOCATION_SNR |
							 | 
						||
| 
								 | 
							
										SBC_ALLOCATION_LOUDNESS,
							 | 
						||
| 
								 | 
							
									.min_bitpool = MIN_BITPOOL,
							 | 
						||
| 
								 | 
							
									.max_bitpool = MAX_BITPOOL,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if ENABLE_MP3
							 | 
						||
| 
								 | 
							
								const a2dp_mpeg_t bluez_a2dp_mpeg = {
							 | 
						||
| 
								 | 
							
									.layer =
							 | 
						||
| 
								 | 
							
										MPEG_LAYER_MP1 |
							 | 
						||
| 
								 | 
							
										MPEG_LAYER_MP2 |
							 | 
						||
| 
								 | 
							
										MPEG_LAYER_MP3,
							 | 
						||
| 
								 | 
							
									.crc = 1,
							 | 
						||
| 
								 | 
							
									.channel_mode =
							 | 
						||
| 
								 | 
							
										MPEG_CHANNEL_MODE_MONO |
							 | 
						||
| 
								 | 
							
										MPEG_CHANNEL_MODE_DUAL_CHANNEL |
							 | 
						||
| 
								 | 
							
										MPEG_CHANNEL_MODE_STEREO |
							 | 
						||
| 
								 | 
							
										MPEG_CHANNEL_MODE_JOINT_STEREO,
							 | 
						||
| 
								 | 
							
									.mpf = 1,
							 | 
						||
| 
								 | 
							
									.frequency =
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_16000 |
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_22050 |
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_24000 |
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_32000 |
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_44100 |
							 | 
						||
| 
								 | 
							
										MPEG_SAMPLING_FREQ_48000,
							 | 
						||
| 
								 | 
							
									.bitrate =
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_VBR |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_320000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_256000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_224000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_192000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_160000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_128000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_112000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_96000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_80000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_64000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_56000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_48000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_40000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_32000 |
							 | 
						||
| 
								 | 
							
										MPEG_BIT_RATE_FREE,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if ENABLE_AAC
							 | 
						||
| 
								 | 
							
								const a2dp_aac_t bluez_a2dp_aac = {
							 | 
						||
| 
								 | 
							
									.object_type =
							 | 
						||
| 
								 | 
							
										/* NOTE: AAC Long Term Prediction and AAC Scalable are
							 | 
						||
| 
								 | 
							
										 *       not supported by the FDK-AAC library. */
							 | 
						||
| 
								 | 
							
										AAC_OBJECT_TYPE_MPEG2_AAC_LC |
							 | 
						||
| 
								 | 
							
										AAC_OBJECT_TYPE_MPEG4_AAC_LC,
							 | 
						||
| 
								 | 
							
									AAC_INIT_FREQUENCY(
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_8000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_11025 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_12000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_16000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_22050 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_24000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_32000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_44100 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_48000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_64000 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_88200 |
							 | 
						||
| 
								 | 
							
										AAC_SAMPLING_FREQ_96000)
							 | 
						||
| 
								 | 
							
									.channels =
							 | 
						||
| 
								 | 
							
										AAC_CHANNELS_1 |
							 | 
						||
| 
								 | 
							
										AAC_CHANNELS_2,
							 | 
						||
| 
								 | 
							
									.vbr = 1,
							 | 
						||
| 
								 | 
							
									AAC_INIT_BITRATE(0xFFFF)
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if ENABLE_APTX
							 | 
						||
| 
								 | 
							
								const a2dp_aptx_t bluez_a2dp_aptx = {
							 | 
						||
| 
								 | 
							
									.info.vendor_id = APTX_VENDOR_ID,
							 | 
						||
| 
								 | 
							
									.info.codec_id = APTX_CODEC_ID,
							 | 
						||
| 
								 | 
							
									.channel_mode =
							 | 
						||
| 
								 | 
							
										/* NOTE: Used apt-X library does not support
							 | 
						||
| 
								 | 
							
										 *       single channel (mono) mode. */
							 | 
						||
| 
								 | 
							
										APTX_CHANNEL_MODE_DUAL_CHANNEL |
							 | 
						||
| 
								 | 
							
										APTX_CHANNEL_MODE_STEREO |
							 | 
						||
| 
								 | 
							
										APTX_CHANNEL_MODE_JOINT_STEREO,
							 | 
						||
| 
								 | 
							
									.frequency =
							 | 
						||
| 
								 | 
							
										APTX_SAMPLING_FREQ_16000 |
							 | 
						||
| 
								 | 
							
										APTX_SAMPLING_FREQ_32000 |
							 | 
						||
| 
								 | 
							
										APTX_SAMPLING_FREQ_44100 |
							 | 
						||
| 
								 | 
							
										APTX_SAMPLING_FREQ_48000,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 |