Der IgorPlugUSB ist mit lirc leider spürbar langsamer als mit dem usbremote Plugin.
Das hat mich genervt, und daher habe ich den lircd ähnlichen Server igord geschrieben, der schön schnell ist.
Beiträge von jrie
-
-
Mit lirc reagiert der IgorPlugUSB leicht verzögert und läuft leicht nach. Das usbremote Plugin reagiert ohne erkennbare Verzögerung absolut “knackig“. igord vereint die Vorteile von beiden, es ist sehr schnell und als lirc-Ersatz universeller und robuster als ein Plugin.
igord pollt den Puffer des IgorPlugUSB, verarbeitet die Puls/Pause-Längen zu RC5 Codes, die dann in Keys und counts übersetzt werden, und schickt diese über einen Socket an den Clienten (z.B. VDR oder xbmc). Also genauso wie lircd, nur spürbar schneller.
Je nach Bedarf müssen Code/Key/Remote Zeilen eingegeben und die Längen von Key, Remote und map angepasst werden. Zum Testen werden die auskommentierten printf´s aktiviert. Dann wird igord kompiliert, man startet igord und irw und kann die Funktion beobachten.
Falls die RC5 Codes noch nicht bekannt sind, hilft igord beim Auslesen.
Für den produktiver Betrieb werden die beiden printf´s wieder auskommentiert, und igord läuft im Hintergrund:
/Pfad/igord &In der setup.conf habe ich
RcRepeatDelay = 250
RcRepeatDelta = 100Benutzt eigentlich außer mir noch jemand noch den IgorPlugUSB?
-
"The Release 340 drivers will continue to support these products until April 1, 2016", für die nächsten zwei Jahre ist alles gut.
-
Was hast du denn für eine Grafikkarte, ist sie relativ schwach?
Mir fallen die "decoder render too slow" auf. -
Bisher hat es kurz nach jeder diesbezüglichen Änderung im VDR im Heimatforum des weihnachtlichen Herren entsprechende Patche gegeben, mit denen er in bester Qualität mit VDR kooperiert.
-
SantaClaus ist mit 2.1.5 endgültig tot
Totgesagte leben länger -
Einträge in der channels.conf mit RID = 1 werden bei mir auf OBSOLETE gesetzt, dieselben Einträge mit RID = 0 sind nicht OBSOLETE.
-
Welche Version hast du denn?
-
Ihr fummelt ja immernoch mit dem Relikt vergangener Zeiten rum.
Funktioniert denn das Neue mittlerweile so gut wie das Alte? -
Hab gerade zwei WDR HD Köln Aufnahmen von August 2012 getestet, die laut checkts und naludump fehlerfrei sind.
Der framedetectortest zeigt 14 und 18.Edit: zum bequemen WDR HD Aufnahmen finden:
-
Von Arte HD, WDR HD und Das Erste HD habe ich Aufnahmen mit 6 (DVB-S2).
-
Damit der Trickspeed in Reinhard Nißl's vdr-xine Plugin wieder richtig funktioniert, benutze ich diesen Patch:
Diff
Alles anzeigendiff -ruN vdr-2.1.3/dvbplayer.c vdr-2.1.3a/dvbplayer.c --- vdr-2.1.3/dvbplayer.c 2013-03-08 14:44:19.000000000 +0100 +++ vdr-2.1.3a/dvbplayer.c 2013-12-25 14:24:07.000000000 +0100 @@ -324,7 +324,7 @@ int sp = (Speeds[nts] > 0) ? Mult / Speeds[nts] : -Speeds[nts] * Mult; if (sp > MAX_VIDEO_SLOWMOTION) sp = MAX_VIDEO_SLOWMOTION; - DeviceTrickSpeed(sp, playDir == pdForward); + DeviceTrickSpeed(sp, false); } }
Edit: Statt vdr ist es wohl besser vdr-xine zu ändern:Diff
Alles anzeigendiff -Nru xine-a/xineDevice.c xine-b/xineDevice.c --- xine-a/xineDevice.c 2013-01-18 15:55:51.000000000 +0100 +++ xine-b/xineDevice.c 2014-01-10 15:30:03.254256728 +0100 @@ -300,19 +300,14 @@ //#endif } - void cXineDevice::TrickSpeed(int Speed) - { - TrickSpeed(Speed, false); - } - - void cXineDevice::TrickSpeed(int Speed, bool IBP) + void cXineDevice::TrickSpeed(int Speed, bool Forward) { f = false; ts = Speed; xfprintf(stderr, "TrickSpeed: %d\n", Speed); m_xineLib.execFuncTrickSpeedMode(lastCmdWasClear); - m_xineLib.execFuncSetSpeed(100.0 / Speed * (IBP ? 12 : 1)); + m_xineLib.execFuncSetSpeed(100.0 / Speed); m_xineLib.execFuncWait(); m_xineLib.freeze(false); m_xineLib.pause(false); diff -Nru xine-a/xineDevice.h xine-b/xineDevice.h --- xine-a/xineDevice.h 2013-01-18 15:55:51.000000000 +0100 +++ xine-b/xineDevice.h 2014-01-10 15:46:29.290199807 +0100 @@ -50,8 +50,7 @@ virtual bool CanReplay(void) const; virtual bool SetPlayMode(ePlayMode PlayMode); virtual bool HasIBPTrickSpeed(void); - virtual void TrickSpeed(int Speed, bool IBP); - virtual void TrickSpeed(int Speed); + virtual void TrickSpeed(int Speed, bool Forward); virtual void Clear(void); virtual void Play(void); virtual void Freeze(void);
-
Danke für die Hilfe. Ich weiss jetzt, dass es kaum machbar ist, dem Fehler auf die Spur zu kommen, daher habe ich aufgegeben und bin auf lirc umgestiegen.
Wenn man lirc_igorplugusb mit sample_rate=20 startet und
RcRepeatDelay = 350
RcRepeatDelta = 100
setzt, sollte das dem usbremote, das
_polldelay = 50; // ms
_repeatdelay = 350; // ms
_repeatfreq = 100; // ms
benutzt, entsprechen.Frohe Weihnachten!
-
Der Fehler ist tatsächlich schon mal ohne Tastendruck aufgetreten, aber die letzte Meldung davor lag 13 Minuten zurück (da hatte der vdr die pids von einem Kanal geändert).
Welche Header, und welcher Treiber? Muss ich nach einem Kernel Update das usbremote Plugin neu bauen? Geht es um usb.h?
-
Wie könnte ich herausfinden, warum der Zeiger plötzlich kaputt ist? Ich habe keine Ahnung von so was.
Wenn ich das richtig verstehe, führt dein Patch statt zu einem Segfault zu einer Fehlermeldung (und es würde nicht mehr auf die Fernbedienung reagieren), oder?Ich könnte auch mal lirc ausprobieren, beim letzten Mal (lange her) war aber usbremote viel besser als lirc.
gda: Hast du da praktische Erfahrung, dass der Igorplug jetzt mit lirc sehr gut läuft? -
Der STV6110A ist laut Datenblatt für RF Eingangspegel von -65 bis zu –25 dBm ausgelegt.
Also vielleicht mal das Signal probeweise dämpfen? -
Also das Signal ist mit -17dBm bei weitem stark genug. Aber was ist mit SNR?
-
vdr-usbremote-1.0.0 und vdr-usbremote-2.0.0
Und danke, dass du da reinschaust. -
Vdr und die Plugins wurden lokal in einem Rutsch gebaut.
Woran siehst du das mit dem Speicher, und was kann ich da noch debuggen?
Das Plugin hat früher jahrelang tadellos funktioniert, aber von Februar 2013 bis jetzt hatte ich an 6 Tagen diese Segfaults. Ich bin alle Änderungen durch gegangen, aber kann es nicht wirklich zuordnen. -
Was zeigt femon mit dem Patch neu3 von hier? Und ich meine nicht im Fehlerfall, sondern im Normalfall. Wäre interessant zu sehen, wieviel Reserve da noch ist. Also SNR und STR.