Change #238203
Category | ffmpeg |
Changed by | Andreas Rheinhardt <andreas.rheinhardt | @outlook.com>
Changed at | Thu 03 Jul 2025 18:17:56 |
Repository | https://git.ffmpeg.org/ffmpeg.git |
Project | ffmpeg |
Branch | master |
Revision | 589f1e5cc7286e76f196d27fb55dec94e83ff3ab |
Comments
swresample/rematrix: Use correct function pointer types for calls Calling a function via a different function pointer type is undefined behavior (C11, 6.3.2.3 8); two pointer parameters of different type are not equivalent in this regard, although it happens to work in practice; the current code relies on this. This patch brings the code in line with the spec. This fixes the following FATE-tests when run with Clang-UBSan: ac3-fixed-encode-2 audiomatch-afconvert-{16000,44100}-mono-he-{adts,m4a} audiomatch-dolby-44100-mono-he-mp4 filter-metadata-avf-aphase-meter-mono filter-pan-{downmix1,downmix2,mono2,stereo2,stereo3,stereo4,upmix1,upmix2} lavf-dv_{pal,ntsc} matroska-encoding-delay The error was something like src/libswresample/rematrix.c:621:17: runtime error: call to function sum2_float through pointer to incorrect function type 'void (*)(void *, const void *, const void *, void *, int, int, int) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Changed files
- libswresample/rematrix.c
- libswresample/rematrix_template.c