diff --git a/ip.h b/ip.h index 56de9d60e..e51b3f8ef 100644 --- a/ip.h +++ b/ip.h @@ -28,7 +28,7 @@ #include #endif -#define IP_ABI_VERSION 1 +#define IP_ABI_VERSION 2 enum { /* no error */ diff --git a/op.h b/op.h index 2f645d39b..6cf26036f 100644 --- a/op.h +++ b/op.h @@ -26,7 +26,7 @@ #include #endif -#define OP_ABI_VERSION 2 +#define OP_ABI_VERSION 3 enum { /* no error */ diff --git a/output.c b/output.c index e1b3eb013..717df6e2e 100644 --- a/output.c +++ b/output.c @@ -124,8 +124,7 @@ void op_load_plugins(void) error_msg("%s: missing symbol", filename); err = true; } - STATIC_ASSERT(OP_ABI_VERSION == 2); - if (!plug->abi_version_ptr || (*plug->abi_version_ptr != 1 && *plug->abi_version_ptr != 2)) { + if (!plug->abi_version_ptr || *plug->abi_version_ptr != OP_ABI_VERSION) { error_msg("%s: incompatible plugin version", filename); err = true; } diff --git a/sf.h b/sf.h index c3c11fc60..720a683fa 100644 --- a/sf.h +++ b/sf.h @@ -22,34 +22,33 @@ /* * 0 1 big_endian 0-1 * 1 1 is_signed 0-1 - * 2 1 unused 0 - * 3-5 3 bits >> 3 0-7 (* 8 = 0-56) - * 6-23 18 rate 0-262143 + * 2-20 19 rate 0-524286 + * 21-23 3 bits >> 3 0-7 (* 8 = 0-56) * 24-31 8 channels 0-255 */ typedef unsigned int sample_format_t; #define SF_BIGENDIAN_MASK 0x00000001 #define SF_SIGNED_MASK 0x00000002 -#define SF_BITS_MASK 0x00000038 -#define SF_RATE_MASK 0x00ffffc0 +#define SF_RATE_MASK 0x001ffffc +#define SF_BITS_MASK 0x00e00000 #define SF_CHANNELS_MASK 0xff000000 #define SF_BIGENDIAN_SHIFT 0 #define SF_SIGNED_SHIFT 1 -#define SF_BITS_SHIFT 0 -#define SF_RATE_SHIFT 6 +#define SF_RATE_SHIFT 2 +#define SF_BITS_SHIFT (21-3) #define SF_CHANNELS_SHIFT 24 #define sf_get_bigendian(sf) (((sf) & SF_BIGENDIAN_MASK) >> SF_BIGENDIAN_SHIFT) #define sf_get_signed(sf) (((sf) & SF_SIGNED_MASK ) >> SF_SIGNED_SHIFT) -#define sf_get_bits(sf) (((sf) & SF_BITS_MASK ) >> SF_BITS_SHIFT) #define sf_get_rate(sf) (((sf) & SF_RATE_MASK ) >> SF_RATE_SHIFT) +#define sf_get_bits(sf) (((sf) & SF_BITS_MASK ) >> SF_BITS_SHIFT) #define sf_get_channels(sf) (((sf) & SF_CHANNELS_MASK ) >> SF_CHANNELS_SHIFT) #define sf_signed(val) (((val) << SF_SIGNED_SHIFT ) & SF_SIGNED_MASK) -#define sf_bits(val) (((val) << SF_BITS_SHIFT ) & SF_BITS_MASK) #define sf_rate(val) (((val) << SF_RATE_SHIFT ) & SF_RATE_MASK) +#define sf_bits(val) (((val) << SF_BITS_SHIFT ) & SF_BITS_MASK) #define sf_channels(val) (((val) << SF_CHANNELS_SHIFT ) & SF_CHANNELS_MASK) #define sf_bigendian(val) (((val) << SF_BIGENDIAN_SHIFT) & SF_BIGENDIAN_MASK) #ifdef WORDS_BIGENDIAN