diff options
author | wm4 <wm4@nowhere> | 2014-10-23 18:31:43 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-10-23 18:31:43 +0200 |
commit | c9234d769df83b7280f68f9dc24445029f84041a (patch) | |
tree | 450904d51303eedfec45acdd448fcbd689a54aad /player/misc.c | |
parent | 809fbc6fc1e862ab2dfcfcceeb65d7382d8b51e9 (diff) | |
download | mpv-c9234d769df83b7280f68f9dc24445029f84041a.tar.bz2 mpv-c9234d769df83b7280f68f9dc24445029f84041a.tar.xz |
player: fix exiting if both audio and video fail initializing
The player was supposed to exit playback if both video and audio failed
to initialize (or if one of the streams was not selected when the other
stream failed). This didn't work; for one this check was missing from
one of the failure paths. And more importantly, both checked the
current_track array incorrectly.
Fix these issues, and move the failure handling code into a common
function.
CC: @mpv-player/stable
Diffstat (limited to 'player/misc.c')
-rw-r--r-- | player/misc.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/player/misc.c b/player/misc.c index 81b80a1948..5355e23f41 100644 --- a/player/misc.c +++ b/player/misc.c @@ -179,6 +179,24 @@ void update_window_title(struct MPContext *mpctx, bool force) } } +void error_on_track(struct MPContext *mpctx, struct track *track) +{ + if (!track) + return; + mp_deselect_track(mpctx, track); + if (track) { + if (track->type == STREAM_AUDIO) + 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]) + mpctx->stop_play = PT_NEXT_ENTRY; + mpctx->error_playing = true; + mpctx->sleeptime = 0; + } +} + void stream_dump(struct MPContext *mpctx) { struct MPOpts *opts = mpctx->opts; |