Skip to content

Commit

Permalink
refactors symphonia try_seek
Browse files Browse the repository at this point in the history
  • Loading branch information
dvdsk committed Oct 12, 2023
1 parent 2691d23 commit c0e4a3e
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions src/decoder/symphonia.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,9 @@ impl Source for SymphoniaDecoder {

let time = if seek_beyond_end {
let time = self.total_duration.expect("if guarentees this is Some");
adjust_down_a_bit(time) // some decoders can only seek to just before the end
skip_back_a_tiny_bit(time) // some decoders can only seek to just before the end
} else {
let frac = if pos.subsec_nanos() == 0 {
0f64
} else {
let res = pos.subsec_nanos() as f64 / 1_000_000_000.0;
res
};
Time {
seconds: pos.as_secs(),
frac,
}
time_from_duration(pos)
};

self.format.seek(
Expand All @@ -182,7 +173,20 @@ impl Source for SymphoniaDecoder {
}
}

fn adjust_down_a_bit(
fn time_from_duration(dur: Duration) -> Time {
let frac = if dur.subsec_nanos() == 0 {
0f64
} else {
let res = dur.subsec_nanos() as f64 / 1_000_000_000.0;
res
};
Time {
seconds: dur.as_secs(),
frac,
}
}

fn skip_back_a_tiny_bit(
Time {
mut seconds,
mut frac,
Expand Down

0 comments on commit c0e4a3e

Please sign in to comment.