From 69eb0563339e99a83146d0252478b58e265cba04 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 24 Jul 2014 15:27:31 +0200 Subject: audio: fix timestamps Accidentally broken in b6af44d3. For ad_lavc (and in general), the PTS was not updated correctly when filtering only parts of audio frames, and for ad_mpg123 and ad_spdif the PTS was additionally offset by the frame size. This could lead to incorrect time display, and possibly broken A/V sync. --- audio/decode/dec_audio.c | 1 + 1 file changed, 1 insertion(+) (limited to 'audio/decode/dec_audio.c') diff --git a/audio/decode/dec_audio.c b/audio/decode/dec_audio.c index a090f9a707..38044b4657 100644 --- a/audio/decode/dec_audio.c +++ b/audio/decode/dec_audio.c @@ -262,6 +262,7 @@ static int filter_n_bytes(struct dec_audio *da, struct mp_audio_buffer *outbuf, append.samples = copy; mp_audio_buffer_append(da->decode_buffer, &append); mp_audio_skip_samples(&da->decoded, copy); + da->pts_offset += copy; continue; } error = da->ad_driver->decode_packet(da); -- cgit v1.2.3