Helper Functions
Overview
See the PCM (digital audio) interface page for more details. Moreā¦
// global functions int snd_pcm_format_signed(snd_pcm_format_t format); int snd_pcm_format_unsigned(snd_pcm_format_t format); int snd_pcm_format_linear(snd_pcm_format_t format); int snd_pcm_format_float(snd_pcm_format_t format); int snd_pcm_format_little_endian(snd_pcm_format_t format); int snd_pcm_format_big_endian(snd_pcm_format_t format); int snd_pcm_format_cpu_endian(snd_pcm_format_t format); int snd_pcm_format_width(snd_pcm_format_t format); int snd_pcm_format_physical_width(snd_pcm_format_t format); snd_pcm_format_t snd_pcm_build_linear_format( int width, int pwidth, int unsignd, int big_endian ); ssize_t snd_pcm_format_size( snd_pcm_format_t format, size_t samples ); u_int8_t snd_pcm_format_silence(snd_pcm_format_t format); u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format); u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format); u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format); int snd_pcm_format_set_silence( snd_pcm_format_t format, void* buf, unsigned int samples ); snd_pcm_sframes_t snd_pcm_bytes_to_frames( snd_pcm_t* pcm, ssize_t bytes ); ssize_t snd_pcm_frames_to_bytes( snd_pcm_t* pcm, snd_pcm_sframes_t frames ); long snd_pcm_bytes_to_samples( snd_pcm_t* pcm, ssize_t bytes ); ssize_t snd_pcm_samples_to_bytes( snd_pcm_t* pcm, long samples ); int snd_pcm_area_silence( const snd_pcm_channel_area_t* dst_channel, snd_pcm_uframes_t dst_offset, unsigned int samples, snd_pcm_format_t format ); int snd_pcm_areas_silence( const snd_pcm_channel_area_t* dst_channels, snd_pcm_uframes_t dst_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format ); int snd_pcm_area_copy( const snd_pcm_channel_area_t* dst_channel, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t* src_channel, snd_pcm_uframes_t src_offset, unsigned int samples, snd_pcm_format_t format ); int snd_pcm_areas_copy( const snd_pcm_channel_area_t* dst_channels, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t* src_channels, snd_pcm_uframes_t src_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format );
Detailed Documentation
See the PCM (digital audio) interface page for more details.
Global Functions
int snd_pcm_format_signed(snd_pcm_format_t format)
Return sign info for a PCM sample linear format.
Parameters:
format |
Format |
Returns:
0 unsigned, 1 signed, a negative error code if format is not linear
int snd_pcm_format_unsigned(snd_pcm_format_t format)
Return sign info for a PCM sample linear format.
Parameters:
format |
Format |
Returns:
0 signed, 1 unsigned, a negative error code if format is not linear
int snd_pcm_format_linear(snd_pcm_format_t format)
Return linear info for a PCM sample format.
Parameters:
format |
Format |
Returns:
0 non linear, 1 linear
int snd_pcm_format_float(snd_pcm_format_t format)
Return float info for a PCM sample format.
Parameters:
format |
Format |
Returns:
0 non float, 1 float
int snd_pcm_format_little_endian(snd_pcm_format_t format)
Return endian info for a PCM sample format.
Parameters:
format |
Format |
Returns:
0 big endian, 1 little endian, a negative error code if endian independent
int snd_pcm_format_big_endian(snd_pcm_format_t format)
Return endian info for a PCM sample format.
Parameters:
format |
Format |
Returns:
0 little endian, 1 big endian, a negative error code if endian independent
int snd_pcm_format_cpu_endian(snd_pcm_format_t format)
Return endian info for a PCM sample format.
Parameters:
format |
Format |
Returns:
0 swapped, 1 CPU endian, a negative error code if endian independent
int snd_pcm_format_width(snd_pcm_format_t format)
Return nominal bits per a PCM sample.
Parameters:
format |
Sample format |
Returns:
bits per sample, a negative error code if not applicable
int snd_pcm_format_physical_width(snd_pcm_format_t format)
Return bits needed to store a PCM sample.
Parameters:
format |
Sample format |
Returns:
bits per sample, a negative error code if not applicable
snd_pcm_format_t snd_pcm_build_linear_format( int width, int pwidth, int unsignd, int big_endian )
Compose a PCM sample linear format.
Parameters:
width |
Nominal bits per sample |
pwidth |
Physical bit width of the format |
unsignd |
Sign: 0 signed, 1 unsigned |
big_endian |
Endian: 0 little endian, 1 big endian |
Returns:
The matching format type, or SND_PCM_FORMAT_UNKNOWN if no match
ssize_t snd_pcm_format_size( snd_pcm_format_t format, size_t samples )
Return bytes needed to store a quantity of PCM sample.
Parameters:
format |
Sample format |
samples |
Samples count |
Returns:
bytes needed, a negative error code if not integer or unknown
u_int8_t snd_pcm_format_silence(snd_pcm_format_t format)
Return 8 bit expressing silence for a PCM sample format.
Parameters:
format |
Sample format |
Returns:
silence 8 bit word
u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format)
Return 16 bit expressing silence for a PCM sample format.
Parameters:
format |
Sample format |
Returns:
silence 16 bit word
u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format)
Return 32 bit expressing silence for a PCM sample format.
Parameters:
format |
Sample format |
Returns:
silence 32 bit word
u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
Return 64 bit expressing silence for a PCM sample format.
Parameters:
format |
Sample format |
Returns:
silence 64 bit word
int snd_pcm_format_set_silence( snd_pcm_format_t format, void* buf, unsigned int samples )
Silence a PCM samples buffer.
Parameters:
format |
Sample format |
data |
Buffer |
samples |
Samples count |
Returns:
0 if successful or a negative error code
snd_pcm_sframes_t snd_pcm_bytes_to_frames( snd_pcm_t* pcm, ssize_t bytes )
Convert bytes in frames for a PCM.
Parameters:
pcm |
PCM handle |
bytes |
quantity in bytes |
Returns:
quantity expressed in frames
ssize_t snd_pcm_frames_to_bytes( snd_pcm_t* pcm, snd_pcm_sframes_t frames )
Convert frames in bytes for a PCM.
Parameters:
pcm |
PCM handle |
frames |
quantity in frames |
Returns:
quantity expressed in bytes
long snd_pcm_bytes_to_samples( snd_pcm_t* pcm, ssize_t bytes )
Convert bytes in samples for a PCM.
Parameters:
pcm |
PCM handle |
bytes |
quantity in bytes |
Returns:
quantity expressed in samples
ssize_t snd_pcm_samples_to_bytes( snd_pcm_t* pcm, long samples )
Convert samples in bytes for a PCM.
Parameters:
pcm |
PCM handle |
samples |
quantity in samples |
Returns:
quantity expressed in bytes
int snd_pcm_area_silence( const snd_pcm_channel_area_t* dst_channel, snd_pcm_uframes_t dst_offset, unsigned int samples, snd_pcm_format_t format )
Silence an area.
Parameters:
dst_area |
area specification |
dst_offset |
offset in frames inside area |
samples |
samples to silence |
format |
PCM sample format |
Returns:
0 on success otherwise a negative error code
int snd_pcm_areas_silence( const snd_pcm_channel_area_t* dst_channels, snd_pcm_uframes_t dst_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format )
Silence one or more areas.
Parameters:
dst_areas |
areas specification (one for each channel) |
dst_offset |
offset in frames inside area |
channels |
channels count |
frames |
frames to silence |
format |
PCM sample format |
Returns:
0 on success otherwise a negative error code
int snd_pcm_area_copy( const snd_pcm_channel_area_t* dst_channel, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t* src_channel, snd_pcm_uframes_t src_offset, unsigned int samples, snd_pcm_format_t format )
Copy an area.
Parameters:
dst_area |
destination area specification |
dst_offset |
offset in frames inside destination area |
src_area |
source area specification |
src_offset |
offset in frames inside source area |
samples |
samples to copy |
format |
PCM sample format |
Returns:
0 on success otherwise a negative error code
int snd_pcm_areas_copy( const snd_pcm_channel_area_t* dst_channels, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t* src_channels, snd_pcm_uframes_t src_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format )
Copy one or more areas.
Parameters:
dst_areas |
destination areas specification (one for each channel) |
dst_offset |
offset in frames inside destination area |
src_areas |
source areas specification (one for each channel) |
src_offset |
offset in frames inside source area |
channels |
channels count |
frames |
frames to copy |
format |
PCM sample format |
Returns:
0 on success otherwise a negative error code