From 2c320fb609dde644bcfa3389e6a2664baa38ee2b Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 28 Oct 2014 19:51:44 +0100 Subject: player: add an option to abort playback on partial init failures This is probably what libmpv users want; and it also improves error reporting (or we'd have to add a way to communicate such mid-playback failures as events). --- player/client.c | 1 + player/loadfile.c | 2 +- player/misc.c | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'player') diff --git a/player/client.c b/player/client.c index 2308555a1e..8e2bc4d1b7 100644 --- a/player/client.c +++ b/player/client.c @@ -417,6 +417,7 @@ mpv_handle *mpv_create(void) mpv_set_option_string(ctx, "input-appleremote", "no"); mpv_set_option_string(ctx, "input-media-keys", "no"); mpv_set_option_string(ctx, "input-app-events", "no"); + mpv_set_option_string(ctx, "stop-playback-on-init-failure", "yes"); } else { mp_destroy(mpctx); } diff --git a/player/loadfile.c b/player/loadfile.c index 440b29d6a9..b68926f507 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -1091,7 +1091,7 @@ goto_reopen_demuxer: ; struct demuxer *d = mpctx->demuxer; MP_FATAL(mpctx, "No video or audio streams selected.\n"); if (d->stream->uncached_type == STREAMTYPE_DVB) { - int dir = mpctx->last_dvb_step; + int dir = mpctx->last_dvb_step; if (demux_stream_control(d, STREAM_CTRL_DVB_STEP_CHANNEL, &dir) > 0) mpctx->stop_play = PT_RELOAD_DEMUXER; } diff --git a/player/misc.c b/player/misc.c index c178ec7b39..6ddbc31f52 100644 --- a/player/misc.c +++ b/player/misc.c @@ -189,8 +189,9 @@ void error_on_track(struct MPContext *mpctx, struct track *track) MP_INFO(mpctx, "Audio: no audio\n"); if (track->type == STREAM_VIDEO) MP_INFO(mpctx, "Video: no video\n"); - if (!mpctx->current_track[0][STREAM_AUDIO] && - !mpctx->current_track[0][STREAM_VIDEO]) + if (mpctx->opts->stop_playback_on_init_failure || + (!mpctx->current_track[0][STREAM_AUDIO] && + !mpctx->current_track[0][STREAM_VIDEO])) { mpctx->stop_play = PT_ERROR; if (mpctx->error_playing >= 0) -- cgit v1.2.3