mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	sample: introduce pa_sample_format_is_{le,be,ne,re}()
This commit is contained in:
		
							parent
							
								
									3533599579
								
							
						
					
					
						commit
						346a708c2c
					
				
					 3 changed files with 55 additions and 0 deletions
				
			
		| 
						 | 
					@ -182,6 +182,8 @@ pa_proplist_to_string_sep;
 | 
				
			||||||
pa_proplist_unset;
 | 
					pa_proplist_unset;
 | 
				
			||||||
pa_proplist_unset_many;
 | 
					pa_proplist_unset_many;
 | 
				
			||||||
pa_proplist_update;
 | 
					pa_proplist_update;
 | 
				
			||||||
 | 
					pa_sample_format_is_be;
 | 
				
			||||||
 | 
					pa_sample_format_is_le;
 | 
				
			||||||
pa_sample_format_to_string;
 | 
					pa_sample_format_to_string;
 | 
				
			||||||
pa_sample_size;
 | 
					pa_sample_size;
 | 
				
			||||||
pa_sample_size_of_format;
 | 
					pa_sample_size_of_format;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -241,3 +241,36 @@ pa_sample_format_t pa_parse_sample_format(const char *format) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return -1;
 | 
					    return -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int pa_sample_format_is_le(pa_sample_format_t f) {
 | 
				
			||||||
 | 
					    pa_assert(f >= PA_SAMPLE_U8);
 | 
				
			||||||
 | 
					    pa_assert(f < PA_SAMPLE_MAX);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (f) {
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S16LE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S24LE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S32LE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S24_32LE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_FLOAT32LE:
 | 
				
			||||||
 | 
					            return 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S16BE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S24BE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S32BE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_S24_32BE:
 | 
				
			||||||
 | 
					        case PA_SAMPLE_FLOAT32BE:
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        default:
 | 
				
			||||||
 | 
					            return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int pa_sample_format_is_be(pa_sample_format_t f) {
 | 
				
			||||||
 | 
					    int r;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((r = pa_sample_format_is_le(f)) < 0)
 | 
				
			||||||
 | 
					        return r;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return !r;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -305,6 +305,26 @@ char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
 | 
				
			||||||
/** Pretty print a byte size value. (i.e. "2.5 MiB") */
 | 
					/** Pretty print a byte size value. (i.e. "2.5 MiB") */
 | 
				
			||||||
char* pa_bytes_snprint(char *s, size_t l, unsigned v);
 | 
					char* pa_bytes_snprint(char *s, size_t l, unsigned v);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Return 1 when the specified format is little endian, return -1
 | 
				
			||||||
 | 
					 * when endianess does not apply to this format. \since 0.9.16 */
 | 
				
			||||||
 | 
					int pa_sample_format_is_le(pa_sample_format_t f) PA_GCC_PURE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Return 1 when the specified format is big endian, return -1 when
 | 
				
			||||||
 | 
					 * endianess does not apply to this format. \since 0.9.16 */
 | 
				
			||||||
 | 
					int pa_sample_format_is_be(pa_sample_format_t f) PA_GCC_PURE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef WORDS_BIGENDIAN
 | 
				
			||||||
 | 
					#define pa_sample_format_is_ne(f) pa_sample_format_is_be(f)
 | 
				
			||||||
 | 
					#define pa_sample_format_is_re(f) pa_sample_format_is_le(f)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/** Return 1 when the specified format is native endian, return -1
 | 
				
			||||||
 | 
					 * when endianess does not apply to this format. \since 0.9.16 */
 | 
				
			||||||
 | 
					#define pa_sample_format_is_ne(f) pa_sample_format_is_le(f)
 | 
				
			||||||
 | 
					/** Return 1 when the specified format is reverse endian, return -1
 | 
				
			||||||
 | 
					 * when endianess does not apply to this format. \since 0.9.16 */
 | 
				
			||||||
 | 
					#define pa_sample_format_is_re(f) pa_sample_format_is_be(f)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PA_C_DECL_END
 | 
					PA_C_DECL_END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue