Verify delayed decoders with unequal audio and video tails

This commit is contained in:
evgeny committed 2026-10-21 00:13:01 +02:00
1 parent c887780022
commit a342316e7a
2 files changed
+13 -8

No files matched your search

+4 -3
View File
@@ -519,14 +519,15 @@ void StreamPlayerWindow::decode() {
}
if (record.kind == StreamRecordKind::VideoEnd || record.kind == StreamRecordKind::AudioEnd || record.kind == StreamRecordKind::End) {
std::lock_guard<std::mutex> guard(p.lock);
if (record.kind != StreamRecordKind::AudioEnd) { finishing = true; p.videoEnded = !decoder; }
if (record.kind != StreamRecordKind::AudioEnd && !finishing) { finishing = true; p.videoEnded = !decoder; }
if (record.kind != StreamRecordKind::VideoEnd && !p.audioEnded) {
p.audioEnded = true;
if (p.sound) stream_playback_audio_finish(p.sound);
}
if (record.kind == StreamRecordKind::End) p.ended = true;
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "desktop track end id=%llu kind=%d video_input_end=%d audio_input_end=%d pending=%zu",
(unsigned long long)p.id, (int)record.kind, finishing, p.audioEnded, records.size());
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "desktop track end id=%llu track=%s video_input_end=%d audio_input_end=%d pending=%zu",
(unsigned long long)p.id, record.kind == StreamRecordKind::VideoEnd ? "video"
: record.kind == StreamRecordKind::AudioEnd ? "audio" : "all", finishing, p.audioEnded, records.size());
continue;
}
observe();