mirror of
https://github.com/mpv-player/mpv
synced 2025-01-01 20:32:13 +00:00
audio: restore old speed change behavior
Don't attempt to resync after speed changes. Note that most other cases
of audio reinit (like switching tracks etc.) still resync, but other
code paths take care of setting the audio_status accordingly.
This restores the old behavior of not trying to fix audio desync, which
was probably changed with commit 261506e3
.
Note that the code as of now wasn't even entirely correct, since the A/V
sync values are slightly shifted. The dsync depends on the audio buffer
size, so a larger buffer size will show more extreme desync. Also see
mplayer2 commit 213a224e, which should fixed this - it was not merged
into mpv, because it disabled audio for too long, resulting in a worse
user experience. This is similar to the issue this commit attempts to
fix.
Fixes: #1042 (probably)
CC: @mpv-player-stable
This commit is contained in:
parent
7c0a5698eb
commit
f9f436a490
@ -111,8 +111,6 @@ void reinit_audio_chain(struct MPContext *mpctx)
|
||||
|
||||
mp_notify(mpctx, MPV_EVENT_AUDIO_RECONFIG, NULL);
|
||||
|
||||
mpctx->audio_status = STATUS_SYNCING;
|
||||
|
||||
if (!(mpctx->initialized_flags & INITIALIZED_ACODEC)) {
|
||||
mpctx->initialized_flags |= INITIALIZED_ACODEC;
|
||||
assert(!mpctx->d_audio);
|
||||
|
@ -166,6 +166,8 @@ static int mp_property_playback_speed(void *ctx, struct m_property *prop,
|
||||
switch (action) {
|
||||
case M_PROPERTY_SET: {
|
||||
opts->playback_speed = *(double *) arg;
|
||||
if (opts->playback_speed == orig_speed)
|
||||
return M_PROPERTY_OK;
|
||||
// Adjust time until next frame flip for nosound mode
|
||||
mpctx->time_frame *= orig_speed / opts->playback_speed;
|
||||
if (mpctx->d_audio)
|
||||
|
Loading…
Reference in New Issue
Block a user