not add start time when syncing (#442)

* not add start time when syncing

* use itsoffset for all syncing related time shifts
This commit is contained in:
Simon 2024-07-01 18:43:16 +02:00 committed by GitHub
parent 2cf9125de3
commit 4332b1beef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -322,20 +322,14 @@ impl Downloader {
if let Some(offsets) = offsets { if let Some(offsets) = offsets {
let mut root_format_idx = 0; let mut root_format_idx = 0;
let mut root_format_length = 0; let mut root_format_offset = u64::MAX;
for (i, format) in self.formats.iter().enumerate() { for (i, format) in self.formats.iter().enumerate() {
let offset = offsets.get(&i).copied().unwrap_or_default(); let offset = offsets.get(&i).copied().unwrap_or_default();
let format_len = format let format_offset = offset.num_milliseconds() as u64;
.video if format_offset < root_format_offset {
.0
.segments()
.iter()
.map(|s| s.length.as_millis())
.sum::<u128>() as u64
- offset.num_milliseconds() as u64;
if format_len > root_format_length {
root_format_idx = i; root_format_idx = i;
root_format_length = format_len; root_format_offset = format_offset;
} }
for _ in &format.audios { for _ in &format.audios {
@ -567,7 +561,7 @@ impl Downloader {
for (i, meta) in videos.iter().enumerate() { for (i, meta) in videos.iter().enumerate() {
if let Some(start_time) = meta.start_time { if let Some(start_time) = meta.start_time {
input.extend(["-ss".to_string(), format_time_delta(&start_time)]) input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
} }
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]); input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend(["-map".to_string(), i.to_string()]); maps.extend(["-map".to_string(), i.to_string()]);
@ -588,7 +582,7 @@ impl Downloader {
} }
for (i, meta) in audios.iter().enumerate() { for (i, meta) in audios.iter().enumerate() {
if let Some(start_time) = meta.start_time { if let Some(start_time) = meta.start_time {
input.extend(["-ss".to_string(), format_time_delta(&start_time)]) input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
} }
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]); input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend(["-map".to_string(), (i + videos.len()).to_string()]); maps.extend(["-map".to_string(), (i + videos.len()).to_string()]);
@ -635,7 +629,7 @@ impl Downloader {
if container_supports_softsubs { if container_supports_softsubs {
for (i, meta) in subtitles.iter().enumerate() { for (i, meta) in subtitles.iter().enumerate() {
if let Some(start_time) = meta.start_time { if let Some(start_time) = meta.start_time {
input.extend(["-ss".to_string(), format_time_delta(&start_time)]) input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
} }
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]); input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend([ maps.extend([