mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-12-16 08:56:42 -05:00
Fixed silence patterns
This commit is contained in:
parent
63386fb14a
commit
8ab37ed29c
1 changed files with 55 additions and 16 deletions
|
|
@ -239,46 +239,85 @@ u_int64_t snd_pcm_format_silence_64(int format)
|
||||||
return 0;
|
return 0;
|
||||||
case SND_PCM_SFMT_U8:
|
case SND_PCM_SFMT_U8:
|
||||||
return 0x8080808080808080ULL;
|
return 0x8080808080808080ULL;
|
||||||
|
#ifdef SND_LITTLE_ENDIAN
|
||||||
case SND_PCM_SFMT_U16_LE:
|
case SND_PCM_SFMT_U16_LE:
|
||||||
case SND_PCM_SFMT_U24_LE:
|
|
||||||
case SND_PCM_SFMT_U32_LE:
|
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
|
||||||
return 0x8000800080008000ULL;
|
return 0x8000800080008000ULL;
|
||||||
#else
|
case SND_PCM_SFMT_U24_LE:
|
||||||
return 0x0080008000800080ULL;
|
return 0x0080000000800000ULL;
|
||||||
#endif
|
case SND_PCM_SFMT_U32_LE:
|
||||||
|
return 0x8000000080000000ULL;
|
||||||
case SND_PCM_SFMT_U16_BE:
|
case SND_PCM_SFMT_U16_BE:
|
||||||
|
return 0x0080008000800080ULL;
|
||||||
case SND_PCM_SFMT_U24_BE:
|
case SND_PCM_SFMT_U24_BE:
|
||||||
|
return 0x0000800000008000ULL;
|
||||||
case SND_PCM_SFMT_U32_BE:
|
case SND_PCM_SFMT_U32_BE:
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
|
||||||
return 0x0000008000000080ULL;
|
return 0x0000008000000080ULL;
|
||||||
#else
|
#else
|
||||||
|
case SND_PCM_SFMT_U16_LE:
|
||||||
|
return 0x0080008000800080ULL;
|
||||||
|
case SND_PCM_SFMT_U24_LE:
|
||||||
|
return 0x0000800000008000ULL;
|
||||||
|
case SND_PCM_SFMT_U32_LE:
|
||||||
|
return 0x0000008000000080ULL;
|
||||||
|
case SND_PCM_SFMT_U16_BE:
|
||||||
|
return 0x8000800080008000ULL;
|
||||||
|
case SND_PCM_SFMT_U24_BE:
|
||||||
|
return 0x0080000000800000ULL;
|
||||||
|
case SND_PCM_SFMT_U32_BE:
|
||||||
return 0x8000000080000000ULL;
|
return 0x8000000080000000ULL;
|
||||||
#endif
|
#endif
|
||||||
case SND_PCM_SFMT_FLOAT_LE:
|
case SND_PCM_SFMT_FLOAT_LE:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
float f;
|
||||||
|
u_int32_t i;
|
||||||
|
} u;
|
||||||
|
u.f = 0.0;
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
#ifdef SND_LITTLE_ENDIAN
|
||||||
return (float)0.0;
|
return u.i;
|
||||||
#else
|
#else
|
||||||
return bswap_32((u_int32_t)((float)0.0));
|
return bswap_32(u.i);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
case SND_PCM_SFMT_FLOAT64_LE:
|
case SND_PCM_SFMT_FLOAT64_LE:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
double f;
|
||||||
|
u_int64_t i;
|
||||||
|
} u;
|
||||||
|
u.f = 0.0;
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
#ifdef SND_LITTLE_ENDIAN
|
||||||
return (double)0.0;
|
return u.i;
|
||||||
#else
|
#else
|
||||||
return bswap_64((u_int64_t)((double)0.0));
|
return bswap_64(u.i);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
case SND_PCM_SFMT_FLOAT_BE:
|
case SND_PCM_SFMT_FLOAT_BE:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
double f;
|
||||||
|
u_int32_t i;
|
||||||
|
} u;
|
||||||
|
u.f = 0.0;
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
#ifdef SND_LITTLE_ENDIAN
|
||||||
return bswap_32((u_int32_t)((float)0.0));
|
return bswap_32(u.i);
|
||||||
#else
|
#else
|
||||||
return (float)0.0;
|
return u.i;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
case SND_PCM_SFMT_FLOAT64_BE:
|
case SND_PCM_SFMT_FLOAT64_BE:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
double f;
|
||||||
|
u_int64_t i;
|
||||||
|
} u;
|
||||||
|
u.f = 0.0;
|
||||||
#ifdef SND_LITTLE_ENDIAN
|
#ifdef SND_LITTLE_ENDIAN
|
||||||
return bswap_64((u_int64_t)((double)0.0));
|
return bswap_64(u.i);
|
||||||
#else
|
#else
|
||||||
return (double)0.0;
|
return u.i;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
case SND_PCM_SFMT_IEC958_SUBFRAME_LE:
|
case SND_PCM_SFMT_IEC958_SUBFRAME_LE:
|
||||||
case SND_PCM_SFMT_IEC958_SUBFRAME_BE:
|
case SND_PCM_SFMT_IEC958_SUBFRAME_BE:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue