fftools/resources: Add resource manager files with build-time compression

Compression requires zlib to be available, otherwise resources will
be included uncompressed - in either case via BIN2C.

It can also be disabled via

./configure --disable-resource-compression

Size figures:

graph.css         7752
graph.css.min     6655 (css is always minified)
graph.html        2153

No Compression

graph.css.c      40026
graph.css.o       9344 (6688)
graph.html.c     13016
graph.html.o      4848 (2186)

With Compression

graph.css.c      10206
graph.css.o       4368 (1718)
graph.html.c      5725
graph.html.o      3632 (971)

Numbers in brackets: .rodata size from 'size -Ax -d *.o'

Signed-off-by: softworkz <softworkz@hotmail.com>
This commit is contained in:
softworkz
2025-05-15 23:07:54 +02:00
parent e2f39671ae
commit 517a805565
9 changed files with 785 additions and 3 deletions

5
configure vendored
View File

@ -523,6 +523,7 @@ Developer options (useful when working on FFmpeg itself):
--enable-macos-kperf enable macOS kperf (private) API
--disable-large-tests disable tests that use a large amount of memory
--disable-ptx-compression don't compress CUDA PTX code even when possible
--disable-resource-compression don't compress resources even when possible
--disable-version-tracking don't include the git/release version in the build
NOTE: Object files are built at the place where configure is launched.
@ -2123,6 +2124,7 @@ CONFIG_LIST="
ossfuzz
pic
ptx_compression
resource_compression
thumb
valgrind_backtrace
xmm_clobber_test
@ -4179,6 +4181,7 @@ enable iamf
enable large_tests
enable optimizations
enable ptx_compression
enable resource_compression
enable runtime_cpudetect
enable safe_bitstream_reader
enable static
@ -6904,6 +6907,8 @@ EOF
enabled zlib_gzip && enabled gzip || disable ptx_compression
enabled zlib_gzip && enabled gzip || disable resource_compression
# On some systems dynamic loading requires no extra linker flags
check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl