From 073b2becfe009262356a56e9369f34d842a43b4c Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Wed, 16 Jul 2014 15:08:06 +0200 Subject: ao_lavc: Fix design of audio pts handling. There was confusion about what should go into audio pts calculation and what not (mainly due to the audio push thread). This has been fixed by using the playing - not written - audio pts (which properly takes into account the ao's buffer), and incrementing the samples count only by the amount of samples actually taken from the buffer (unfortunately this now forces us to keep the lock too long for my taste). --- player/audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'player') diff --git a/player/audio.c b/player/audio.c index a63b847a75..d0f78b3643 100644 --- a/player/audio.c +++ b/player/audio.c @@ -264,7 +264,7 @@ static int write_to_ao(struct MPContext *mpctx, struct mp_audio *data, int flags ao_get_format(ao, &out_format); mpctx->ao_pts = pts; #if HAVE_ENCODING - encode_lavc_set_audio_pts(mpctx->encode_lavc_ctx, mpctx->ao_pts); + encode_lavc_set_audio_pts(mpctx->encode_lavc_ctx, playing_audio_pts(mpctx)); #endif if (data->samples == 0) return 0; -- cgit v1.2.3