From 4331692ee5b915e588910d62b6b9244d56c9ab8c Mon Sep 17 00:00:00 2001 From: Johns Date: Tue, 14 Feb 2012 16:03:08 +0100 Subject: [PATCH] Fix bug: audio increments invalid audio PTS. --- ChangeLog | 1 + audio.c | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 24679b5..debacf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ User johns + Fix bug: audio increments invalid audio PTS. Fix bug: dvd plugin not working. Fix bug: used frame-> instead of video_ctx-> for old libav/ffmpeg. diff --git a/audio.c b/audio.c index 5d470f6..f7c208a 100644 --- a/audio.c +++ b/audio.c @@ -290,9 +290,11 @@ static int AlsaAddToRingbuffer(const void *samples, int count) // FIXME: should skip more, longer skip, but less often? } // Update audio clock - AudioPTS += - ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * - AudioBytesProSample); + if (AudioPTS != INT64_C(0x8000000000000000)) { + AudioPTS += + ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * + AudioBytesProSample); + } if (!AudioRunning) { if (AlsaStartThreshold < RingBufferUsedBytes(AlsaRingBuffer)) { @@ -1275,9 +1277,11 @@ static int OssAddToRingbuffer(const void *samples, int count) // FIXME: should skip more, longer skip, but less often? } // Update audio clock - AudioPTS += - ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * - AudioBytesProSample); + if (AudioPTS != INT64_C(0x8000000000000000)) { + AudioPTS += + ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * + AudioBytesProSample); + } if (!AudioRunning) { if (OssStartThreshold < RingBufferUsedBytes(OssRingBuffer)) {