These are true, actual DCT-I and DST-I transforms, unlike the libavcodec versions, which are plainly not. Error tests via https://github.com/cyanreg/lavu_fft_test RMS error on a 2048-sample DCT-I: RMSE   av_tx = 0.000000 (4096 matches, first mismatch at -1) RMSE  fftw3f = 0.000000 (4096 matches, first mismatch at -1) RMSE   avfft = 0.011440 (0 matches, first mismatch at 0) RMS error on a 2048-sample DST-I: RMSE   av_tx = 0.000000 (4096 matches, first mismatch at -1) RMSE  fftw3f = 0.000000 (4096 matches, first mismatch at -1) RMSE   avfft = 0.015316 (0 matches, first mismatch at 0)