summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
Diffstat (limited to 'player')
-rw-r--r--player/command.c1
-rw-r--r--player/playloop.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/player/command.c b/player/command.c
index 9834b97b8a..c20e33167a 100644
--- a/player/command.c
+++ b/player/command.c
@@ -2205,6 +2205,7 @@ static const m_option_t mp_properties[] = {
M_OPTION_PROPERTY("osd-level"),
M_OPTION_PROPERTY_CUSTOM("osd-scale", property_osd_helper),
M_OPTION_PROPERTY("loop"),
+ M_OPTION_PROPERTY("loop-file"),
M_OPTION_PROPERTY_CUSTOM("speed", mp_property_playback_speed),
{ "filename", mp_property_filename, CONF_TYPE_STRING,
0, 0, 0, NULL },
diff --git a/player/playloop.c b/player/playloop.c
index 9ad9debfe1..31e8570589 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -825,6 +825,15 @@ static void handle_sstep(struct MPContext *mpctx)
}
}
+static void handle_loop_file(struct MPContext *mpctx)
+{
+ struct MPOpts *opts = mpctx->opts;
+ if (opts->loop_file && mpctx->stop_play == AT_END_OF_FILE) {
+ set_osd_function(mpctx, OSD_FFW);
+ queue_seek(mpctx, MPSEEK_ABSOLUTE, get_start_time(mpctx), 0, true);
+ }
+}
+
static void handle_keep_open(struct MPContext *mpctx)
{
struct MPOpts *opts = mpctx->opts;
@@ -1282,6 +1291,8 @@ void run_playloop(struct MPContext *mpctx)
handle_sstep(mpctx);
+ handle_loop_file(mpctx);
+
handle_keep_open(mpctx);
handle_force_window(mpctx, false);