audio: drop buffered audio when switching tracks or filters

No reason to wait until the audio has been played. This isn't a problem
with gapless audio disabled, and since gapless is now default, this
behavior might be perceived as regression.

CC: @mpv-player/stable
This commit is contained in:
wm4 2014-07-13 20:07:14 +02:00
parent fb54a1436a
commit ae7228c6a3
2 changed files with 2 additions and 0 deletions

View File

@ -3055,6 +3055,7 @@ static bool reinit_filters(MPContext *mpctx, enum stream_type mediatype)
case STREAM_VIDEO:
return reinit_video_filters(mpctx) >= 0;
case STREAM_AUDIO:
clear_audio_output_buffers(mpctx);
return reinit_audio_filters(mpctx) >= 0;
}
return false;

View File

@ -532,6 +532,7 @@ void mp_switch_track_n(struct MPContext *mpctx, int order, enum stream_type type
uninit |= mpctx->opts->fixed_vo && track ? 0 : INITIALIZED_VO;
uninit_player(mpctx, uninit);
} else if (type == STREAM_AUDIO) {
clear_audio_output_buffers(mpctx);
uninit_player(mpctx, INITIALIZED_AO | INITIALIZED_ACODEC);
} else if (type == STREAM_SUB) {
uninit_player(mpctx, INITIALIZED_SUB);