Hallo,
Ich habe möglicherweise eine Lösung für das Problem beim analogtv-Plugin gefunden, daß beim Senderwechsel Bild- und Tonstörungen auftreten. Da ja bei bei der AC3 Wiedergabe ähnliche Probleme bestanden, die mit der BufferReserve im Transfermode behoben wurden, hab ich einfach mal ausprobiert, ob das auch beim analogtv hilft. Und siehe da: Keine Probleme mehr beim Umschalten.
Wäre gut wenn die anderen analogtv-Geplagten daß auch mal ausprobieren könnten. Der folgende Patch aktiviert die BufferReserve im Transfermode grundsätzlich und erhöht auch den Wert für RequiredBufferReserve auf 1024k. Bei kleineren Werten ist zwar eine Verbesserung gegenüber der ungepatchten Version da, aber ganz weg sind die Aussetzer erst bei 1024k.
--- vdr-1.3.22.org/transfer.c 2005-02-19 15:58:43.845022928 +0100
+++ vdr-1.3.22/transfer.c 2005-02-19 16:00:37.981671520 +0100
@@ -20,7 +20,7 @@
{
ringBuffer = new cRingBufferLinear(TRANSFERBUFSIZE, TS_SIZE * 2, true, "Transfer");
remux = new cRemux(VPid, APids, Setup.UseDolbyDigital ? DPids : NULL, SPids);
- needsBufferReserve = Setup.UseDolbyDigital && VPid != 0 && DPids && DPids[0] != 0;
+ needsBufferReserve = true; //Setup.UseDolbyDigital && VPid != 0 && DPids && DPids[0] != 0;
active = false;
}
@@ -68,7 +68,7 @@
int Result = 0;
#ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3
bool GotBufferReserve = false;
- int RequiredBufferReserve = KILOBYTE(DvbCardWith4MBofSDRAM ? 288 : 576);
+ int RequiredBufferReserve = KILOBYTE(1024);
#endif
active = true;
while (active) {
Alles anzeigen
Optimal wäre es natürlich wenn diese Änderungen nur bei einem Kanal vom analogtv-Plugin aktiviert würden. Mir ist aber noch keine Möglichkeit eingefallen, wie man innerhalb von cTransfer::cTransfer oder cTransfer::Action feststellen kann, ob der aktuelle Kanal vom analogtv-Plugin geliefert wird.
Lars