summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
Diffstat (limited to 'player')
-rw-r--r--player/core.h1
-rw-r--r--player/loadfile.c7
-rw-r--r--player/misc.c14
-rw-r--r--player/playloop.c4
4 files changed, 6 insertions, 20 deletions
diff --git a/player/core.h b/player/core.h
index fe87658d81..7098b3bd46 100644
--- a/player/core.h
+++ b/player/core.h
@@ -449,7 +449,6 @@ void mp_print_version(struct mp_log *log, int always);
void wakeup_playloop(void *ctx);
// misc.c
-double get_main_demux_pts(struct MPContext *mpctx);
double rel_time_to_abs(struct MPContext *mpctx, struct m_rel_time t);
double get_play_end_pts(struct MPContext *mpctx);
double get_relative_time(struct MPContext *mpctx);
diff --git a/player/loadfile.c b/player/loadfile.c
index e177df67d3..0fa4234ca6 100644
--- a/player/loadfile.c
+++ b/player/loadfile.c
@@ -235,9 +235,10 @@ void reselect_demux_streams(struct MPContext *mpctx)
need_init_seek(track->demuxer);
demuxer_select_track(track->demuxer, track->stream, track->selected);
if (need_init) {
- double pts = get_main_demux_pts(mpctx);
- if (pts != MP_NOPTS_VALUE)
- demux_seek(track->demuxer, pts, SEEK_ABSOLUTE);
+ double pts = get_current_time(mpctx);
+ if (pts == MP_NOPTS_VALUE)
+ pts = 0;
+ demux_seek(track->demuxer, pts, SEEK_ABSOLUTE);
}
}
}
diff --git a/player/misc.c b/player/misc.c
index fc98136e5c..d60f25f05b 100644
--- a/player/misc.c
+++ b/player/misc.c
@@ -101,20 +101,6 @@ double get_play_end_pts(struct MPContext *mpctx)
return end;
}
-// Time used to seek external tracks to.
-double get_main_demux_pts(struct MPContext *mpctx)
-{
- double main_new_pos = MP_NOPTS_VALUE;
- if (mpctx->demuxer) {
- for (int n = 0; n < demux_get_num_stream(mpctx->demuxer); n++) {
- struct sh_stream *stream = demux_get_stream(mpctx->demuxer, n);
- if (main_new_pos == MP_NOPTS_VALUE && stream->type != STREAM_SUB)
- main_new_pos = demux_get_next_pts(stream);
- }
- }
- return main_new_pos;
-}
-
float mp_get_cache_percent(struct MPContext *mpctx)
{
if (mpctx->demuxer) {
diff --git a/player/playloop.c b/player/playloop.c
index c81f720122..b672c24483 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -260,9 +260,9 @@ static int mp_seek(MPContext *mpctx, struct seek_params seek,
for (int t = 0; t < mpctx->num_tracks; t++) {
struct track *track = mpctx->tracks[t];
if (track->selected && track->is_external && track->demuxer) {
- double main_new_pos = seek.amount;
+ double main_new_pos = demuxer_amount;
if (seek.type != MPSEEK_ABSOLUTE)
- main_new_pos = get_main_demux_pts(mpctx);
+ main_new_pos = target_time;
demux_seek(track->demuxer, main_new_pos, SEEK_ABSOLUTE | SEEK_BACKWARD);
}
}