pw-cat: fix raw read

raw read needs bytes, so use the stride to calculate it from frames.
Move ulaw/alaw to packed formats.
This commit is contained in:
Wim Taymans 2021-08-17 17:56:31 +02:00
parent f7c91491cb
commit 49c1c0386f
4 changed files with 10 additions and 10 deletions

View file

@ -79,6 +79,9 @@ enum spa_audio_format {
SPA_AUDIO_FORMAT_F64_LE,
SPA_AUDIO_FORMAT_F64_BE,
SPA_AUDIO_FORMAT_ULAW,
SPA_AUDIO_FORMAT_ALAW,
/* planar formats */
SPA_AUDIO_FORMAT_START_Planar = 0x200,
SPA_AUDIO_FORMAT_U8P,
@ -93,9 +96,6 @@ enum spa_audio_format {
/* other formats start here */
SPA_AUDIO_FORMAT_START_Other = 0x400,
SPA_AUDIO_FORMAT_ULAW,
SPA_AUDIO_FORMAT_ALAW,
/* Aliases */
/* DSP formats */

View file

@ -73,6 +73,9 @@ static const struct spa_type_info spa_type_audio_format[] = {
{ SPA_AUDIO_FORMAT_F64_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64LE", NULL },
{ SPA_AUDIO_FORMAT_F64_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64BE", NULL },
{ SPA_AUDIO_FORMAT_ULAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ULAW", NULL },
{ SPA_AUDIO_FORMAT_ALAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ALAW", NULL },
{ SPA_AUDIO_FORMAT_U8P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8P", NULL },
{ SPA_AUDIO_FORMAT_S16P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16P", NULL },
{ SPA_AUDIO_FORMAT_S24_32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32P", NULL },
@ -82,9 +85,6 @@ static const struct spa_type_info spa_type_audio_format[] = {
{ SPA_AUDIO_FORMAT_F64P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64P", NULL },
{ SPA_AUDIO_FORMAT_S8P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S8P", NULL },
{ SPA_AUDIO_FORMAT_ULAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ULAW", NULL },
{ SPA_AUDIO_FORMAT_ALAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ALAW", NULL },
#if __BYTE_ORDER == __BIG_ENDIAN
{ SPA_AUDIO_FORMAT_S16_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16OE", NULL },
{ SPA_AUDIO_FORMAT_S16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16", NULL },

View file

@ -215,7 +215,7 @@ void
conv_alaw_to_f32d_c(struct convert *conv, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[],
uint32_t n_samples)
{
const int8_t *s = src[0];
const uint8_t *s = src[0];
float **d = (float **) dst;
uint32_t i, j, n_channels = conv->n_channels;
@ -229,7 +229,7 @@ void
conv_ulaw_to_f32d_c(struct convert *conv, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[],
uint32_t n_samples)
{
const int8_t *s = src[0];
const uint8_t *s = src[0];
float **d = (float **) dst;
uint32_t i, j, n_channels = conv->n_channels;

View file

@ -287,7 +287,7 @@ static int sf_playback_fill_x8(struct data *d, void *dest, unsigned int n_frames
{
sf_count_t rn;
rn = sf_read_raw(d->file, dest, n_frames);
rn = sf_read_raw(d->file, dest, n_frames * d->stride);
return (int)rn;
}
@ -371,7 +371,7 @@ static int sf_record_fill_x8(struct data *d, void *src, unsigned int n_frames)
{
sf_count_t rn;
rn = sf_write_raw(d->file, src, n_frames);
rn = sf_write_raw(d->file, src, n_frames * d->stride);
return (int)rn;
}