Expose track completion to desktop and retain the longer media tail
This commit is contained in:
1 parent
a54031081b
commit
852c05590d
3 files changed
+4
-1
No files matched your search
@@ -320,6 +320,7 @@ int stream_media_cursor_status(struct stream_media_cursor *c, struct stream_medi
|
||||
status.ready_us = status.video_us;
|
||||
if (status.audio_enabled && status.audio_us < status.ready_us) status.ready_us = status.audio_us;
|
||||
if (s->finished && c->video.ended && status.audio_enabled) status.ready_us = status.audio_us;
|
||||
if (s->finished && c->audio.ended && status.video_us > status.ready_us) status.ready_us = status.video_us;
|
||||
status.video_ended = c->video.ended; status.audio_ended = c->audio.ended;
|
||||
status.start_us = c->start_us; status.generation = c->generation; status.initialized = 1;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ StreamRecord takeRecord(uint64_t id, stream_viewer_record* r) {
|
||||
case STREAM_VIEWER_OPENED: record.kind = StreamRecordKind::Opened; break;
|
||||
case STREAM_VIEWER_END: record.kind = StreamRecordKind::End; break;
|
||||
case STREAM_VIEWER_CLOSED: record.kind = StreamRecordKind::Closed; break;
|
||||
case STREAM_VIEWER_VIDEO_END: record.kind = StreamRecordKind::VideoEnd; break;
|
||||
case STREAM_VIEWER_AUDIO_END: record.kind = StreamRecordKind::AudioEnd; break;
|
||||
}
|
||||
record.id = id; record.pts = r->pts; record.format = r->format; record.flags = r->flags; record.reason = r->reason;
|
||||
record.data = QByteArray(reinterpret_cast<const char*>(r->data), static_cast<int>(r->length));
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "../../../src/stream/stream_publisher.h"
|
||||
|
||||
struct UTUN_INSTANCE;
|
||||
enum class StreamRecordKind { Video, Audio, Gap, Opened, End, Closed };
|
||||
enum class StreamRecordKind { Video, Audio, Gap, Opened, End, Closed, VideoEnd, AudioEnd };
|
||||
struct StreamRecord {
|
||||
uint64_t id = 0, pts = 0;
|
||||
StreamRecordKind kind = StreamRecordKind::Gap;
|
||||
|
||||
Reference in new issue
Block a user