Commit Graph

17 Commits

Author SHA1 Message Date
Zaggy1024
c34b5a544e LibMedia: Set Matroska "complex" tracks' types based on the codec
The spec indicates that the codec defines how to interpret the data,
so use our CodecIDs to determine the track type.
2025-11-21 16:51:58 -06:00
Zaggy1024
eaf1564d1b LibMedia: Use u32 instead of uint to parse FFmpeg version numbers
This was breaking the build on Windows, apparently we don't have uint
there.
2025-11-21 09:32:54 -06:00
Zaggy1024
e72080b15f LibMedia: Adjust Matroska seeking based on SeekPreRoll
This is important for seeking Opus tracks, as Opus needs to decode a
certain amount of input data before its output converges. Without this,
audio after a seek can sound muffled briefly.
2025-11-21 11:02:44 +01:00
Zaggy1024
31c751ee92 LibMedia: Handle buggy FFmpeg WebM muxing in Matroska::Reader 2025-11-21 11:02:44 +01:00
Zaggy1024
dcc2359eac LibMedia: Clamp Matroska cluster timestamps when casting them 2025-11-21 11:02:44 +01:00
Zaggy1024
f899d49e18 LibMedia: Make Matroska's get_element_id_size function static
...to silence a warning.
2025-11-21 11:02:44 +01:00
Zaggy1024
180f2a07f1 LibMedia: Read the Matroska SamplingFrequency element 2025-11-21 11:02:44 +01:00
Zaggy1024
b59f0501b8 LibMedia: Use String instead of ByteString in Matroska::Document 2025-11-21 11:02:44 +01:00
Zaggy1024
5640541c44 LibMedia: Handle Xiph lacing in Matroska files 2025-11-11 00:50:42 +01:00
Zaggy1024
8f666c6360 LibMedia: Support parsing Matroska BlockGroup elements
This allows us to read WebM files that have blocks with additional data
attached to each block for an alpha frame. For now, only the main coded
data is used, the additional data containing the alpha channel is
ignored.
2025-11-04 16:59:50 +01:00
Zaggy1024
e5a6b76a40 LibMedia: When reaching EOS, clear Matroska iterators' last timestamp
This ensures that if we're at EOS, we never skip a seek, so that
seeking to the end of a video always gets a frame.
2025-10-27 17:28:49 -07:00
Zaggy1024
29ab9c5fd5 LibMedia: Let the Matroska LanguageBCP47 element override Language
The Matroska spec indicates that this field should always override the
Language element when it is present.
2025-10-27 17:28:49 -07:00
Zaggy1024
e11da1f85f LibMedia: Store a name and language in Media::Track 2025-10-27 17:28:49 -07:00
Zaggy1024
30d4810d70 LibMedia: Actually read Matroska tracks' CodecDelay elements 2025-10-02 11:03:26 +02:00
Zaggy1024
ce228663f1 LibMedia: Rename Matroska TRACK_CODEC_PRIVATE to TRACK_CODEC_PRIVATE_ID 2025-10-02 11:03:26 +02:00
Pavel Shliak
b60cb699a9 LibMedia: Clean up #include directives
This change aims to improve the speed of incremental builds.
2024-11-21 14:08:33 +01:00
Timothy Flynn
93712b24bf Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00