diff options
Diffstat (limited to 'player')
-rw-r--r-- | player/core.h | 1 | ||||
-rw-r--r-- | player/loadfile.c | 7 | ||||
-rw-r--r-- | player/misc.c | 14 | ||||
-rw-r--r-- | player/playloop.c | 4 |
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); } } |