31 #ifndef DSD2PCM_H_INCLUDED 32 #define DSD2PCM_H_INCLUDED 85 const unsigned char *src, ptrdiff_t src_stride,
87 float *dst, ptrdiff_t dst_stride);
void dsd2pcm_destroy(dsd2pcm_ctx *ctx)
deinitializes a "dsd2pcm engine" (releases memory, don't forget!)
struct dsd2pcm_ctx_s dsd2pcm_ctx
dsd2pcm_ctx * dsd2pcm_init(void)
initializes a "dsd2pcm engine" for one channel (precomputes tables and allocates memory) ...
void dsd2pcm_reset(dsd2pcm_ctx *ctx)
resets the internal state for a fresh new stream
void dsd2pcm_translate(dsd2pcm_ctx *ctx, size_t samples, const unsigned char *src, ptrdiff_t src_stride, int lsbitfirst, float *dst, ptrdiff_t dst_stride)
"translates" a stream of octets to a stream of floats (8:1 decimation)
dsd2pcm_ctx * dsd2pcm_clone(dsd2pcm_ctx *ctx)
clones the context and returns a pointer to the newly allocated copy