Fix bug: audio increments invalid audio PTS.

This commit is contained in:
Johns 2012-02-14 16:03:08 +01:00
parent 5aa826bdb0
commit 4331692ee5
2 changed files with 11 additions and 6 deletions

View File

@ -1,5 +1,6 @@
User johns User johns
Fix bug: audio increments invalid audio PTS.
Fix bug: dvd plugin not working. Fix bug: dvd plugin not working.
Fix bug: used frame-> instead of video_ctx-> for old libav/ffmpeg. Fix bug: used frame-> instead of video_ctx-> for old libav/ffmpeg.

16
audio.c
View File

@ -290,9 +290,11 @@ static int AlsaAddToRingbuffer(const void *samples, int count)
// FIXME: should skip more, longer skip, but less often? // FIXME: should skip more, longer skip, but less often?
} }
// Update audio clock // Update audio clock
AudioPTS += if (AudioPTS != INT64_C(0x8000000000000000)) {
((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * AudioPTS +=
AudioBytesProSample); ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels *
AudioBytesProSample);
}
if (!AudioRunning) { if (!AudioRunning) {
if (AlsaStartThreshold < RingBufferUsedBytes(AlsaRingBuffer)) { 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? // FIXME: should skip more, longer skip, but less often?
} }
// Update audio clock // Update audio clock
AudioPTS += if (AudioPTS != INT64_C(0x8000000000000000)) {
((int64_t) count * 90000) / (AudioSampleRate * AudioChannels * AudioPTS +=
AudioBytesProSample); ((int64_t) count * 90000) / (AudioSampleRate * AudioChannels *
AudioBytesProSample);
}
if (!AudioRunning) { if (!AudioRunning) {
if (OssStartThreshold < RingBufferUsedBytes(OssRingBuffer)) { if (OssStartThreshold < RingBufferUsedBytes(OssRingBuffer)) {