summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-04-28 22:04:37 +0200
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>2015-04-29 18:39:49 +0900
commit73086a6ba3de013e1aae42ed375f39592d100031 (patch)
treedab0b3ec2ad8d477f477acb2f36bc0943fbf7c6f
parent0126999cde0f7c4c990dfe6503126148eae9a78f (diff)
downloadmpv-73086a6ba3de013e1aae42ed375f39592d100031.tar.bz2
mpv-73086a6ba3de013e1aae42ed375f39592d100031.tar.xz
player: log track list when adding or removing external files
Should help with debugging, and might be slightly more userfriendly. Note that this is called manually in multiple entry-points, instead of the functions doing the actual work (like mp_remove_track()). This is done so that exiting the player or calling the sub_reload command won't print redundant in-between states. (cherry picked from commit 0c0c8cd44e42791b80e7de33b653aa9143865bbb)
-rw-r--r--player/command.c5
-rw-r--r--player/core.h1
-rw-r--r--player/loadfile.c15
3 files changed, 16 insertions, 5 deletions
diff --git a/player/command.c b/player/command.c
index 3556986473..4b1979b14d 100644
--- a/player/command.c
+++ b/player/command.c
@@ -4530,6 +4530,7 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
char *lang = cmd->args[3].v.s;
if (lang && lang[0])
t->lang = talloc_strdup(t, lang);
+ print_track_list(mpctx);
break;
}
@@ -4540,6 +4541,7 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
if (!t)
return -1;
mp_remove_track(mpctx, t);
+ print_track_list(mpctx);
break;
}
@@ -4553,6 +4555,7 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
if (nt) {
mp_remove_track(mpctx, t);
mp_switch_track(mpctx, nt->type, nt);
+ print_track_list(mpctx);
return 0;
}
}
@@ -4573,6 +4576,8 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
opts->sub_id_ff, opts->sub_lang);
if (s && s->is_external)
mp_switch_track(mpctx, STREAM_SUB, s);
+
+ print_track_list(mpctx);
}
break;
}
diff --git a/player/core.h b/player/core.h
index 714fd5d4bd..da9401be36 100644
--- a/player/core.h
+++ b/player/core.h
@@ -396,6 +396,7 @@ struct playlist_entry *mp_next_file(struct MPContext *mpctx, int direction,
void mp_set_playlist_entry(struct MPContext *mpctx, struct playlist_entry *e);
void mp_play_files(struct MPContext *mpctx);
void update_demuxer_properties(struct MPContext *mpctx);
+void print_track_list(struct MPContext *mpctx);
void reselect_demux_streams(struct MPContext *mpctx);
void prepare_playlist(struct MPContext *mpctx, struct playlist *pl);
void autoload_external_files(struct MPContext *mpctx);
diff --git a/player/loadfile.c b/player/loadfile.c
index c0888466e8..40ed71d5fd 100644
--- a/player/loadfile.c
+++ b/player/loadfile.c
@@ -143,6 +143,15 @@ static void print_stream(struct MPContext *mpctx, struct track *t)
MP_INFO(mpctx, "%s\n", b);
}
+void print_track_list(struct MPContext *mpctx)
+{
+ for (int t = 0; t < STREAM_TYPE_COUNT; t++) {
+ for (int n = 0; n < mpctx->num_tracks; n++)
+ if (mpctx->tracks[n]->type == t)
+ print_stream(mpctx, mpctx->tracks[n]);
+ }
+}
+
void update_demuxer_properties(struct MPContext *mpctx)
{
struct demuxer *demuxer = mpctx->master_demuxer;
@@ -167,11 +176,7 @@ void update_demuxer_properties(struct MPContext *mpctx)
struct demuxer *tracks = mpctx->track_layout;
if (tracks->events & DEMUX_EVENT_STREAMS) {
add_demuxer_tracks(mpctx, tracks);
- for (int t = 0; t < STREAM_TYPE_COUNT; t++) {
- for (int n = 0; n < mpctx->num_tracks; n++)
- if (mpctx->tracks[n]->type == t)
- print_stream(mpctx, mpctx->tracks[n]);
- }
+ print_track_list(mpctx);
tracks->events &= ~DEMUX_EVENT_STREAMS;
}
if (events & DEMUX_EVENT_METADATA) {