diff options
Diffstat (limited to 'transcoder')
| -rw-r--r-- | transcoder/src/fragment.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/transcoder/src/fragment.rs b/transcoder/src/fragment.rs index 2ff36a7..f9ab72d 100644 --- a/transcoder/src/fragment.rs +++ b/transcoder/src/fragment.rs @@ -112,12 +112,10 @@ pub fn transcode( let tags = demuxer.tags()?; let mut clusters = Vec::new(); while let Some((_, cluster)) = demuxer.read_cluster()? { - clusters.push(cluster); - } - - //? Remove extra kf hack - if clusters.last().is_some_and(|c| c.simple_blocks.len() == 1) { - clusters.pop(); + // discard clusters added at the end for backwards-prediction + if cluster.timestamp * info.timestamp_scale < end_pts { + clusters.push(cluster); + } } Ok(Segment { |