You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

PanamaJack

Trainee

  • "PanamaJack" started this thread

Posts: 71

Location: Sprockhövel, NRW

Occupation: Dipl.-Ing.

  • Send private message

1

Sunday, March 13th 2005, 4:44pm

Stottern beim Umschalten mit analogtv

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.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- 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) {

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
Chieftech BE-01B-SL-B mit ExtensionBoard + LCD + eigene Frontplatte (noch in Arbeit), Siemens DVB-C, PVR-250, Athlon XP 1800, SAMSUNG SV160, Gentoo gentoo-dev-sources-2.6.11

thmu

Trainee

Posts: 140

Location: Ratisbona Bavarese

  • Send private message

2

Sunday, March 13th 2005, 5:51pm

Hallo Lars,

ich würde es ja gern ausprobieren, leider sehen die Zeilen bei meiner Version = 1.3.20 ein wenig anders aus.

Wie würdest du folgenden Code umbauen??


Quoted


#ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3
if (needsBufferReserve) {
if (IsAttached() && !Cleared) {
PlayPes(NULL, 0);
Cleared = true;
}
//XXX For dolby we've to fill the buffer because the firmware does
//XXX not decode dolby but use a PCM stream for transport, therefore
//XXX the firmware has not enough buffer for noiseless skipping early
//XXX PCM samples (each dolby frame requires 6144 bytes in PCM and
//XXX audio is mostly to early in comparison to video).
//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
cCondWait::SleepMs(20); // allow the buffer to collect some reserve
continue;
}
else
GotBufferReserve = true;
}
}
#endif

PanamaJack

Trainee

  • "PanamaJack" started this thread

Posts: 71

Location: Sprockhövel, NRW

Occupation: Dipl.-Ing.

  • Send private message

3

Sunday, March 13th 2005, 6:03pm

Hallo,

Die Variable RequiredBufferReserve wird ab vdr-1.3.21 anstelle der "3 * KILOBYTE(192) / 2" benutzt. Wenn Du also aus den "3 * KILOBYTE(192) / 2" "KILOBYTE(1024)" machst müsste es funktionieren. Ich habe die Änderung aber nur mit vdr-1.3.21 und 1.3.22 ausprobiert. Es gibt also keine Garantie, daß es mit der 1.3.20 auch geht.


Quoted

Original von thmu
Hallo Lars,

ich würde es ja gern ausprobieren, leider sehen die Zeilen bei meiner Version = 1.3.20 ein wenig anders aus.

Wie würdest du folgenden Code umbauen??


Quoted


#ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3
if (needsBufferReserve) {
if (IsAttached() && !Cleared) {
PlayPes(NULL, 0);
Cleared = true;
}
//XXX For dolby we've to fill the buffer because the firmware does
//XXX not decode dolby but use a PCM stream for transport, therefore
//XXX the firmware has not enough buffer for noiseless skipping early
//XXX PCM samples (each dolby frame requires 6144 bytes in PCM and
//XXX audio is mostly to early in comparison to video).
//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
cCondWait::SleepMs(20); // allow the buffer to collect some reserve
continue;
}
else
GotBufferReserve = true;
}
}
#endif
Chieftech BE-01B-SL-B mit ExtensionBoard + LCD + eigene Frontplatte (noch in Arbeit), Siemens DVB-C, PVR-250, Athlon XP 1800, SAMSUNG SV160, Gentoo gentoo-dev-sources-2.6.11

thmu

Trainee

Posts: 140

Location: Ratisbona Bavarese

  • Send private message

4

Sunday, March 13th 2005, 8:24pm

Hallo Lars,

kein Problem, passieren kann ja eh nix.
Ich werde aber erst ab Freitag dazukommen, da ich nächste Woche beruflich unterwegs bin.
Jedenfalls fände ich das äußererst Cool, wenn dadurch das Stottern abzustellen wäre?

Du hast ja gesagt, das du das eigentlich selektiv nur für die analogen Kanäle habe möchtest.
Wieso?? Gibt's mit dieser Einstellung Probleme oder Nebenwirkungen bei den Digitalen, z.B. langsameres Umschalten??

PanamaJack

Trainee

  • "PanamaJack" started this thread

Posts: 71

Location: Sprockhövel, NRW

Occupation: Dipl.-Ing.

  • Send private message

5

Sunday, March 13th 2005, 8:39pm

Hallo,

Quoted

Original von thmu
Du hast ja gesagt, das du das eigentlich selektiv nur für die analogen Kanäle habe möchtest.
Wieso?? Gibt's mit dieser Einstellung Probleme oder Nebenwirkungen bei den Digitalen, z.B. langsameres Umschalten??


Ich habe bis jetzt keine Nebenwirkungen feststellen können. Aber bei den Digitalen Kanälen kommt der Transfermode ja auch nur zum Zuge, wenn die primäre Karte mit einer Aufnahme blockiert ist oder der Kanal eine AC3 Tonspur hat. Und bei Letzterem wurde die BufferReserve ja vorher auch schon bentutzt, allerdings mit einem kleineren Wert.

Gruß
Lars
Chieftech BE-01B-SL-B mit ExtensionBoard + LCD + eigene Frontplatte (noch in Arbeit), Siemens DVB-C, PVR-250, Athlon XP 1800, SAMSUNG SV160, Gentoo gentoo-dev-sources-2.6.11

thmu

Trainee

Posts: 140

Location: Ratisbona Bavarese

  • Send private message

6

Wednesday, March 16th 2005, 9:45am

Hallo Lars,

das geht ja wunderbar!!!!!
Will heissen, keinerlei lästiges Stottern beim Umschalten auf Analog-Kanäle.
Ich habe allerdings den Eindruck, dass der Umschaltvorgang minimal länger dauert.

Trotzdem (vor allem an alle Analog - Gurus, ala Wirbel, OlafHenkel...) ein klasse Tip.

:modon :modon

This post has been edited 1 times, last edit by "thmu" (Mar 16th 2005, 9:46am)


Posts: 2,765

Location: Dormagen (NRW, bei Köln)

Occupation: Bürotippse bei nem Klempner

  • Send private message

7

Wednesday, March 16th 2005, 9:49am

Analog-Guru ?

Tach,

naja, ich und Analog-Guru ? Wenn ich das wäre, würde meine PVR bestimmt besser laufen...lol. Und vor allem würde die auch Radio können :-( Trotzdem danke für's Kompliment.

Da ich immer so nen fauler Laffel bin, was das Tippen betrifft, kann jemand mal nen freundliches Diff machen ? Wobei ich fast glaube, dass das eh mit meinen anderen Diffs und Patchen kollidieren wird.

Trotzdem, ein interessanter Hinweis. Danke dafür !

Greets Olaf
Ollie jetzt auch im Internet !!! ->> www.ohms.ws << VDR mit ASUS A7V8X-X, Athlon XP 2 Ghz, 512 MB DDR-RAM und gentoo 2008.0 Linux, ner Menge Platten (1 TB), 2 Brennern und Karten-Vollausstattung (1 X Nexus 4 MB Mod, 3 x Nova, 1 PVR 350) , TFT/Sony PSOne, Nvidia Graka und und und * Linux - wir geben ihrem Computer das Leben zurück *

thmu

Trainee

Posts: 140

Location: Ratisbona Bavarese

  • Send private message

8

Wednesday, March 16th 2005, 9:57am

RE: Analog-Guru ?

Hallo Olaf,

ich wollts halt mal Los werden (von wegen Aanlog-Guru), da ich dank Euch (vor allem Wirbel und Dir) den Einstieg in die VDR Welt hinbekommen habe.
Gut, ein bischen Linux-Kenntnissen hatte ich schon, aber (ich denke das weist Du wahrscheinlich auch aus eigener Erfahrung) ist gerade unter Verwendung ner PVR die Eigene Leidensfähigkeit (und natürlich auch die der Ehefrau/Partnerin) schon besonders gefordert.
Wie dem auch sei, mittlerweile hab ich so ziemlich alle Spinnerein umgesetzt, und bin (fast !?!) wunschlos glücklich. Also nochmals Dank!

Ansonsten: Ein Diff lohnt sich eigentlich nicht wirklich, da das Tippen der einen Zeile zum einspielen des Patches schon mehr Arbeit ist, als zu editieren. Dauert wirklich blos eine Minute.
Na ja: Vielleicht mach ich ja wirklich einen Diff)

8)

Dr. Seltsam

Im Forum Zuhause

Posts: 9,966

Location: 3. Planet des Sonnensystems

Occupation: Organisator

  • Send private message

9

Saturday, March 26th 2005, 10:25pm

RE: Stottern beim Umschalten mit analogtv

Quoted

Original von PanamaJack
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


ich habe das heute mal beim Umstieg auf vdr-1.3.23 gleich mit reingepatcht, obwohl die PVR250 derzeit noch in einem anderen Rechner knechtet.

o.k., nun also das Kleingedruckte: :D

Der Patch macht das Umschalten bei Budget-Karten (zumindest mit meiner Lorenzen DVB-T) spürbar langsamer. Die Karte lockt ein, die EPG-daten erscheinen bereits, und dann dauert es nochmal 2-3 Sekunden, ehe endlich das Bild kommt. Patch wieder raus, neu kompiliert, und siehe da, jetzt geht es wieder fix.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

10

Saturday, March 26th 2005, 10:45pm

RE: Stottern beim Umschalten mit analogtv

Na ja, wenn die Karte erst einen größeren Speicherbereich füllt, ist das nachvollziehbar. Aber ehrlich gesagt besser als das Stottern.

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

11

Sunday, March 27th 2005, 2:08pm

RE: Stottern beim Umschalten mit analogtv

Hallo PanamaJack, hallo Dr.Seltsam,

könntet ihr bitte mal diesen Patch gegen einen 'nackten' vdr-1.3.23 testen?

Sinn des Patches ist es, die BufferReserve von 1024k zu nutzen, aber eben nur für die analoge CA-ID von 0xA0. Für alle andren Kanäle gilt dann normale Verhalten des Vdr ohne Patch und damit erhöht sich die Umschaltgeschwindigkeit aller anderen Transferprozesse, z.B. DVB-t oder die Kanäle der zweiten/dritten/vierten Karte.
wirbel has attached the following file:

Dr. Seltsam

Im Forum Zuhause

Posts: 9,966

Location: 3. Planet des Sonnensystems

Occupation: Organisator

  • Send private message

12

Monday, March 28th 2005, 7:39pm

RE: Stottern beim Umschalten mit analogtv

ja, das scheint zu funzen!!

Man darf sich natürlich nicht dadurch irritieren lassen, dass das Umschalten bei DVB-T zum Teil ztotzdem lange dauert, weil AC3-Ton übertragen wird. Dann greift die BufferReserve ja auch.

Ich habe gesehen, dass Andreas Kool im CVS den Patch von panamajack schon drin hat. Du solltest ihm Deine verbesserte Version daher unbedingt schicken.

Übrigens ist die 1.3.23 -auch ohne Euren Patch- die erste seit langer Zeit, wo in Verbindung mit einer dxr3 Bild und Ton nicht permanent ruckeln.

Wenn nur die Umschaltzeit allgemein nicht so lang wäre beim analogtv-plugin...
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

13

Monday, March 28th 2005, 7:49pm

RE: Stottern beim Umschalten mit analogtv

Den geänderten Patch hat er schon getestet und der Patch wird demnächst auch im cvs zu finden sein.

-w-

Dr. Seltsam

Im Forum Zuhause

Posts: 9,966

Location: 3. Planet des Sonnensystems

Occupation: Organisator

  • Send private message

14

Wednesday, March 30th 2005, 10:55am

RE: Stottern beim Umschalten mit analogtv

der überarbeitete Patch -mit Hinweis auf Deine Verbesserung- war zwischendurch schon im CVS drin. Heute ist er wieder ganz raus.

Gibt`s neue Erkenntnisse ?
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

15

Wednesday, March 30th 2005, 11:49am

RE: Stottern beim Umschalten mit analogtv

Keine Ahnung, ich hab keine neue Info.

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

16

Thursday, March 31st 2005, 9:03pm

RE: Stottern beim Umschalten mit analogtv

Ist übrigens jetzt als vdr-1.3.23-stuttering.patch Rev1.2 im cvs drin.

gruss wirbel

Dr. Seltsam

Im Forum Zuhause

Posts: 9,966

Location: 3. Planet des Sonnensystems

Occupation: Organisator

  • Send private message

17

Thursday, March 31st 2005, 9:10pm

RE: Stottern beim Umschalten mit analogtv

ja, seit heute wieder. :)
komisch, war die letzten beiden Tage definitiv nicht sichtbar. Vielleicht hatte sourceforge vorübergehend ein altes backup am Netz?
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

PanamaJack

Trainee

  • "PanamaJack" started this thread

Posts: 71

Location: Sprockhövel, NRW

Occupation: Dipl.-Ing.

  • Send private message

18

Thursday, March 31st 2005, 10:15pm

RE: Stottern beim Umschalten mit analogtv

Hallo,

ich habe den von Wirbel verbesserten Patch noch ein bisschen verfeinert. Der Wert von 1024k für die BufferReserve wird nun wirklich nur noch bei den analogen Kanälen verwendet. Bei digitalen Kanälen mit AC3 Ton wird der ursprüngliche Wert von 288k bzw. 576k benutzt. Ich denke mal daß es einen Sinn hatte, daß die BufferReserve für die ursprüngliche Anwendung abhängig von der Speicherausstattung der DVB Karte war :)

Lars
PanamaJack has attached the following file:
Chieftech BE-01B-SL-B mit ExtensionBoard + LCD + eigene Frontplatte (noch in Arbeit), Siemens DVB-C, PVR-250, Athlon XP 1800, SAMSUNG SV160, Gentoo gentoo-dev-sources-2.6.11

wirbel

Im Forum Zuhause

Posts: 9,925

Location: Berlin

  • Send private message

19

Thursday, March 31st 2005, 10:24pm

RE: Stottern beim Umschalten mit analogtv

Über nahezu die gleiche Änderung hatte ich auch nachgedacht.
:D :D :D
Allerdings läuft bei mir vdr besser (bessere Synchronität Bild-Ton), wenn ich *immer* eine gewisse Mindest-Reserve für Transfer-Threads lasse und den Wert für analogtv oder dolbyDigital dann erhöhe. Mag allerdings auch daran liegen, dass mein vdr stets und ständig auf den Transfer angewiesen ist, da Kombi aus analog-dvb-c-dvb-t.

Wie auch immer, danke für die Ursprungsidee. @PanamaJack

gruss wirbel

20

Sunday, April 24th 2005, 8:27pm

RE: Stottern beim Umschalten mit analogtv

Einen schönen Sonntag Abend,

vielleicht könnte mir jemand von euch unter die Arme greifen?

Habe mal nen Threat aufgemacht!

http://www.vdr-portal.de/board/thread.ph…adid=33242&sid=

Vielen Dank und LG

Squaregarden
Silverstone LC11 / Asus P4P800-VM / Celeron 2,53 / 512 MB / 2x250 1x160 GB / PVR350 rev. 991 / Technotrend 2.1 PE DVB-C / IR-Modul / Medion MD41169 / c't VDR: 1.4.3-1ctvdr3
Das Nebensächliche macht riesige Fortschritte. Wir entfernen uns immer weiter vom Wesentlichen.