Files
shairport-sync/loudness.h
T
Mike Brady d043f98330 Update the convolution code:
(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.
2025-10-13 13:26:20 +01:00

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);