Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: VDR Portal. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

1

Sonntag, 8. Oktober 2006, 16:19

Anpassung des pvr350-Plugins an neue ivtv-Treiber wie im 2.6.18

Von dem Plugin geistern verschiedene Versionen rum:

- letzte offizielle Version ist die 0.0.4pre1.

- diese Version hatte ich mit aktualisierten ivtv-Headern mal etwas aufgefrischt, wodurch das Bild beim Umschalten nicht mehr auf dem letzten Frame einfror, sondern schwarz wurde. Zudem hatte ich die Größe des internen Ringbuffers reduziert, so dass das Umschalten auch etwas schneller ging. Es blieb das Problem, dass das Spulen nur zeitverzögert funktionierte. Diese Version ist als 0.0.4pre1-Dr.Seltsam nach meinem Kenntnisstand inzwischen recht weit verbreitet.

-der Author hatte dann einigen Leuten eine Vorabversion der 0.0.5 zur Verfügung gestellt, mit dem das Spulen einwandfrei klappte, aber das Umschalten nun 4-5 Sek. dauerte. Leider ist der Kontakt inzwischen abgebrochen, ich habe zuletzt keine Antworten mehr erhalten.

Alle drei Versionen sind mit Kernel 2.6.18 bzw. aktuellen ivtv-Treibern nicht mehr lauffähig, da sie direkte Firmware-API-calls verwenden. Das entsprechende IOCTL ist im Treiber inzwischen aber nicht mehr enthalten. Ich habe die Sourcen auf die derzeit (noch) gültigen ivtv-IOCTLs angepasst - wobei auch das nicht von Dauer sein wird, denn die Decoderseite des Treibers wird für die Integration in kernel 2.6.19 oder 2.6.20 demnächst nochmal eine Großbaustelle ...

Nach wie vor nicht vollständig geklärt ist, warum das Umschalten mit den fwapi-calls so schnell geht, mit dem offiziellen IOCTL jedoch so langsam. Es ist definitiv ein Problem des großen ivtv-Buffers, der erstmal gefüllt werden muss. Reduziert man die Buffergröße, so geht das Umschalten schnell, aber es kommt zu Rucklern. Ich habe nun eine Lösung gefunden, mit der sich die Umschaltdauer auf akzeptable 2-3 s reduziert: im ivtv-Treiber habe ich das Clearen des Decoders beim Decoderstop abgeschaltet. Diese Funktion kam erst im 0.3-Entwicklungszweig irgendwann dazu, und ich kann keinerlei Nachteile feststellen, wenn man das wieder entfernt.

Anbei also die Plugin-Sourcen inklusive ivtv-Patch.

Ich möchte bei dieser Gelegenheit auch nochmal auf Konsolen vor der Übernahme durch ivtv-fb schützen - so funktioniert es wirklich! verweisen, falls das untergegangen sein sollte ....
»Dr. Seltsam« hat folgende Datei angehängt:
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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dr. Seltsam« (22. Oktober 2006, 12:55)


Toxic-Tonic

Erleuchteter

Beiträge: 3 648

Wohnort: Mülheim / Ruhr

Beruf: Admin

  • Nachricht senden

2

Montag, 9. Oktober 2006, 13:29

RE: Anpassung des pvr350-Plugins an neue ivtv-Treiber wie im 2.6.18

OK, ich baue das mal ein! Was passiert denn wenn man noch den alten Kernel hat! Sollte man vielleicht den Plugin-Namen ändern?

Gruß

Toxic
Registrierter VDR-User #1275

HW neu: Asrock B75 Pro3 - Pentium G620T - SKYDVB S952
SW neu: YaVDR mit 3.16.3er Kernel ...

3

Montag, 9. Oktober 2006, 18:18

der name ist ja erstmal zweitrangig. Wäre toll wenn sich ein richtiger coder das mal genauer anschauen würde.
Ich benutze bisher noch pvr350 4pre1 version mit patch damit vdr > 1.3.38 läuft. Damit habe gibts keine Verzögerung beim umschalten aber ansonsten 1-2 problemchen (spulen verzögert, sporadische 2sek skips bei wiedergabe von aufnahmen).
Deine Version scheint diese probleme nicht zu haben (muß aber auf das zweite problem bei mir nochmal testen), aber dafür halt die grausame umschaltdauer, fürs zappen nicht wirklich geeignet.

mfg
Server: Seagate Dockstar - Debian Squeeze
Client: Apple TV 2 / Samsung LExxC650
OldOne: Debian Etch - Matrox G450 & SkyStar2

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

4

Montag, 9. Oktober 2006, 19:06

Zitat

Original von uzer
aber dafür halt die grausame umschaltdauer, fürs zappen nicht wirklich geeignet.

hast Du ivtv wie vorgeschlagen gepatcht ?
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

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

5

Montag, 9. Oktober 2006, 19:10

RE: Anpassung des pvr350-Plugins an neue ivtv-Treiber wie im 2.6.18

Zitat

Original von Toxic-Tonic
OK, ich baue das mal ein! Was passiert denn wenn man noch den alten Kernel hat! Sollte man vielleicht den Plugin-Namen ändern?


das Plugin ist abwärtskompatibel zu alten ivtv-Treibern. Wer keine gepatchten ivtv-Treiber hat, wird aber wegen der 4-5s Umschaltzeit enttäuscht sein.

Den Plugin-namen zu ändern möchte ich mir nicht anmaßen. Du kannst ja beide Versionen Kompilieren, entsprechnend umbenennen und einen Softlink per default auf eine der beiden Versionen setzen. Das kann dann jeder leicht entsprechend seines Kernels ändern.
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

6

Montag, 9. Oktober 2006, 19:28

ich hab nichts gepatched und ungefähr gute 3sek umschaltdauer mit ivtv 0.4.7 - Ist da noch ein Hinweis für einen ivtv patch in den sourcen?

Beim orig pvr plugin hab ich ca ne halbe sek.
Server: Seagate Dockstar - Debian Squeeze
Client: Apple TV 2 / Samsung LExxC650
OldOne: Debian Etch - Matrox G450 & SkyStar2

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

7

Montag, 9. Oktober 2006, 20:00

schau mal in den Unterordner patches

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diff -ur ivtv/driver/ivtv-streams.c ivtv-patched/driver/ivtv-streams.c
--- ivtv/driver/ivtv-streams.c	2006-10-08 15:47:19.000000000 +0200
+++ ivtv-patched/driver/ivtv-streams.c	2006-10-08 13:22:26.000000000 +0200
@@ -1438,6 +1438,7 @@
 	ivtv_vapi(itv, CX2341X_DEC_SET_EVENT_NOTIFICATION, 4, 
 		5, 0, 0x04000000, -1);
 
+#if 0
         /* Clear all Buffers */
         clear_bit(IVTV_F_T_DEC_STARTED, &itv->t_flags);
         for (count=0;count < maxcount;count++) {
@@ -1458,6 +1459,7 @@
 				 count, ivtv_buf_fill_lock(st, 0, BUF_USED)); 
 		}
         }
+# endif
 	/* Stop Decoder */
        	if (ivtv_vapi(itv, CX2341X_DEC_STOP_PLAYBACK, 4,
         	/*  0 = last frame, 1 = black */


man braucht nur den Abschnitt "Clear all Buffers" durch eine "if 0-Bedingung" unwirksam machen.
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

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

8

Montag, 9. Oktober 2006, 20:03

Zitat

Original von uzer
Beim orig pvr plugin hab ich ca ne halbe sek.


wobei das nicht 100% sauber funktioniert, da z.T. Pixel beim Umschalten kommen. Da verbleiben Reste im buffer, die noch mit wiedergegeben werden.

Mit Patch ist eine akzeptable Umschaltzeit (ca. 2-3 sek. von DVB-T und noch etwas schneller von analog) bei sauberem Umschalten gegeben
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

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

9

Montag, 9. Oktober 2006, 20:42

und wenn wir schon am Patchen sind:

Das Plugin hatte bisher noch diesen Abschnitt in device.c

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct v4l2_control ctrl;
    int ret;
    memset(&ctrl, 0, sizeof(ctrl));

    ctrl.id = V4L2_CID_IVTV_DEC_PREBUFFER;
    ctrl.value = 0;

    if ( ( ret =ioctl(fd_out, VIDIOC_S_CTRL, &ctrl) ) < 0 ) {
        printf("1: %d\n",ret);
    }

    ctrl.id = V4L2_CID_IVTV_DEC_NUM_BUFFERS;
    ctrl.value = 0;

    if ( ( ret =ioctl(fd_out, VIDIOC_S_CTRL, &ctrl) ) < 0 ) {
        printf("2: %d\n",ret);
    }


Leider sind diese Funktion im ivtv-Treiber auch nicht mehr enthalten, da Hans Verkuil keine Notwendigkeit sieht, an diesen Buffern etwas zu ändern. Ich hab`s daher entfernt. Ich bin mir auch nicht sicher, ob der obenstehende Code überhaupt je etwas bewirkt hat. Erklärt sind diese Decoder-Optionen in ivtv-driver.h nur dürftig:

Quellcode

1
2
	int decbuffers;		/* 0 = 6 buffers, 1 = 9 buffers */
	int prebuffer;		/* 0 = no prebuffer, 1 = enabled, see docs */

Will man das gleiche Verhalten weiterhin haben, muss man in ivtv-drivers.c die Werte auf Null setzen:

Quellcode

1
2
	itv->dec_options.decbuffers = 0;
	itv->dec_options.prebuffer = 0;


Ich habe den Eindruck, als wenn es dann noch einen Tick schneller mit dem Umschalten geht.
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

10

Mittwoch, 11. Oktober 2006, 00:27

ich hab jetzt mal die Patches eingespielt und es geht wirklich was besser.

Allerdings habe ich immer noch diese kurzen Sprünge bei der Wiedergabe von Aufnahmen.

Quellcode

1
ERROR: invalid Count in cRingBuffLinear::Del: 1000

diese Meldung wird dabei im user.log erzeugt.

Kennt die einer?

mfg
Server: Seagate Dockstar - Debian Squeeze
Client: Apple TV 2 / Samsung LExxC650
OldOne: Debian Etch - Matrox G450 & SkyStar2

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

11

Mittwoch, 11. Oktober 2006, 07:58

nee, sowas habe ich noch nie gehabt.
Ist vdr gepatcht (eventuell mit Bigpatch /Livebuffer) ? bei mir läuft vdr nur mit dem liemikuutio-Patch.
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

12

Mittwoch, 11. Oktober 2006, 13:04

jaja, ist gepatched. Und das Problem gibts auch erst seid vdr 1.3.36 oder so - davor hatte ich das auch noch nie gesehn.

Ich probier mal ohne BigPatch.

PS. Welche Bitrate hast du bei pvrinput eingestellt? Ich habe beobachtet das das Problem schlimmer wird, desto niedriger die Bitrate. Bei 8000 tritt es glaube ich gar nicht auf, aber jetzt bei 6000 oder 4500 entsprechend stärker.
Server: Seagate Dockstar - Debian Squeeze
Client: Apple TV 2 / Samsung LExxC650
OldOne: Debian Etch - Matrox G450 & SkyStar2

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »uzer« (11. Oktober 2006, 13:06)


Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

13

Mittwoch, 11. Oktober 2006, 16:10

ich habe meist 6000 genommen.
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

Immortal Romance Spielautomat