summaryrefslogtreecommitdiffstats
path: root/player/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/audio.c')
-rw-r--r--player/audio.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/player/audio.c b/player/audio.c
index 306df086ab..b66952c53c 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -403,8 +403,7 @@ static bool get_sync_samples(struct MPContext *mpctx, int *skip)
ao_get_format(mpctx->ao, &out_format);
double play_samplerate = out_format.rate / opts->playback_speed;
- bool is_pcm = !AF_FORMAT_IS_SPECIAL(out_format.format); // no spdif
- if (!opts->initial_audio_sync || !is_pcm) {
+ if (!opts->initial_audio_sync) {
mpctx->audio_status = STATUS_FILLING;
return true;
}
@@ -438,7 +437,8 @@ static bool get_sync_samples(struct MPContext *mpctx, int *skip)
return true;
}
- *skip = -ptsdiff * play_samplerate;
+ int align = af_format_sample_alignment(out_format.format);
+ *skip = (-ptsdiff * play_samplerate) / align * align;
return true;
}