diff options
author | Johns <johns98@gmx.net> | 2012-06-27 21:22:25 +0200 |
---|---|---|
committer | Johns <johns98@gmx.net> | 2012-06-27 21:22:25 +0200 |
commit | 6aa8601f7d0734f3088b0a5bac26d4e86db85f32 (patch) | |
tree | 61cc6007e3857c21dcdb63c84dd02edc0ec97ec0 | |
parent | 0f62a521f41a44212507539a2417c28f74169491 (diff) | |
download | vdr-plugin-softhddevice-6aa8601f7d0734f3088b0a5bac26d4e86db85f32.tar.gz vdr-plugin-softhddevice-6aa8601f7d0734f3088b0a5bac26d4e86db85f32.tar.bz2 |
Guard audio skip against old PTS values.
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | audio.c | 5 |
2 files changed, 6 insertions, 1 deletions
@@ -2,6 +2,8 @@ User johns Date: Release Version 0.5.1 + Guard audio skip against old PTS values. + Improved audio skip, after channel switch. Setup add preview of collapsed tree. Fix bug: dvd plugin times out. Makes OSD size configurable. @@ -3750,9 +3750,12 @@ void AudioVideoReady(int64_t pts) skip = pts - 15 * 20 * 90 - AudioBufferTime * 90 - audio_pts + VideoAudioDelay; +#ifdef DEBUG printf("%dms %dms %dms\n", (int)(pts - audio_pts) / 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) / (1000 * 90)) * AudioRing[AudioRingWrite].HwChannels * AudioBytesProSample; |