ffmpeg/libavutil
Lynne e8f054b095 lavu/tx: implement 32 bit fixed point FFT and MDCT
Required minimal changes to the code so made sense to implement.
FFT and MDCT tested, the output of both was properly rounded.
Fun fact: the non-power-of-two fixed-point FFT and MDCT are the fastest ever
non-power-of-two fixed-point FFT and MDCT written.
This can replace the power of two integer MDCTs in aac and ac3 if the
MIPS optimizations are ported across.
Unfortunately the ac3 encoder uses a 16-bit fixed point forward transform,
unlike the encoder which uses a 32bit inverse transform, so some modifications
might be required there.

The 3-point FFT is somewhat less accurate than it otherwise could be,
having minor rounding errors with bigger transforms. However, this
could be improved later, and the way its currently written is the way one
would write assembly for it.
Similar rounding errors can also be found throughout the power of two FFTs
as well, though those are more difficult to correct.
Despite this, the integer transforms are more than accurate enough.
2020-02-13 17:10:34 +00:00
..
aarch64 Add assembly support for -fsanitize=hwaddress tagged globals. 2019-08-22 11:22:07 +02:00
arm Merge commit '41cf3e3b1ca375962951fde1b90a03b16197d205' 2019-02-20 14:48:58 -03:00
avr32
bfin
mips avcodec/mips: msa optimizations for vc1dsp 2019-10-30 18:09:00 +01:00
ppc avutil/ppc/cpu: Fix power8 linux detection 2019-02-05 09:29:57 +02:00
sh4
tests avutil/tests/opt: add av_opt_get/av_opt_set tests 2019-12-27 21:52:21 +01:00
tomi
x86 libavutil: x86: Include stdlib.h before using _byteswap_ulong 2020-01-23 18:30:26 +02:00
.gitignore
Makefile lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
adler32.c
adler32.h
aes.c
aes.h
aes_ctr.c
aes_ctr.h
aes_internal.h
attributes.h
audio_fifo.c
audio_fifo.h
avassert.h Fix typos 2018-09-14 21:36:21 +02:00
avsscanf.c avutil/avsscanf: do not use long double functions 2018-12-15 09:58:28 +01:00
avstring.c avutil/avstring: Fix warning: ISO C90 forbids mixed declarations and code 2020-01-14 19:19:30 +01:00
avstring.h avutil/avstring: support input path as a null pointer or empty string 2019-10-08 14:12:43 +08:00
avutil.h
avutilres.rc
base64.c
base64.h
blowfish.c
blowfish.h
bprint.c
bprint.h
bswap.h
buffer.c avutil/buffer: add av_buffer_pool_buffer_get_opaque 2019-12-26 00:47:24 +01:00
buffer.h avutil/buffer: add av_buffer_pool_buffer_get_opaque 2019-12-26 00:47:24 +01:00
buffer_internal.h
camellia.c
camellia.h
cast5.c
cast5.h
channel_layout.c
channel_layout.h
color_utils.c
color_utils.h
colorspace.h avutil/colorspace: add macros for RGB->YUV BT.709 2019-04-19 17:10:20 +05:30
common.h avutil/common: warn about possible move of the data pointer after the last 0 byte in GET_UTF8 2020-01-31 00:15:13 +01:00
cpu.c
cpu.h
cpu_internal.h
crc.c
crc.h
cuda_check.h avutil/cuda_check: Fix non-dynamic-loader implementation 2019-02-24 09:13:01 -08:00
des.c
des.h
dict.c
dict.h
display.c
display.h
downmix_info.c
downmix_info.h
dynarray.h avutil/dynarry.h: fix comment grammar mistakes of FF_DYNARRAY_ADD 2019-06-01 17:43:48 +08:00
encryption_info.c avutil/encryption_info: Don't pass NULL to memcpy 2019-09-20 23:26:34 +02:00
encryption_info.h avutil/encryption_info: Fix documentation problem. 2018-06-27 13:43:38 +02:00
error.c
error.h
eval.c avutil/eval: Add av_expr_count_func() similar to av_expr_count_vars() 2019-12-28 11:20:48 +01:00
eval.h avutil/eval: Add av_expr_count_func() similar to av_expr_count_vars() 2019-12-28 11:20:48 +01:00
ffmath.h
fifo.c
fifo.h
file.c avutil/file: add more check befor destory the buffer 2019-08-30 09:16:01 +08:00
file.h avutil/file: allow mapping 0 byte files with av_file_map 2018-09-09 21:21:42 +02:00
file_open.c avpriv_tempfile: add djgpp fallback 2018-11-28 22:16:07 +11:00
fixed_dsp.c
fixed_dsp.h
float_dsp.c avutil: add float_dsp.vector_dmul 2018-09-12 19:15:09 +02:00
float_dsp.h avutil: add float_dsp.vector_dmul 2018-09-12 19:15:09 +02:00
frame.c avutil/frame: fix remove_side_data 2019-11-11 22:15:45 +01:00
frame.h avutil/frame: fix remove_side_data 2019-11-11 22:15:45 +01:00
hash.c
hash.h
hdr_dynamic_metadata.c Add HDR dynamic metadata struct (for SMPTE 2094-40) to libavutil 2018-12-21 17:52:00 +01:00
hdr_dynamic_metadata.h Add HDR dynamic metadata struct (for SMPTE 2094-40) to libavutil 2018-12-21 17:52:00 +01:00
hmac.c
hmac.h
hwcontext.c lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
hwcontext.h lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
hwcontext_cuda.c lavu/hwcontext_cuda: refactor context initialisation 2020-02-04 23:19:48 +00:00
hwcontext_cuda.h avutil/hwcontext_cuda: allow using primary CUDA device context 2019-11-26 16:24:40 +01:00
hwcontext_cuda_internal.h avutil/hwcontext_cuda: allow using primary CUDA device context 2019-11-26 16:24:40 +01:00
hwcontext_d3d11va.c lavu/hwcontext_d3d: Cast src pointers calling av_image_copy*(). 2019-04-19 14:20:24 +02:00
hwcontext_d3d11va.h
hwcontext_drm.c
hwcontext_drm.h hwcontext_drm: Clarify value for unknown format modifiers 2018-03-22 23:18:53 +00:00
hwcontext_dxva2.c lavu/hwcontext_d3d: Cast src pointers calling av_image_copy*(). 2019-04-19 14:20:24 +02:00
hwcontext_dxva2.h
hwcontext_internal.h lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
hwcontext_mediacodec.c
hwcontext_mediacodec.h
hwcontext_opencl.c libavutil/hwcontext_opencl: Fix channel order in format support check 2019-04-09 22:16:01 +01:00
hwcontext_opencl.h
hwcontext_qsv.c lavu/qsv: remove redundant version query 2019-09-27 23:50:57 +08:00
hwcontext_qsv.h
hwcontext_vaapi.c avutil/hwcontext_vaapi: move kernel_driver into CONFIG_LIBDRM 2019-07-11 09:34:57 +08:00
hwcontext_vaapi.h
hwcontext_vdpau.c avutil/hwcontext_vdpau: Map 444 pix fmts to new VdpYCbCr types 2019-05-05 11:35:35 -07:00
hwcontext_vdpau.h
hwcontext_videotoolbox.c avcodec/videotoolbox: add support for full range pixel formats 2019-09-04 10:51:20 -07:00
hwcontext_videotoolbox.h avcodec/videotoolbox: add support for full range pixel formats 2019-09-04 10:51:20 -07:00
hwcontext_vulkan.c lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
hwcontext_vulkan.h lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
imgutils.c avutil/imgutils: remove dead assignment 2019-08-22 21:38:41 +02:00
imgutils.h
imgutils_internal.h
integer.c avutil/integer: Fix integer overflow in av_mul_i() 2018-10-24 23:15:24 +02:00
integer.h
internal.h lavu/internal: Replace an empty loop with "do {}". 2018-12-19 15:46:29 +01:00
intfloat.h
intmath.c
intmath.h
intreadwrite.h intreadwrite: add AV_RL64A, AV_WL64A 2019-01-11 23:43:37 +11:00
lfg.c
lfg.h avutil/lfg: Correct index increment type to avoid undefined behavior 2019-11-24 22:58:59 +01:00
libavutil.v
libm.h
lls.c
lls.h
log.c avutil/log: Add av_log_once() for printing a message just once with a high log level 2020-02-12 10:25:25 +01:00
log.h avutil/log: Add av_log_once() for printing a message just once with a high log level 2020-02-12 10:25:25 +01:00
log2_tab.c
lzo.c
lzo.h
macros.h
mastering_display_metadata.c
mastering_display_metadata.h
mathematics.c avutil/mathematics: Fix 2 overflows in av_add_stable() 2019-08-31 18:34:05 +02:00
mathematics.h
md5.c
md5.h
mem.c avutil/mem: Optimize fill32() by unrolling and using 64bit 2019-01-20 21:42:20 +01:00
mem.h avutil/mem: Fix invalid use of av_alloc_size 2018-11-26 23:47:29 +01:00
mem_internal.h
motion_vector.h
murmur3.c
murmur3.h
opt.c libavutil/opt: fix memory leak after av_dict_parse_string fail 2020-01-04 09:05:23 +08:00
opt.h avutil/opt: add full support for AV_OPT_TYPE_DICT 2019-12-27 21:52:21 +01:00
parseutils.c lavu/parseutils: Allow to parse >= 100 hours. 2019-02-09 13:59:10 +01:00
parseutils.h
pca.c
pca.h
pixdesc.c lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
pixdesc.h avutil/pixdesc: Add av_write_image_line2(), av_read_image_line2() 2018-10-27 22:39:27 +02:00
pixelutils.c lavutil/pixelutils: add sad_32x32 in pixelutils API. 2018-07-31 19:09:35 +08:00
pixelutils.h
pixfmt.h lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
qsort.h
random_seed.c random_seed: use bcrypt instead of the old wincrypt API 2018-04-19 10:54:26 +03:00
random_seed.h
rational.c
rational.h
rc4.c
rc4.h
replaygain.h
reverse.c
reverse.h
ripemd.c
ripemd.h
samplefmt.c
samplefmt.h
sha.c
sha.h
sha512.c
sha512.h
slicethread.c
slicethread.h
softfloat.h
softfloat_ieee754.h avutil/softfloat_ieee754: Fix odd bit position for exponent and sign in av_bits2sf_ieee754() 2019-07-21 11:26:36 +02:00
softfloat_tables.h
spherical.c
spherical.h
stereo3d.c
stereo3d.h
tablegen.h
tea.c
tea.h
thread.h avutil/thread: fix strict_pthread_cond_timedwait 2020-01-25 23:16:18 +01:00
threadmessage.c lavu/threadmessage: add av_thread_message_queue_nb_elems() 2018-04-26 19:41:19 +02:00
threadmessage.h lavu/threadmessage: add av_thread_message_queue_nb_elems() 2018-04-26 19:41:19 +02:00
time.c
time.h
time_internal.h Merge commit 'c4642788e83b0858bca449f9b6e71ddb015dfa5d' 2019-05-02 13:50:31 -03:00
timecode.c
timecode.h
timer.h
timestamp.h
tree.c
tree.h
twofish.c
twofish.h
tx.c lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx.h lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx_double.c lavu/tx: add support for double precision FFT and MDCT 2019-08-02 01:19:52 +01:00
tx_float.c lavu/tx: add support for double precision FFT and MDCT 2019-08-02 01:19:52 +01:00
tx_int32.c lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx_priv.h lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx_template.c lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
utils.c Silence "string-plus-int" warning shown by clang. 2020-01-06 22:38:56 +01:00
version.h lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
wchar_filename.h
xga_font_data.c
xga_font_data.h
xtea.c
xtea.h