summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
Diffstat (limited to 'demux')
-rw-r--r--demux/demux.c2
-rw-r--r--demux/demux.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 51131dfd4c..e498895aaf 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -758,6 +758,7 @@ static void demux_copy(struct demuxer *dst, struct demuxer *src)
dst->file_contents = src->file_contents;
dst->playlist = src->playlist;
dst->seekable = src->seekable;
+ dst->partially_seekable = src->partially_seekable;
dst->filetype = src->filetype;
dst->ts_resets_possible = src->ts_resets_possible;
dst->rel_seeks = src->rel_seeks;
@@ -905,6 +906,7 @@ static struct demuxer *open_given_type(struct mpv_global *global,
if (!in->d_thread->seekable && stream->uncached_stream) {
mp_verbose(log, "Enabling seeking because stream cache is active.\n");
in->d_thread->seekable = true;
+ in->d_thread->partially_seekable = true;
}
demux_init_cache(demuxer);
demux_changed(in->d_thread, DEMUX_EVENT_ALL);
diff --git a/demux/demux.h b/demux/demux.h
index b53a30c805..e18c013a5b 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -185,7 +185,8 @@ typedef struct demuxer {
int64_t filepos; // input stream current pos.
char *filename; // same as stream->url
enum demuxer_type type;
- int seekable; // flag
+ bool seekable;
+ bool partially_seekable; // implies seekable=true
double start_time;
// File format allows PTS resets (even if the current file is without)
bool ts_resets_possible;