mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	audioconvert: support alaw/ulaw conversion
This commit is contained in:
		
							parent
							
								
									df9f79d869
								
							
						
					
					
						commit
						e9679afb12
					
				
					 3 changed files with 18 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -398,7 +398,7 @@ static int port_enum_formats(void *object,
 | 
			
		|||
			    info.info.raw.format == SPA_AUDIO_FORMAT_F32P ||
 | 
			
		||||
			    info.info.raw.format == SPA_AUDIO_FORMAT_F32) {
 | 
			
		||||
				spa_pod_builder_add(builder,
 | 
			
		||||
					SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(20,
 | 
			
		||||
					SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(22,
 | 
			
		||||
								info.info.raw.format,
 | 
			
		||||
								SPA_AUDIO_FORMAT_F32P,
 | 
			
		||||
								SPA_AUDIO_FORMAT_F32,
 | 
			
		||||
| 
						 | 
				
			
			@ -418,7 +418,9 @@ static int port_enum_formats(void *object,
 | 
			
		|||
								SPA_AUDIO_FORMAT_S8P,
 | 
			
		||||
								SPA_AUDIO_FORMAT_S8,
 | 
			
		||||
								SPA_AUDIO_FORMAT_U8P,
 | 
			
		||||
								SPA_AUDIO_FORMAT_U8),
 | 
			
		||||
								SPA_AUDIO_FORMAT_U8,
 | 
			
		||||
								SPA_AUDIO_FORMAT_ULAW,
 | 
			
		||||
								SPA_AUDIO_FORMAT_ALAW),
 | 
			
		||||
					0);
 | 
			
		||||
			} else {
 | 
			
		||||
				spa_pod_builder_add(builder,
 | 
			
		||||
| 
						 | 
				
			
			@ -601,6 +603,8 @@ static int calc_width(struct spa_audio_info *info)
 | 
			
		|||
	case SPA_AUDIO_FORMAT_U8:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ALAW:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ULAW:
 | 
			
		||||
		return 1;
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -691,7 +691,7 @@ static int port_enum_formats(void *object,
 | 
			
		|||
				SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
 | 
			
		||||
				SPA_FORMAT_mediaType,      SPA_POD_Id(SPA_MEDIA_TYPE_audio),
 | 
			
		||||
				SPA_FORMAT_mediaSubtype,   SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
 | 
			
		||||
				SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(20,
 | 
			
		||||
				SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(22,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32,
 | 
			
		||||
| 
						 | 
				
			
			@ -710,8 +710,10 @@ static int port_enum_formats(void *object,
 | 
			
		|||
							SPA_AUDIO_FORMAT_S16_OE,
 | 
			
		||||
							SPA_AUDIO_FORMAT_S8P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_S8,
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8,
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8P),
 | 
			
		||||
							SPA_AUDIO_FORMAT_ULAW,
 | 
			
		||||
							SPA_AUDIO_FORMAT_ALAW),
 | 
			
		||||
				SPA_FORMAT_AUDIO_rate,     SPA_POD_CHOICE_RANGE_Int(
 | 
			
		||||
					rate, 1, INT32_MAX),
 | 
			
		||||
				SPA_FORMAT_AUDIO_channels, SPA_POD_CHOICE_RANGE_Int(
 | 
			
		||||
| 
						 | 
				
			
			@ -912,6 +914,8 @@ static int calc_width(struct spa_audio_info *info)
 | 
			
		|||
	case SPA_AUDIO_FORMAT_U8P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ULAW:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ALAW:
 | 
			
		||||
		return 1;
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -445,7 +445,7 @@ static int port_enum_formats(void *object,
 | 
			
		|||
				SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
 | 
			
		||||
				SPA_FORMAT_mediaType,      SPA_POD_Id(SPA_MEDIA_TYPE_audio),
 | 
			
		||||
				SPA_FORMAT_mediaSubtype,   SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
 | 
			
		||||
				SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(20,
 | 
			
		||||
				SPA_FORMAT_AUDIO_format,   SPA_POD_CHOICE_ENUM_Id(22,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_F32,
 | 
			
		||||
| 
						 | 
				
			
			@ -465,7 +465,9 @@ static int port_enum_formats(void *object,
 | 
			
		|||
							SPA_AUDIO_FORMAT_S8P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_S8,
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8P,
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8),
 | 
			
		||||
							SPA_AUDIO_FORMAT_U8,
 | 
			
		||||
							SPA_AUDIO_FORMAT_ULAW,
 | 
			
		||||
							SPA_AUDIO_FORMAT_ALAW),
 | 
			
		||||
				SPA_FORMAT_AUDIO_rate,     SPA_POD_CHOICE_RANGE_Int(
 | 
			
		||||
						rate, 1, INT32_MAX),
 | 
			
		||||
				SPA_FORMAT_AUDIO_channels, SPA_POD_CHOICE_RANGE_Int(
 | 
			
		||||
| 
						 | 
				
			
			@ -667,6 +669,8 @@ static int calc_width(struct spa_audio_info *info)
 | 
			
		|||
	case SPA_AUDIO_FORMAT_U8P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S8P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ULAW:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_ALAW:
 | 
			
		||||
		return 1;
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16P:
 | 
			
		||||
	case SPA_AUDIO_FORMAT_S16:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue