with:
name: ${{ matrix.os }}-${{ matrix.build_type }}
path: ${{ matrix.build_type }}
+
+ build-ffts:
+ strategy:
+ fail-fast: false
+ matrix:
+ build_type: [Release]
+ fft_flag: [-DWITH_AVFFT=ON, -DWITH_PFFFT=OFF]
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install libavcodec
+ run: sudo apt install libavcodec-dev
+
+ - name: Configure CMake
+ run: >
+ cmake -B ${{ matrix.build_type }}
+ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
+ ${{ matrix.fft_flag }}
+ -S ${{ github.workspace }}
+
+ - name: Build
+ run: cmake --build ${{ matrix.build_type }} --config ${{ matrix.build_type }}
+
+ - name: Test
+ working-directory: ${{ matrix.build_type }}
+ run: ctest --build-config ${{ matrix.build_type }}
+
+ - uses: actions/upload-artifact@v4
+ if: ${{ !cancelled() }}
+ with:
+ name: ${{ matrix.fft_flag }}-${{ matrix.build_type }}
+ path: ${{ matrix.build_type }}
static void * forward_setup(int len) {return av_rdft_init((int)(log(len)/log(2)+.5),DFT_R2C);}
static void * backward_setup(int len) {return av_rdft_init((int)(log(len)/log(2)+.5),IDFT_C2R);}
-static void rdft(int length, void * setup, float * h) {av_rdft_calc(setup, h); (void)length;}
+static void rdft(int length, void * setup, float * h, void * scratch) {av_rdft_calc(setup, h); (void)length; (void)scratch;}
static int multiplier(void) {return 2;}
-static void nothing(void) {}
+static void nothing(int length, void * setup, void * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
static int flags(void) {return 0;}
fn_t _soxr_rdft32_cb[] = {
static void * forward_setup(int len) {return av_rdft_init((int)(log(len)/log(2)+.5),DFT_R2C);}
static void * backward_setup(int len) {return av_rdft_init((int)(log(len)/log(2)+.5),IDFT_C2R);}
-static void rdft(int length, void * setup, float * h) {av_rdft_calc(setup, h); (void)length;}
+static void rdft(int length, void * setup, float * h, void * scratch) {av_rdft_calc(setup, h); (void)length; (void)scratch;}
static int multiplier(void) {return 2;}
-static void nothing(void) {}
+static void nothing(int length, void * setup, void * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
static int flags(void) {return RDFT_IS_SIMD;}
fn_t _soxr_rdft32s_cb[] = {
#include "rdft_t.h"
static void * null(int length) {(void)length; return 0;}
static void nothing(void * setup) {(void)setup;}
-static void forward(int length, void * setup, double * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft_f(length, 1, H);}
-static void backward(int length, void * setup, double * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft_f(length, -1, H);}
+static void forward (int length, void * setup, double * H, void * scratch) {lsx_safe_rdft_f(length, 1, H); (void)setup; (void)scratch;}
+static void backward(int length, void * setup, double * H, void * scratch) {lsx_safe_rdft_f(length, -1, H); (void)setup; (void)scratch;}
static int multiplier(void) {return 2;}
-static void nothing2(int length, void * setup, double * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
+static void nothing2(int length, void * setup, void * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
static int flags(void) {return 0;}
fn_t _soxr_rdft32_cb[] = {
static void * null(int length) {(void)length; return 0;}
static void nothing(void * setup) {(void)setup;}
-static void forward(int length, void * setup, float * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft_f(length, 1, H);}
-static void backward(int length, void * setup, float * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft_f(length, -1, H);}
+static void forward (int length, void * setup, float * H, void * scratch) {lsx_safe_rdft_f(length, 1, H); (void)setup; (void)scratch;}
+static void backward(int length, void * setup, float * H, void * scratch) {lsx_safe_rdft_f(length, -1, H); (void)setup; (void)scratch;}
static int multiplier(void) {return 2;}
-static void nothing2(int length, void * setup, float * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
+static void nothing2(int length, void * setup, void * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
static int flags(void) {return RDFT_IS_SIMD;}
fn_t _soxr_rdft32s_cb[] = {
#if WITH_CR64
static void * null(int length) {(void)length; return 0;}
static void nothing(void * setup) {(void)setup;}
-static void forward(int length, void * setup, double * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft(length, 1, H);}
-static void backward(int length, void * setup, double * H, void * scratch) {(void)setup; (void)scratch; lsx_safe_rdft(length, -1, H);}
+static void forward (int length, void * setup, double * H, void * scratch) {lsx_safe_rdft(length, 1, H); (void)setup; (void)scratch;}
+static void backward(int length, void * setup, double * H, void * scratch) {lsx_safe_rdft(length, -1, H); (void)setup; (void)scratch;}
static int multiplier(void) {return 2;}
-static void nothing2(int length, void * setup, double * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
+static void nothing2(int length, void * setup, void * H, void * scratch) {(void)length; (void)setup; (void)H; (void)scratch;}
static int flags(void) {return 0;}
typedef void (* fn_t)(void);