(1) to be multithreaded,
(2) to work on multichannel audio and
(3) to work on 48k and 44.1k audio.
Allow multiple impulse response (IR) files with a new setting: "convolution_ir_files"
When convolution starts, Shairport Sync will look for an IR file with a sample rate
matching the input (44.1k or 48k) and channel count.
If one can't be found, it will look for a single-channel IR file with the same rate.
It will always choose the first match in the file list supplied "convolution_ir_files".
Allow multithreading -- use the "convolution_thread_pool_size" to set the number of threads to use.
Deprecate "convolution" -- use "convolution_enabled" instead.
Deprecate "convolution_max_length" -- use "convolution_max_length_in_seconds" instead.
Deprecate "convolution_ir_file" -- use "convolution_ir_files" instead.
Update corresponding D-Bus methods and properties.
Update the loudness code to work on 48k and well as 44.1k audio and with multichannel audio.
Deprecate "loudness" -- use "loudness_enabled" instead.
Update corresponding D-Bus methods and properties.
Fix a deprecated FFmpeg warning.
Update HiFi-LoFi FFT convolver to latest available.
23 lines
623 B
C
23 lines
623 B
C
#pragma once
|
|
|
|
#include "player.h"
|
|
#include <stdio.h>
|
|
|
|
typedef struct {
|
|
float a0, a1, a2, b1, b2;
|
|
} loudness_processor_static;
|
|
|
|
typedef struct {
|
|
float i1, i2, o1, o2;
|
|
} loudness_processor_dynamic;
|
|
|
|
// extern loudness_processor_dynamic loudness_r;
|
|
// extern loudness_processor_dynamic loudness_l;
|
|
|
|
void loudness_set_volume(float volume);
|
|
float loudness_process(loudness_processor_dynamic *p, float sample);
|
|
void loudness_update(rtsp_conn_info *conn);
|
|
|
|
void loudness_reset();
|
|
void loudness_process_blocks(float *fbufs, unsigned int channel_length,
|
|
unsigned int number_of_channels, float gain); |