summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-24 11:08:26 +0100
committerwm4 <wm4@nowhere>2013-12-24 17:45:06 +0100
commit1d86134ec1c454cc8a5fed2e58eef7110759b0af (patch)
tree5530e6c776ba637b472aa57517671c25affd78bf
parentb796f2bb7693676056d0de98a9a95258909d799b (diff)
downloadmpv-1d86134ec1c454cc8a5fed2e58eef7110759b0af.tar.bz2
mpv-1d86134ec1c454cc8a5fed2e58eef7110759b0af.tar.xz
player: slightly simplify seeking in external files
For some reason, this checked whether there are external tracks at all before doing any seeks. Possibly this was to avoid multiple get_main_demux_pts() calls, but calling this multiple times shouldn't be too bad.
-rw-r--r--player/playloop.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/player/playloop.c b/player/playloop.c
index 1a38f74cd8..dcbc1de9ba 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -299,24 +299,17 @@ static int mp_seek(MPContext *mpctx, struct seek_params seek,
return -1;
}
- // If audio or demuxer subs come from different files, seek them too:
- bool have_external_tracks = false;
+ // Seek external, extra files too:
for (int t = 0; t < mpctx->num_tracks; t++) {
struct track *track = mpctx->tracks[t];
- have_external_tracks |= track->selected && track->is_external &&
- track->demuxer;
- }
- if (have_external_tracks) {
- double main_new_pos;
- if (seek.type == MPSEEK_ABSOLUTE) {
- main_new_pos = seek.amount - mpctx->video_offset;
- } else {
- main_new_pos = get_main_demux_pts(mpctx);
- }
- for (int t = 0; t < mpctx->num_tracks; t++) {
- struct track *track = mpctx->tracks[t];
- if (track->selected && track->is_external && track->demuxer)
- demux_seek(track->demuxer, main_new_pos, SEEK_ABSOLUTE);
+ if (track->selected && track->is_external && track->demuxer) {
+ double main_new_pos;
+ if (seek.type == MPSEEK_ABSOLUTE) {
+ main_new_pos = seek.amount - mpctx->video_offset;
+ } else {
+ main_new_pos = get_main_demux_pts(mpctx);
+ }
+ demux_seek(track->demuxer, main_new_pos, SEEK_ABSOLUTE);
}
}