STL 2026 ITU Submission#6
Draft
ludomal wants to merge 12 commits into
Draft
Conversation
Introduce wav_io library (src/utl/wav_io.c, wav_io.h) providing transparent WAV and raw PCM file handling for all STL tools. Features: - Auto-detect WAV input via RIFF header magic bytes - Output format determined by filename extension (.wav = WAV, else raw) - Supports 8-bit, 16-bit, 24-bit, 32-bit PCM and 32-bit IEEE float - Multi-channel WAV: extracts channel 1 with warning - Parameter validation: expected sample rate, channels, and bit depth - Full backward compatibility: raw PCM workflows unchanged Integrated into 28 tools across all categories: - Codecs: g711demo, g711iplc, g722demo, encg722, decg722, g726demo, vbr-g726, g727demo, rpedemo - Filters: firdemo, filter, cirsdemo, pcmdemo, c712demo - Measurement: sv56demo, actlevel, bs1770demo, mnrudemo, calc-snr, esdru, freqresp - Processing: reverb, stereoop - Utilities: scaldemo, signal-diff, astrip, fdelay, measure, oper Includes unit tests (test_wav_io) and LaTeX manual documentation.
- CMakeLists.txt, src/wmc_tool/CMakeLists.txt: Update cmake_minimum_required to VERSION 3.10...3.31 (range syntax required by CMake >= 3.28) - shiftbit.c: Pass FILE* (Fi) instead of int fd (fi) to fread() - mnru.c: Assign 0 instead of NULL to long field s->seed - endian.c: Add void return types to reverse_endian_short/long, use unsigned types in test functions to match signatures
Replace K&R-style empty-parentheses function declarations with proper ANSI C prototypes. The missing prototypes caused default argument promotion (float->double) at call sites, while function bodies expected float parameters. This ABI mismatch causes segfaults on GCC 6+, Clang, MSVC, and ARM64 platforms. Convert two K&R function definitions (RES_ENG, A_SST) to ANSI style. Fix all forward declarations in .c files to include parameter types. Add platform-specific bit-exact verification tests with ARM64 reference files. The x86 path uses the original voice.out/voice-pf.out references. Fixes openitu#132, Fixes openitu#41
- .gitattributes: Force LF for basop CSV references and freqresp asciiOut.ref (prevents CRLF mismatch with test output on systems with core.autocrlf=true). Mark cftest1.dat as binary to prevent git from injecting CR bytes into the test input file. - src/fir/CMakeLists.txt: Add -equiv 1 tolerance to filter21/22/25/26/27 verify tests. These IIR cascade filters produce ±1 LSB differences across platforms due to floating-point rounding — consistent with all other filter tests which already use -equiv 1. - src/g711iplc/CMakeLists.txt: Add -abstol 1 to g711iplc1/3-verify. Same ±1 LSB cross-platform rounding differences. - src/esdru/CMakeLists.txt: Add missing -double flag to esdru1-verify. The test compares double-precision files but was reading them as 16-bit shorts, causing spurious mismatches. - src/wmc_tool/CMakeLists.txt: Replace deprecated find_package(PythonInterp) with find_package(Python3 COMPONENTS Interpreter). The old module fails to find Python on modern systems, causing all wmc_tool tests to report BAD_COMMAND. All fixes are transparent: no tool source code is modified, no algorithm behavior changes. Tools produce identical output on all platforms.
- Replace Travis CI with GitHub Actions (Linux/macOS/Windows + LaTeX) - src/unsup/compfile.c: replace read()/lseek() with fread()/fseek() - src/basop/test_framework/test/test_precision.c: binary mode CSV output Relates to openitu#120, openitu#142
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merged branches: