Expand description
§wavpack-rs
Rust bindings for WavPack.
The included WavPack version is 5.6.0.
§Current Status
Reading and writing support is implemented and appears to work correctly, although is under-tested.
Not all APIs are exposed, but please feel encouraged to open PRs for anything that you need that’s missing. APIs that have been exposed are thin wrappers for calls to the underlying WavPack functions, for usage information see the WavPack API documentation.
§Dependencies
- CMake is used to build WavPack.
- A C++ compiler.
§Acknowledgments
Many thanks to Toru3 who started this project.
Structs§
- Chunk
Header - Riff
Chunk Header - Wave
Header - Wavpack
Config - WavPack Configuration ///////////////////////////////
- Wavpack
Context - Wavpack
Header - Wavpack
Stream Reader - Callbacks used for reading & writing WavPack streams //////////
- Wavpack
Stream Reader64 - __
atomic_ wide_ counter__ bindgen_ ty_ 1 - __
fsid_ t - __
once_ flag - __
pthread_ cond_ s - __
pthread_ internal_ list - __
pthread_ internal_ slist - __
pthread_ mutex_ s - __
pthread_ rwlock_ arch_ t - __
sigset_ t - fd_set
- timespec
- timeval
Constants§
- BIG_
ENDIAN - BYTES_
STORED - BYTE_
ORDER - CONFIG_
BITRATE_ KBPS - CONFIG_
CALC_ NOISE - CONFIG_
COMPATIBLE_ WRITE - CONFIG_
CREATE_ EXE - CONFIG_
CREATE_ WVC - CONFIG_
CROSS_ DECORR - CONFIG_
DYNAMIC_ SHAPING - CONFIG_
EXTRA_ MODE - CONFIG_
FAST_ FLAG - CONFIG_
HIGH_ FLAG - CONFIG_
HYBRID_ FLAG - CONFIG_
HYBRID_ SHAPE - CONFIG_
JOINT_ OVERRIDE - CONFIG_
JOINT_ STEREO - CONFIG_
MD5_ CHECKSUM - CONFIG_
MERGE_ BLOCKS - CONFIG_
OPTIMIZE_ MONO - CONFIG_
OPTIMIZE_ WVC - CONFIG_
PAIR_ UNDEF_ CHANS - CONFIG_
SHAPE_ OVERRIDE - CONFIG_
SKIP_ WVX - CONFIG_
VERY_ HIGH_ FLAG - CROSS_
DECORR - Chunk
Header Format - DSD_
FLAG - FALSE_
STEREO - FD_
SETSIZE - FINAL_
BLOCK - FLOAT_
DATA - HAS_
CHECKSUM - HYBRID_
BALANCE - HYBRID_
BITRATE - HYBRID_
FLAG - HYBRID_
SHAPE - ID_
ALT_ EXTENSION - ID_
ALT_ HEADER - ID_
ALT_ MD5_ CHECKSUM - ID_
ALT_ TRAILER - ID_
BLOCK_ CHECKSUM - ID_
CHANNEL_ IDENTITIES - ID_
CHANNEL_ INFO - ID_
CONFIG_ BLOCK - ID_
DECORR_ SAMPLES - ID_
DECORR_ TERMS - ID_
DECORR_ WEIGHTS - ID_
DSD_ BLOCK - ID_
DUMMY - ID_
ENCODER_ INFO - ID_
ENTROPY_ VARS - ID_
FLOAT_ INFO - ID_
HYBRID_ PROFILE - ID_
INT32_ INFO - ID_
LARGE - ID_
MD5_ CHECKSUM - ID_
NEW_ CONFIG_ BLOCK - ID_
ODD_ SIZE - ID_
OPTIONAL_ DATA - ID_
RIFF_ HEADER - ID_
RIFF_ TRAILER - ID_
SAMPLE_ RATE - ID_
SHAPING_ WEIGHTS - ID_
UNIQUE - ID_
WVC_ BITSTREAM - ID_
WVX_ BITSTREAM - ID_
WV_ BITSTREAM - IGNORED_
FLAGS - INITIAL_
BLOCK - INT8_
MAX - INT8_
MIN - INT16_
MAX - INT16_
MIN - INT32_
DATA - INT32_
MAX - INT32_
MIN - INTPTR_
MAX - INTPTR_
MIN - INT_
FAST8_ MAX - INT_
FAST8_ MIN - INT_
FAST16_ MAX - INT_
FAST16_ MIN - INT_
FAST32_ MAX - INT_
FAST32_ MIN - INT_
LEAS T8_ MAX - INT_
LEAS T8_ MIN - INT_
LEAS T16_ MAX - INT_
LEAS T16_ MIN - INT_
LEAS T32_ MAX - INT_
LEAS T32_ MIN - JOINT_
STEREO - LITTLE_
ENDIAN - MAG_LSB
- MAG_
MASK - MAX_
STREAM_ VERS - MAX_
WAVPACK_ SAMPLES - MIN_
STREAM_ VERS - MODE_
APETAG - MODE_
DNS - MODE_
EXTRA - MODE_
FAST - MODE_
FLOAT - MODE_
HIGH - MODE_
HYBRID - MODE_
LOSSLESS - MODE_
MD5 - MODE_
SFX - MODE_
VALID_ TAG - MODE_
VERY_ HIGH - MODE_
WVC - MODE_
XMODE - MONO_
DATA - MONO_
FLAG - NEW_
SHAPING - OPEN_
2CH_ MAX - OPEN_
ALT_ TYPES - OPEN_
DSD_ AS_ PCM - OPEN_
DSD_ NATIVE - OPEN_
EDIT_ TAGS - OPEN_
FILE_ UTF8 - OPEN_
NORMALIZE - OPEN_
NO_ CHECKSUM - OPEN_
STREAMING - OPEN_
TAGS - OPEN_
WRAPPER - OPEN_
WVC - PDP_
ENDIAN - PTRDIFF_
MAX - PTRDIFF_
MIN - QMODE_
ADOBE_ MODE - QMODE_
BIG_ ENDIAN - QMODE_
CHANS_ UNASSIGNED - QMODE_
DSD_ AUDIO - QMODE_
DSD_ IN_ BLOCKS - QMODE_
DSD_ LSB_ FIRST - QMODE_
DSD_ MSB_ FIRST - QMODE_
EVEN_ BYTE_ DEPTH - QMODE_
IGNORE_ LENGTH - QMODE_
NO_ STORE_ WRAPPER - QMODE_
RAW_ PCM - QMODE_
REORDERED_ CHANS - QMODE_
SIGNED_ BYTES - QMODE_
UNSIGNED_ WORDS - SHIFT_
LSB - SHIFT_
MASK - SIG_
ATOMIC_ MAX - SIG_
ATOMIC_ MIN - SIZE_
MAX - SRATE_
LSB - SRATE_
MASK - UINT8_
MAX - UINT16_
MAX - UINT32_
MAX - UINTPTR_
MAX - UINT_
FAST8_ MAX - UINT_
FAST16_ MAX - UINT_
FAST32_ MAX - UINT_
LEAS T8_ MAX - UINT_
LEAS T16_ MAX - UINT_
LEAS T32_ MAX - UNKNOWN_
FLAGS - WAVPACK_
MAX_ CHANS - WAVPACK_
MAX_ CLI_ CHANS - WINT_
MAX - WINT_
MIN - WP_
FORMAT_ AIF - WP_
FORMAT_ CAF - WP_
FORMAT_ DFF - WP_
FORMAT_ DSF - WP_
FORMAT_ W64 - WP_
FORMAT_ WAV - Wave
Header Format - Wavpack
Header Format - _ATFILE_
SOURCE - _BITS_
BYTESWAP_ H - _BITS_
ENDIANNESS_ H - _BITS_
ENDIAN_ H - _BITS_
PTHREADTYPES_ ARCH_ H - _BITS_
PTHREADTYPES_ COMMON_ H - _BITS_
STDINT_ INTN_ H - _BITS_
STDINT_ LEAST_ H - _BITS_
STDINT_ UINTN_ H - _BITS_
TIME64_ H - _BITS_
TYPESIZES_ H - _BITS_
TYPES_ H - _BITS_
UINTN_ IDENTITY_ H - _BITS_
WCHAR_ H - _DEFAULT_
SOURCE - _ENDIAN_
H - _FEATURES_
H - _POSIX_
C_ SOURCE - _POSIX_
SOURCE - _STDC_
PREDEF_ H - _STDINT_
H - _STRUCT_
TIMESPEC - _SYS_
CDEFS_ H - _SYS_
SELECT_ H - _SYS_
TYPES_ H - _THREAD_
MUTEX_ INTERNAL_ H - _THREAD_
SHARED_ TYPES_ H - __
BIG_ ENDIAN - __
BIT_ TYPES_ DEFINED__ - __
BYTE_ ORDER - __
FD_ SETSIZE - __
FLOAT_ WORD_ ORDER - __
GLIBC_ MINOR__ - __
GLIBC_ USE_ C2X_ STRTOL - __
GLIBC_ USE_ DEPRECATED_ GETS - __
GLIBC_ USE_ DEPRECATED_ SCANF - __
GLIBC_ USE_ IEC_ 60559_ BFP_ EXT - __
GLIBC_ USE_ IEC_ 60559_ BFP_ EXT_ C2X - __
GLIBC_ USE_ IEC_ 60559_ EXT - __
GLIBC_ USE_ IEC_ 60559_ FUNCS_ EXT - __
GLIBC_ USE_ IEC_ 60559_ FUNCS_ EXT_ C2X - __
GLIBC_ USE_ IEC_ 60559_ TYPES_ EXT - __
GLIBC_ USE_ ISOC2X - __
GLIBC_ USE_ LIB_ EXT2 - __
GLIBC__ - __
GNU_ LIBRARY__ - __
HAVE_ GENERIC_ SELECTION - __
INO_ T_ MATCHES_ INO64_ T - __
KERNEL_ OLD_ TIMEVAL_ MATCHES_ TIMEVA L64 - __
LDOUBLE_ REDIRECTS_ TO_ FLOA T128_ ABI - __
LITTLE_ ENDIAN - __
OFF_ T_ MATCHES_ OFF64_ T - __
PDP_ ENDIAN - __
PTHREAD_ MUTEX_ HAVE_ PREV - __
RLIM_ T_ MATCHES_ RLIM64_ T - __
SIZEOF_ PTHREAD_ ATTR_ T - __
SIZEOF_ PTHREAD_ BARRIERATTR_ T - __
SIZEOF_ PTHREAD_ BARRIER_ T - __
SIZEOF_ PTHREAD_ CONDATTR_ T - __
SIZEOF_ PTHREAD_ COND_ T - __
SIZEOF_ PTHREAD_ MUTEXATTR_ T - __
SIZEOF_ PTHREAD_ MUTEX_ T - __
SIZEOF_ PTHREAD_ RWLOCKATTR_ T - __
SIZEOF_ PTHREAD_ RWLOCK_ T - __
STATFS_ MATCHES_ STATF S64 - __
STDC_ IEC_ 559_ COMPLEX__ - __
STDC_ IEC_ 559__ - __
STDC_ IEC_ 60559_ BFP__ - __
STDC_ IEC_ 60559_ COMPLEX__ - __
STDC_ ISO_ 10646__ - __
SYSCALL_ WORDSIZE - __
TIMESIZE - __
USE_ ATFILE - __
USE_ FORTIFY_ LEVEL - __
USE_ ISOC11 - __
USE_ ISOC95 - __
USE_ ISOC99 - __
USE_ MISC - __
USE_ POSIX - __
USE_ POSI X2 - __
USE_ POSI X199309 - __
USE_ POSI X199506 - __
USE_ POSIX_ IMPLICITLY - __
USE_ XOPE N2K - __
USE_ XOPE N2K8 - __
WORDSIZE - __
WORDSIZE_ TIME64_ COMPA T32 - __
clock_ t_ defined - __
clockid_ t_ defined - __
glibc_ c99_ flexarr_ available - __
have_ pthread_ attr_ t - __
sigset_ t_ defined - __
time_ t_ defined - __
timer_ t_ defined - __
timeval_ defined
Functions§
- Wavpack
AddWrapper ⚠ - Wavpack
Append ⚠Binary TagItem - Wavpack
Append ⚠TagItem - Wavpack
BigEndian ⚠ToNative - Wavpack
Close ⚠File - Wavpack
Delete ⚠TagItem - Wavpack
Float ⚠Normalize - Wavpack
Flush ⚠Samples - Wavpack
Free ⚠Wrapper - Wavpack
GetAverage ⚠Bitrate - Wavpack
GetBinary ⚠TagItem - Wavpack
GetBinary ⚠TagItem Indexed - Wavpack
GetBits ⚠PerSample - Wavpack
GetBytes ⚠PerSample - Wavpack
GetChannel ⚠Identities - Wavpack
GetChannel ⚠Layout - Wavpack
GetChannel ⚠Mask - Wavpack
GetEncoded ⚠Noise - Wavpack
GetError ⚠Message - Wavpack
GetFile ⚠Extension - Wavpack
GetFile ⚠Format - Wavpack
GetFile ⚠Size - Wavpack
GetFile ⚠Size64 - Wavpack
GetFloat ⚠Norm Exp - Wavpack
GetInstant ⚠Bitrate - Wavpack
GetLibrary ⚠Version - Wavpack
GetLibrary ⚠Version String - Wavpack
GetM ⚠D5Sum - Wavpack
GetMode ⚠ - Wavpack
GetNative ⚠Sample Rate - Wavpack
GetNum ⚠Binary TagItems - Wavpack
GetNum ⚠Channels - Wavpack
GetNum ⚠Errors - Wavpack
GetNum ⚠Samples - Wavpack
GetNum ⚠Samples64 - Wavpack
GetNum ⚠Samples InFrame - Wavpack
GetNum ⚠TagItems - Wavpack
GetProgress ⚠ - Wavpack
GetQualify ⚠Mode - Wavpack
GetRatio ⚠ - Wavpack
GetReduced ⚠Channels - Wavpack
GetSample ⚠Index - Wavpack
GetSample ⚠Index64 - Wavpack
GetSample ⚠Rate - Wavpack
GetTag ⚠Item - Wavpack
GetTag ⚠Item Indexed - Wavpack
GetVersion ⚠ - Wavpack
GetWrapper ⚠Bytes - Wavpack
GetWrapper ⚠Data - Wavpack
GetWrapper ⚠Location - Wavpack
Little ⚠Endian ToNative - Wavpack
Lossy ⚠Blocks - Wavpack
Native ⚠ToBig Endian - Wavpack
Native ⚠ToLittle Endian - Wavpack
Open ⚠File Input - Wavpack
Open ⚠File Input Ex - Wavpack
Open ⚠File Input Ex64 - Wavpack
Open ⚠File Output - Wavpack
Open ⚠RawDecoder - Wavpack
Pack ⚠Init - Wavpack
Pack ⚠Samples - Wavpack
Seek ⚠Sample - Wavpack
Seek ⚠Sample64 - Wavpack
Seek ⚠Trailing Wrapper - Wavpack
SetChannel ⚠Layout - Wavpack
SetConfiguration ⚠ - Wavpack
SetConfiguration64 ⚠ - Wavpack
SetFile ⚠Information - Wavpack
StoreM ⚠D5Sum - Wavpack
Unpack ⚠Samples - Wavpack
Update ⚠NumSamples - Wavpack
Verify ⚠Single Block - Wavpack
Write ⚠Tag - pselect⚠
- select⚠
Type Aliases§
- Wavpack
Block Output - __
blkcnt64_ t - __
blkcnt_ t - __
blksize_ t - __
caddr_ t - __
clock_ t - __
clockid_ t - __
daddr_ t - __dev_t
- __
fd_ mask - __
fsblkcnt64_ t - __
fsblkcnt_ t - __
fsfilcnt64_ t - __
fsfilcnt_ t - __
fsword_ t - __gid_t
- __id_t
- __
ino64_ t - __ino_t
- __
int8_ t - __
int16_ t - __
int32_ t - __
int64_ t - __
int_ least8_ t - __
int_ least16_ t - __
int_ least32_ t - __
int_ least64_ t - __
intmax_ t - __
intptr_ t - __key_t
- __
loff_ t - __
mode_ t - __
nlink_ t - __
off64_ t - __off_t
- __pid_t
- __
pthread_ list_ t - __
pthread_ slist_ t - __
quad_ t - __
rlim64_ t - __
rlim_ t - __
sig_ atomic_ t - __
socklen_ t - __
ssize_ t - __
suseconds64_ t - __
suseconds_ t - __
syscall_ slong_ t - __
syscall_ ulong_ t - __
thrd_ t - __
time_ t - __
timer_ t - __tss_t
- __
u_ char - __u_int
- __
u_ long - __
u_ quad_ t - __
u_ short - __uid_t
- __
uint8_ t - __
uint16_ t - __
uint32_ t - __
uint64_ t - __
uint_ least8_ t - __
uint_ least16_ t - __
uint_ least32_ t - __
uint_ least64_ t - __
uintmax_ t - __
useconds_ t - blkcnt_
t - blksize_
t - caddr_t
- clock_t
- clockid_
t - daddr_t
- dev_t
- fd_mask
- fsblkcnt_
t - fsfilcnt_
t - fsid_t
- gid_t
- id_t
- ino_t
- int_
fast8_ t - int_
fast16_ t - int_
fast32_ t - int_
fast64_ t - int_
least8_ t - int_
least16_ t - int_
least32_ t - int_
least64_ t - intmax_
t - key_t
- loff_t
- mode_t
- nlink_t
- off_t
- pid_t
- pthread_
key_ t - pthread_
once_ t - pthread_
spinlock_ t - pthread_
t - quad_t
- register_
t - sigset_
t - suseconds_
t - time_t
- timer_t
- u_char
- u_int
- u_
int8_ t - u_
int16_ t - u_
int32_ t - u_
int64_ t - u_long
- u_
quad_ t - u_short
- uid_t
- uint
- uint_
fast8_ t - uint_
fast16_ t - uint_
fast32_ t - uint_
fast64_ t - uint_
least8_ t - uint_
least16_ t - uint_
least32_ t - uint_
least64_ t - uintmax_
t - ulong
- ushort