Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: VDR-1.3.19 : DD-Audio stuttering when switching betweenPro7 and Sat1



From the discussions that have been mentioned about this issue and my issues with particular DD Decoders, the consensus was possibly due to a ring buffer issue. Well Cym seemed to find the area that is in question, and we experimented with a patch. This has made a 99% improvement, just by doubling the ring buffer. I have had 1 and ONLY 1 instance of a brief stutter since, and I am sure if I increased it a little more it might fix that but hesitant to change any more till I notice a major problem. So try as you might, thanks a ton goes out to Cym for finding the area and Christian I believe is who came up with the thought. But I am definately running standard memory on my FF card, I have not upgraded it.

diff -ruN vdr-1.3.20/transfer.c vdr-1.3.20.transfer/transfer.c
--- transfer.c 2005-02-08 08:28:38.000000000 -0600
+++ transfer.c 2005-02-08 08:36:42.000000000 -0600
@@ -80,7 +80,7 @@
//XXX To resolve this, the remuxer or PlayPes() should synchronize
//XXX audio with the video frames. 2004/09/09 Werner
if (!GotBufferReserve) {
- if (ringBuffer->Available() < 3 * KILOBYTE(192) / 2) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here
+ if (ringBuffer->Available() < 3 * KILOBYTE(384) / 2) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here
cCondWait::SleepMs(20); // allow the buffer to collect some reserve
continue;
}


Good Luck,

Chad


Klaus Schmidinger wrote:

christian jacobsen wrote:

Hallo,

I noticed that when enabling DD on Pro7 and then switching directly to Sat1 then audio is stuttering. If I switch to Pro7, then RTL2 and then Sat1 then DD sound is OK (have to wait for picture to come on RTL2).
All tests on Vanilla VDR 1.3.19 !

How to reproduce (always wait for picture and sound) :
1. start on RTL.
2. swith to sat1, then RTL2 and Pro7.
3. Enable DD in Audiomenü (on Pro7)
4. switch directly to Sat1 (press 5 on my channels.conf)

Now sound is stuttering on my maschine.

If I do this instead :

4. switch to RTL2
5. switch to Sat1

Sound is OK.

Here the channels.conf for this test :
Das Erste;ARD:11837:hC34:S19.2E:27500:101:102=deu:104:0:28106:1:1101:0
ZDF;ZDFvision:11954:hC34:S19.2E:27500:110:120=deu,121=2ch;125=dd:130:0:28006:1:1
079:0
NDR FS MV;ARD:12110:hC34:S19.2E:27500:2401:2402=deu:2404:0:28224:1:1073:0
RTL Television,RTL;RTL World:12188:hC34:S19.2E:27500:163:104=deu:105:0:12003:1:1
089:0
SAT.1;ProSiebenSat.1:12480:vC34:S19.2E:27500:1791:1792=deu;1795=deu:34:0:46:133:
33:0
RTL2;RTL World:12188:hC34:S19.2E:27500:166:128=deu:68:0:12020:1:1089:0
ProSieben;ProSiebenSat.1:12480:vC34:S19.2E:27500:255:256=deu;257=deu:32:0:898:13
3:33:0

Greetings
Christian Jacobsen

I tried this here but had no such effect.
But then again I'm already a little further than 1.3.19, so please
try this again with version 1.3.20.

Klaus




diff -ruN vdr-1.3.20/transfer.c vdr-1.3.20.transfer/transfer.c
--- transfer.c	2005-02-08 08:28:38.000000000 -0600
+++ transfer.c	2005-02-08 08:36:42.000000000 -0600
@@ -80,7 +80,7 @@
            //XXX To resolve this, the remuxer or PlayPes() should synchronize
            //XXX audio with the video frames. 2004/09/09 Werner
            if (!GotBufferReserve) {
-              if (ringBuffer->Available() < 3 * KILOBYTE(192) / 2) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here
+              if (ringBuffer->Available() < 3 * KILOBYTE(384) / 2) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here
                  cCondWait::SleepMs(20); // allow the buffer to collect some reserve
                  continue;
                  }

Home | Main Index | Thread Index