diff options
Diffstat (limited to 'audio/out/ao_lavc.c')
-rw-r--r-- | audio/out/ao_lavc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/audio/out/ao_lavc.c b/audio/out/ao_lavc.c index 359fbae0fa..9a2df7be22 100644 --- a/audio/out/ao_lavc.c +++ b/audio/out/ao_lavc.c @@ -320,7 +320,6 @@ static int play(struct ao *ao, void **data, int samples, int flags) struct encode_lavc_context *ectx = ao->encode_lavc_ctx; int bufpos = 0; double nextpts; - double pts = ao->pts; double outpts; if (!encode_lavc_start(ectx)) { @@ -328,6 +327,10 @@ static int play(struct ao *ao, void **data, int samples, int flags) return 0; } + double pts = ectx->last_audio_in_pts; + pts += ectx->samples_since_last_pts / ao->samplerate; + ectx->samples_since_last_pts += samples; + size_t num_planes = af_fmt_is_planar(ao->format) ? ao->channels.num : 1; if (flags & AOPLAY_FINAL_CHUNK) { |