mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	ALSA: pcm: Define G723 3-bit and 5-bit formats
This defines the 24bps and 40bps (8khz sample rate) G.723 codec formats. They are going to be used once I submit the driver for an mpeg4/g723 compression card. I've updated the signed value to -1 as per Takashi's comments since these are non-linear formats. Signed-off-by: Ben Collins <bcollins@bluecherry.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
							parent
							
								
									67a3e12b05
								
							
						
					
					
						commit
						15c0cee6c8
					
				
					 3 changed files with 25 additions and 1 deletions
				
			
		|  | @ -212,7 +212,11 @@ typedef int __bitwise snd_pcm_format_t; | |||
| #define	SNDRV_PCM_FORMAT_S18_3BE	((__force snd_pcm_format_t) 41)	/* in three bytes */ | ||||
| #define	SNDRV_PCM_FORMAT_U18_3LE	((__force snd_pcm_format_t) 42)	/* in three bytes */ | ||||
| #define	SNDRV_PCM_FORMAT_U18_3BE	((__force snd_pcm_format_t) 43)	/* in three bytes */ | ||||
| #define	SNDRV_PCM_FORMAT_LAST		SNDRV_PCM_FORMAT_U18_3BE | ||||
| #define	SNDRV_PCM_FORMAT_G723_24	((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */ | ||||
| #define	SNDRV_PCM_FORMAT_G723_24_1B	((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */ | ||||
| #define	SNDRV_PCM_FORMAT_G723_40	((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */ | ||||
| #define	SNDRV_PCM_FORMAT_G723_40_1B	((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */ | ||||
| #define	SNDRV_PCM_FORMAT_LAST		SNDRV_PCM_FORMAT_G723_40_1B | ||||
| 
 | ||||
| #ifdef SNDRV_LITTLE_ENDIAN | ||||
| #define	SNDRV_PCM_FORMAT_S16		SNDRV_PCM_FORMAT_S16_LE | ||||
|  |  | |||
|  | @ -174,6 +174,10 @@ struct snd_pcm_ops { | |||
| #define SNDRV_PCM_FMTBIT_U18_3LE	(1ULL << SNDRV_PCM_FORMAT_U18_3LE) | ||||
| #define SNDRV_PCM_FMTBIT_S18_3BE	(1ULL << SNDRV_PCM_FORMAT_S18_3BE) | ||||
| #define SNDRV_PCM_FMTBIT_U18_3BE	(1ULL << SNDRV_PCM_FORMAT_U18_3BE) | ||||
| #define SNDRV_PCM_FMTBIT_G723_24	(1ULL << SNDRV_PCM_FORMAT_G723_24) | ||||
| #define SNDRV_PCM_FMTBIT_G723_24_1B	(1ULL << SNDRV_PCM_FORMAT_G723_24_1B) | ||||
| #define SNDRV_PCM_FMTBIT_G723_40	(1ULL << SNDRV_PCM_FORMAT_G723_40) | ||||
| #define SNDRV_PCM_FMTBIT_G723_40_1B	(1ULL << SNDRV_PCM_FORMAT_G723_40_1B) | ||||
| 
 | ||||
| #ifdef SNDRV_LITTLE_ENDIAN | ||||
| #define SNDRV_PCM_FMTBIT_S16		SNDRV_PCM_FMTBIT_S16_LE | ||||
|  |  | |||
|  | @ -128,6 +128,14 @@ static struct pcm_format_data pcm_formats[SNDRV_PCM_FORMAT_LAST+1] = { | |||
| 		.width = 4, .phys = 4, .le = -1, .signd = -1, | ||||
| 		.silence = {}, | ||||
| 	}, | ||||
| 	[SNDRV_PCM_FORMAT_G723_24] = { | ||||
| 		.width = 3, .phys = 3, .le = -1, .signd = -1, | ||||
| 		.silence = {}, | ||||
| 	}, | ||||
| 	[SNDRV_PCM_FORMAT_G723_40] = { | ||||
| 		.width = 5, .phys = 5, .le = -1, .signd = -1, | ||||
| 		.silence = {}, | ||||
| 	}, | ||||
| 	/* FIXME: the following three formats are not defined properly yet */ | ||||
| 	[SNDRV_PCM_FORMAT_MPEG] = { | ||||
| 		.le = -1, .signd = -1, | ||||
|  | @ -186,6 +194,14 @@ static struct pcm_format_data pcm_formats[SNDRV_PCM_FORMAT_LAST+1] = { | |||
| 		.width = 18, .phys = 24, .le = 0, .signd = 0, | ||||
| 		.silence = { 0x02, 0x00, 0x00 }, | ||||
| 	}, | ||||
| 	[SNDRV_PCM_FORMAT_G723_24_1B] = { | ||||
| 		.width = 3, .phys = 8, .le = -1, .signd = -1, | ||||
| 		.silence = {}, | ||||
| 	}, | ||||
| 	[SNDRV_PCM_FORMAT_G723_40_1B] = { | ||||
| 		.width = 5, .phys = 8, .le = -1, .signd = -1, | ||||
| 		.silence = {}, | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Ben Collins
						Ben Collins