diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-01 02:09:28 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-01 02:09:28 +0100 |
commit | 05ae425c1b906f81d6981e10688cb6949bf9daaf (patch) | |
tree | cc6b6677f3a375e291be2ae5ef36563543476315 /remuxer/src/lib.rs | |
parent | fd1823e7ecf46a230fdf2db009a30931692bc320 (diff) | |
download | jellything-05ae425c1b906f81d6981e10688cb6949bf9daaf.tar jellything-05ae425c1b906f81d6981e10688cb6949bf9daaf.tar.bz2 jellything-05ae425c1b906f81d6981e10688cb6949bf9daaf.tar.zst |
add CodecDelay and SeekPreRoll (+ fix TrackUID collision)
Diffstat (limited to 'remuxer/src/lib.rs')
-rw-r--r-- | remuxer/src/lib.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/remuxer/src/lib.rs b/remuxer/src/lib.rs index 3ea16e2..b46369e 100644 --- a/remuxer/src/lib.rs +++ b/remuxer/src/lib.rs @@ -43,15 +43,18 @@ pub fn ebml_segment_info(title: String, duration: f64) -> MatroskaTag { pub fn ebml_track_entry( number: u64, + uid: u64, track: &SourceTrack, codec_private: Option<Vec<u8>>, ) -> MatroskaTag { let mut els = vec![ MatroskaTag::TrackNumber(number), - MatroskaTag::TrackUID(number), + MatroskaTag::TrackUID(uid), MatroskaTag::FlagLacing(0), MatroskaTag::Language(track.language.clone()), MatroskaTag::CodecID(track.codec.clone()), + MatroskaTag::CodecDelay(track.codec_delay.clone()), + MatroskaTag::SeekPreRoll(track.seek_pre_roll.clone()), ]; if let Some(d) = &track.default_duration { els.push(MatroskaTag::DefaultDuration(*d)); @@ -72,7 +75,7 @@ pub fn ebml_track_entry( ]; props.push(MatroskaTag::DisplayWidth(display_width.unwrap_or(width))); props.push(MatroskaTag::DisplayHeight(display_height.unwrap_or(height))); - props.push(MatroskaTag::DisplayUnit(display_unit.unwrap_or(0))); + props.push(MatroskaTag::DisplayUnit(display_unit)); if let Some(fps) = fps { props.push(MatroskaTag::FrameRate(fps)) } |