ladybird/Libraries/LibMedia
Andreas Kling b23aa38546 AK: Adopt mimalloc v2 as main allocator
Use mimalloc for Ladybird-owned allocations without overriding malloc().
Route kmalloc(), kcalloc(), krealloc(), and kfree() through mimalloc,
and put the embedded Rust crates on the same allocator via a shared
shim in AK/kmalloc.cpp.

This also lets us drop kfree_sized(), since it no longer used its size
argument. StringData, Utf16StringData, JS object storage, Rust error
strings, and the CoreAudio playback helpers can all free their AK-backed
storage with plain kfree().

Sanitizer builds still use the system allocator. LeakSanitizer does not
reliably trace references stored in mimalloc-managed AK containers, so
static caches and other long-lived roots can look leaked. Pass the old
size into the Rust realloc shim so aligned fallback reallocations can
move posix_memalign-backed blocks safely.

Static builds still need a little linker help. macOS app binaries need
the Rust allocator entry points forced in from liblagom-ak.a, while
static ELF links can pull in identical allocator shim definitions from
multiple Rust staticlibs. Keep the Apple -u flags and allow those
duplicate shim symbols for LibJS and LibRegex links on Linux and BSD.
2026-04-08 09:57:53 +02:00
..
Audio AK: Adopt mimalloc v2 as main allocator 2026-04-08 09:57:53 +02:00
Color LibMedia: Remove default_code_points_if_unspecified() 2026-01-27 11:34:24 -06:00
Containers/Matroska LibMedia: Allow demuxers to report buffered times to PlaybackManager 2026-04-01 02:54:22 -05:00
FFmpeg LibMedia: Allow demuxers to report buffered times to PlaybackManager 2026-04-01 02:54:22 -05:00
PlaybackStates LibMedia: Deal with tracks being toggled during seeks properly 2026-04-03 20:13:15 -05:00
Providers LibMedia: Allow demuxers to report buffered times to PlaybackManager 2026-04-01 02:54:22 -05:00
Sinks LibMedia: Detect buffering in audio tracks as well as video 2026-03-21 23:11:47 -05:00
AudioBlock.h Everywhere: Use AK::SaturatingMath and remove Checked saturating APIs 2026-03-21 18:20:09 -05:00
AudioDecoder.h LibMedia: Allow signalling of EOF to decoders 2025-11-05 18:40:02 +01:00
CMakeLists.txt LibMedia: Add a TimeRanges class to be used for buffered attributes 2026-04-01 02:54:22 -05:00
CodecID.h LibMedia: Add WAV PCM codecs to CodecID 2025-12-15 18:03:03 -06:00
CodedAudioFrameData.h LibMedia: Support coded audio frames in our demuxers 2025-10-27 17:28:49 -07:00
CodedFrame.h LibMedia: Store a duration in CodedFrame 2025-12-10 16:02:40 -06:00
CodedVideoFrameData.h LibMedia: Move CICP values from CodedFrame to Track 2025-11-05 18:40:02 +01:00
DecoderError.h LibMedia: Add a formatter for DecoderErrorCategory 2026-02-24 16:55:40 -06:00
Demuxer.h LibMedia: Allow demuxers to report buffered times to PlaybackManager 2026-04-01 02:54:22 -05:00
Forward.h LibMedia: Add a MediaStreamCursor subclass for reading ReadonlyBytes 2026-04-01 02:54:22 -05:00
FrameFlags.h LibMedia: Store whether a CodedFrame is a keyframe 2025-10-27 17:28:49 -07:00
IncrementallyPopulatedStream.cpp LibMedia: Allow clearing incremental streams' data request callbacks 2026-02-18 13:13:32 -06:00
IncrementallyPopulatedStream.h LibWeb: Keep the media element alive until fetches complete 2026-03-01 23:13:22 -06:00
MediaStream.h LibMedia: Deal with aborts in FFmpegDemuxer instead of the IO context 2026-02-24 16:55:40 -06:00
PlaybackManager.cpp LibMedia: Deal with tracks being toggled during seeks properly 2026-04-03 20:13:15 -05:00
PlaybackManager.h LibMedia+LibWeb: Disable audio output in headless mode 2026-04-01 02:54:22 -05:00
ReadonlyBytesCursor.h LibMedia: Add a MediaStreamCursor subclass for reading ReadonlyBytes 2026-04-01 02:54:22 -05:00
SeekMode.h LibMedia: Implement media seeking 2025-10-27 17:28:49 -07:00
Subsampling.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
TimedImage.cpp LibGfx+LibMedia: Send video frames to Skia as subsampled YUV 2026-01-22 19:44:36 +01:00
TimedImage.h LibGfx+LibMedia: Send video frames to Skia as subsampled YUV 2026-01-22 19:44:36 +01:00
TimeRanges.cpp LibMedia: Add a TimeRanges class to be used for buffered attributes 2026-04-01 02:54:22 -05:00
TimeRanges.h LibMedia: Add a TimeRanges class to be used for buffered attributes 2026-04-01 02:54:22 -05:00
Track.h LibMedia+LibWeb: Align Media::Track more to the web spec 2026-04-01 02:54:22 -05:00
TrackType.h LibMedia: Set Matroska "complex" tracks' types based on the codec 2025-11-21 16:51:58 -06:00
VideoDecoder.h LibGfx+LibMedia: Send video frames to Skia as subsampled YUV 2026-01-22 19:44:36 +01:00
VideoFrame.cpp Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00
VideoFrame.h Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00