Guard audio skip against old PTS values.

This commit is contained in:
Johns 2012-06-27 21:22:25 +02:00
parent 0f62a521f4
commit 6aa8601f7d
2 changed files with 6 additions and 1 deletions

View File

@ -2,6 +2,8 @@ User johns
Date: Date:
Release Version 0.5.1 Release Version 0.5.1
Guard audio skip against old PTS values.
Improved audio skip, after channel switch.
Setup add preview of collapsed tree. Setup add preview of collapsed tree.
Fix bug: dvd plugin times out. Fix bug: dvd plugin times out.
Makes OSD size configurable. Makes OSD size configurable.

View File

@ -3750,9 +3750,12 @@ void AudioVideoReady(int64_t pts)
skip = skip =
pts - 15 * 20 * 90 - AudioBufferTime * 90 - audio_pts + pts - 15 * 20 * 90 - AudioBufferTime * 90 - audio_pts +
VideoAudioDelay; VideoAudioDelay;
#ifdef DEBUG
printf("%dms %dms %dms\n", (int)(pts - audio_pts) / 90, printf("%dms %dms %dms\n", (int)(pts - audio_pts) / 90,
VideoAudioDelay / 90, skip / 90); VideoAudioDelay / 90, skip / 90);
if (1 && skip > 0) { #endif
// guard against old PTS
if (skip> 0 && skip < 2000 * 90) {
skip = (((int64_t) skip * AudioRing[AudioRingWrite].HwSampleRate) skip = (((int64_t) skip * AudioRing[AudioRingWrite].HwSampleRate)
/ (1000 * 90)) / (1000 * 90))
* AudioRing[AudioRingWrite].HwChannels * AudioBytesProSample; * AudioRing[AudioRingWrite].HwChannels * AudioBytesProSample;