Check sample signedness when setting up format conversions.

Fixes confusion between s16 and u16 found in aucat and analysed by
James Cook <falsifian at falsifian.org>. Thanks.
This commit is contained in:
Alexandre Ratchov 2020-12-10 22:05:56 +01:00
parent d1c4d40cb9
commit 40cdc42e22
2 changed files with 6 additions and 2 deletions

View File

@ -262,7 +262,9 @@ aparams_log(struct aparams *par)
int
aparams_native(struct aparams *par)
{
return par->bps == sizeof(adata_t) && par->bits == ADATA_BITS &&
return par->sig &&
par->bps == sizeof(adata_t) &&
par->bits == ADATA_BITS &&
(par->bps == 1 || par->le == ADATA_LE) &&
(par->bits == par->bps * 8 || !par->msb);
}

View File

@ -192,7 +192,9 @@ aparams_log(struct aparams *par)
int
aparams_native(struct aparams *par)
{
return par->bps == sizeof(adata_t) && par->bits == ADATA_BITS &&
return par->sig &&
par->bps == sizeof(adata_t) &&
par->bits == ADATA_BITS &&
(par->bps == 1 || par->le == ADATA_LE) &&
(par->bits == par->bps * 8 || !par->msb);
}