ladybird/Libraries/LibMedia/Containers
Zaggy1024 c901896972 LibMedia: Implement buffered range scanning for Ogg
Unfortunately, this necessarily involves parsing codec frames to get
their durations. Ogg's granule positions indicate the last sample of
the last complete frame of the page, so the navigator has to determine
the durations of every packet in the page to offset it back to its
start.

Vorbis is an especially involved codec to determine that for, since it
has initial data defining a mapping of indices to big or small block
sizes that has to be held onto, and that mapping is preceded by a bunch
of conditionally parsed bits. Also, a frame's block size calculation
involves the block size of the previous frame for an overlap add. To
avoid bringing that complexity directly into LibMedia, we delegate the
parsing/calculation to FFmpeg's av_vorbis_parse functions.
2026-05-28 10:30:20 -05:00
..
Matroska LibMedia: Factor out Opus frame duration parsing from Matroska::Reader 2026-05-28 10:30:20 -05:00
ConstantBitrateContainerNavigator.cpp LibMedia: Implement CBR seeking through ContainerNavigator 2026-05-28 10:30:20 -05:00
ConstantBitrateContainerNavigator.h LibMedia: Implement CBR seeking through ContainerNavigator 2026-05-28 10:30:20 -05:00
ContainerNavigator.h LibMedia: Implement CBR seeking through ContainerNavigator 2026-05-28 10:30:20 -05:00
FLACNavigator.cpp LibMedia: Calculate accurate buffered ranges for FLAC 2026-05-28 10:30:20 -05:00
FLACNavigator.h LibMedia: Calculate accurate buffered ranges for FLAC 2026-05-28 10:30:20 -05:00
IndexedContainerNavigator.cpp LibMedia: Implement buffered ranges for FFmpegDemuxer 2026-05-28 10:30:20 -05:00
IndexedContainerNavigator.h LibMedia: Implement buffered ranges for FFmpegDemuxer 2026-05-28 10:30:20 -05:00
IndexEntry.h LibMedia: Implement buffered ranges for FFmpegDemuxer 2026-05-28 10:30:20 -05:00
MP3Navigator.cpp LibMedia: Implement buffered ranges for MP3 2026-05-28 10:30:20 -05:00
MP3Navigator.h LibMedia: Implement buffered ranges for MP3 2026-05-28 10:30:20 -05:00
OggNavigator.cpp LibMedia: Implement buffered range scanning for Ogg 2026-05-28 10:30:20 -05:00
OggNavigator.h LibMedia: Implement buffered range scanning for Ogg 2026-05-28 10:30:20 -05:00
ScanningContainerNavigator.h LibMedia: Calculate accurate buffered ranges for FLAC 2026-05-28 10:30:20 -05:00