mirror of
https://github.com/storytold/deckcraft.git
synced 2026-11-11 20:53:18 +00:00
Media: Opus, Ogg, MP4 and Matroska come from craft-libs (#2047)
DeckCraft kept its own Opus decoder (crates/opus) and Ogg demuxer (crates/ogg), and two crates that only re-exported craft-media (crates/isobmff, crates/matroska). craft-libs has all four: craft-audio's opus module and craft-media's ogg, isobmff and matroska modules. The four crates are removed and crates/media depends on craft-audio and craft-media directly. craft-media and craft-audio are pinned at 113f2360, the head of craft-libs #810, which carries the two Ogg fixes DeckCraft made to its own copy (51d19baa,9d36b593). The pin moves to craft-libs main once #810 merges. craft-pdf, craft-update and craft-ui keep their pins. One API difference: craft-media's OpusTiming::of saturates on a hostile granule position instead of returning an error. The end-trim product in the Ogg Opus decode now saturates as well; a test with a three-channel file and the largest granule panicked on it without that. crates/bitstream stays: it also holds the video decoders' memory budget, which craft-libs does not have.
This commit is contained in:
1 parent
b57b4ccfcf
commit
35166b3841
36 files changed
+106
-7595
No files matched your search
+3
-6
@@ -34,17 +34,14 @@ impl Class {
|
||||
/// prefix.
|
||||
pub const TABLE: &[(&str, Class)] = &[
|
||||
("geom", Class::Layer(0)),
|
||||
// Codecs and containers (ported from FilmCraft): L0 standalone leaves, L1 codecs over
|
||||
// `bitstream`, and `media` (probe, decode, playback mixer) at L2.
|
||||
// Video codecs (ported from FilmCraft): `bitstream` is an L0 standalone leaf, the codecs sit
|
||||
// over it at L1, and `media` (probe, decode, playback mixer) at L2. Containers and the Opus
|
||||
// decoder come from craft-libs (craft-media, craft-audio).
|
||||
("bitstream", Class::Standalone),
|
||||
("matroska", Class::Standalone),
|
||||
("ogg", Class::Standalone),
|
||||
("opus", Class::Standalone),
|
||||
("h264", Class::Layer(1)),
|
||||
("hevc", Class::Layer(1)),
|
||||
("vp9", Class::Layer(1)),
|
||||
("av1", Class::Layer(1)),
|
||||
("isobmff", Class::Layer(1)),
|
||||
("media", Class::Layer(2)),
|
||||
("color", Class::Layer(0)),
|
||||
// WMF/EMF reader (ported from WordCraft).
|
||||
|
||||
Reference in new issue
Block a user