Commit Graph

8 Commits

Author SHA1 Message Date
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
364b422ae0 LibMedia: Store Matroska audio and video track info more safely
We don't need to put these in a union, it's not gonna save us much
space. The reader also may find both audio and video elements, in which
case this code would produce undefined behavior.

Also, with this change, we can use the default values from the spec.
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
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
e8238b4098 LibMedia: Replace FlyString with String for Matroska track attributes
The values stored by these are either going to be fairly unique or too
short to benefit from FlyString.
2025-10-27 17:28:49 -07:00
Ali Mohammad Pur
4462348916 Everywhere: Slap some [[clang::lifetimebound]] where appropriate
This first pass only applies to the following two cases:
- Public functions returning a view type into an object they own
- Public ctors storing a view type

This catches a grand total of one (1) issue, which is fixed in
the previous commit.
2025-09-01 11:11:38 +02:00
Timothy Flynn
93712b24bf Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00