int in_sample_rate; ///< input sample rate
int out_sample_rate; ///< output sample rate
int flags; ///< miscellaneous flags such as SWR_FLAG_RESAMPLE
- float slev; ///< surround mixing level, XXX: unused
+ float slev; ///< surround mixing level
float clev; ///< center mixing level
float rematrix_volume; ///< rematrixing volume coefficient
const int *channel_map; ///< channel index (or -1 if muted channel) map
struct AudioConvert *full_convert; ///< full conversion context (single conversion for input and output)
struct ResampleContext *resample; ///< resampling context
- float matrix[SWR_CH_MAX][SWR_CH_MAX];
- int32_t matrix32[SWR_CH_MAX][SWR_CH_MAX];
- uint8_t matrix_ch[SWR_CH_MAX][SWR_CH_MAX+1];
+ float matrix[SWR_CH_MAX][SWR_CH_MAX]; ///< floating point rematrixing coefficients
+ int32_t matrix32[SWR_CH_MAX][SWR_CH_MAX]; ///< 17.15 fixed point rematrixing coefficients
+ uint8_t matrix_ch[SWR_CH_MAX][SWR_CH_MAX+1]; ///< Lists of input channels per output channel that have non zero rematrixing coefficients
/* TODO: callbacks for ASM optimizations */
}SwrContext;