1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
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
adler32.c
adler32.h
aes_ctr.c avutil/aes_ctr: Add method to set 16-byte IV. 2018-01-23 21:48:31 +01:00
aes_ctr.h avutil/aes_ctr: Add method to set 16-byte IV. 2018-01-23 21:48:31 +01:00
aes_internal.h
aes.c
aes.h
attributes.h Merge commit '8e2346154e6d58b733fd20326ce706f82fd91b3e' 2017-10-21 14:25:55 -03:00
audio_fifo.c Merge commit '0456e684394dc5a7b98ab9ebb48396d743bf3730' 2017-03-24 13:17:55 +01:00
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 lavu: add av_fourcc_make_string() and av_fourcc2str() 2017-03-29 14:49:29 +02:00
avutilres.rc
base64.c
base64.h
blowfish.c
blowfish.h
bprint.c
bprint.h
bswap.h
buffer_internal.h Merge commit '27079a426c9d3db918b158976e44b9b143d78e1c' 2017-03-22 17:46:01 +01:00
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
camellia.c
camellia.h
cast5.c
cast5.h
channel_layout.c avutil/channel_layout: add av_get_extended_channel_layout 2017-01-24 23:51:36 +01:00
channel_layout.h avutil/channel_layout: add av_get_extended_channel_layout 2017-01-24 23:51:36 +01:00
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_internal.h Merge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906' 2018-02-11 23:08:48 -03:00
cpu.c avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
cpu.h avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
crc.c crc: add AV_CRC_8_SBC as a 8 bits CRC with polynomial 0x1D 2018-03-07 22:26:53 +01:00
crc.h crc: add AV_CRC_8_SBC as a 8 bits CRC with polynomial 0x1D 2018-03-07 22:26:53 +01:00
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 Merge commit '075acbb6ff5740b2eea1bb7dd3afbc8e66e2ebf8' 2017-04-13 17:31:15 -03:00
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: Return the correct AVERROR value 2017-01-26 10:25:20 +01:00
fifo.h
file_open.c avpriv_tempfile: add djgpp fallback 2018-11-28 22:16:07 +11:00
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
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 avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
hash.h avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
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 Merge commit '00b6a765430e5c5cacf0bd1be8b318d631cd4e14' 2017-05-05 13:27:03 +02:00
hmac.h avutil/hmac: remove gap in AVHMACType enum values 2017-10-22 19:47:05 -03:00
hwcontext_cuda_internal.h avutil/hwcontext_cuda: allow using primary CUDA device context 2019-11-26 16:24:40 +01: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_d3d11va.c lavu/hwcontext_d3d: Cast src pointers calling av_image_copy*(). 2019-04-19 14:20:24 +02:00
hwcontext_d3d11va.h hwcontext_d3d11va: add missing stdint.h include 2017-11-17 23:27:43 +01:00
hwcontext_drm.c lavu: Add DRM hwcontext 2017-09-13 22:03:27 +01:00
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 dxva: add support for new dxva2 and d3d11 hwaccel APIs 2017-06-27 18:05:02 +02:00
hwcontext_internal.h lavu: add Vulkan hwcontext code 2020-02-04 23:19:48 +00:00
hwcontext_mediacodec.c lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_mediacodec.h lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_opencl.c libavutil/hwcontext_opencl: Fix channel order in format support check 2019-04-09 22:16:01 +01:00
hwcontext_opencl.h lavu/hwcontext_opencl.h: fix build on macOS 2017-11-28 00:23:42 -06:00
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_vaapi: Try to support the VDPAU wrapper 2017-06-14 22:23:43 +01:00
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
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
imgutils_internal.h Merge commit 'd7bc52bf456deba0f32d9fe5c288ec441f1ebef5' 2017-03-20 08:34:10 +01:00
imgutils.c avutil/imgutils: remove dead assignment 2019-08-22 21:38:41 +02:00
imgutils.h Merge commit 'ce6d72d10776b03c6780d4aa676414ce002285d4' 2017-09-27 20:35:04 -03:00
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 intmath: add faster clz support 2017-03-01 11:23:19 -05:00
intreadwrite.h intreadwrite: add AV_RL64A, AV_WL64A 2019-01-11 23:43:37 +11:00
lfg.c libavutil: add av_lfg_init_from_data() function 2017-01-22 02:28:53 +01:00
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
log2_tab.c
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
lzo.c
lzo.h
macros.h
Makefile lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
mastering_display_metadata.c lavu: add support for Content Light Level side metadata 2017-04-06 11:26:25 -03:00
mastering_display_metadata.h avutil/mastering_display_metadata: fix copyright header wrongly formated as doxy 2018-01-11 11:35:51 -03:00
mathematics.c avutil/mathematics: Fix 2 overflows in av_add_stable() 2019-08-31 18:34:05 +02:00
mathematics.h
md5.c avutil/md5: fix misaligned reads 2017-06-02 21:00:35 -04:00
md5.h Merge commit 'e435beb1ea5380a90774dbf51fdc8c941e486551' 2017-05-05 13:04:38 +02:00
mem_internal.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
motion_vector.h
murmur3.c avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
murmur3.h avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
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 avutil/reverse: move the ff_reverse declaration to a separate header 2017-01-12 19:59:37 -03:00
ripemd.c avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
ripemd.h avutil/crypto: change length parameter to size_t on the remaining modules 2018-02-15 11:21:28 -03:00
samplefmt.c
samplefmt.h
sha512.c lavu/sha512: update length argument following sha+md5 changes 2017-05-05 13:24:35 +02:00
sha512.h lavu/sha512: update length argument following sha+md5 changes 2017-05-05 13:24:35 +02:00
sha.c Merge commit 'e435beb1ea5380a90774dbf51fdc8c941e486551' 2017-05-05 13:04:38 +02:00
sha.h Merge commit 'e435beb1ea5380a90774dbf51fdc8c941e486551' 2017-05-05 13:04:38 +02:00
slicethread.c w32pthreads: always use Vista+ API, drop XP support 2017-12-26 02:49:48 +01:00
slicethread.h avutil: merge slice threading implementation from avcodec and avfilter 2017-07-19 15:50:07 +07:00
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
softfloat.h avutil/softfloat: Add FLOAT_MIN 2017-11-05 22:13:16 +01:00
spherical.c spherical: add functions to retrieve and request projection names 2017-04-27 09:59:54 -04:00
spherical.h spherical: add functions to retrieve and request projection names 2017-04-27 09:59:54 -04:00
stereo3d.c Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3' 2017-09-26 16:02:40 -03:00
stereo3d.h Merge commit '99e9697e3a12ab4a6638a36b95edafd6a98f9eaa' 2017-11-29 21:06:49 -03:00
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_internal.h Merge commit 'c4642788e83b0858bca449f9b6e71ddb015dfa5d' 2019-05-02 13:50:31 -03:00
time.c avutil/tile: check clock_gettime at runtime for apple platforms 2017-01-09 11:52:06 +08:00
time.h
timecode.c avutil/timecode: fix starting frame number for 59.94 fps 2018-02-23 01:53:34 +01:00
timecode.h lavu/timecode: Increase AV_TIMECODE_STR_SIZE. 2017-05-05 10:09:12 +02:00
timer.h Merge commit 'b46900914a1f25ce8dbf49d7c53766ff1f18b60f' 2017-11-11 16:42:27 -03:00
timestamp.h
tree.c
tree.h
twofish.c
twofish.h
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
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
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 Merge commit 'e41daa62465036ad36ad0bd14e4936e848d7f07e' 2017-11-11 10:22:11 -03:00
xga_font_data.c
xga_font_data.h Merge commit 'abf1c058d1bd0ed1b820ea5e501a4484756f00b0' 2017-11-11 11:29:16 -03:00
xtea.c
xtea.h