Beiträge von S:oren

    Ich hatte mir das eigentlich genau umgekehrt gedacht, nämlich daß der VDR den Fernseher steuert. Dann wäre man bei der Wahl der Fernbedienung nämlich wesentlich flexibler.
    Jetzt muß ich auf meiner bevorzugten FB (welche nicht die mit dem TV gelieferte ist) eine Einstellung finden, mit der sowohl der TV als auch VDR steuerbar ist.

    Technisch ist es im Prinzip kein Problem, auch umgekehrt Fernbedienungscodes zu senden. Das muesste halt auch jemand in die Firmware der S2-6400 programmieren, keine Ahnung, welchen Durchgriff powarman da auf die Programmierer hat. Allerdings geht der CEC-Standard davon aus, dass typischerweise der Fernseher die Codes sendet ("This feature is used to pass remote control commands received by one device (typically the TV) through to another device in the network"). Somit bezweifle ich, dass es viele Fernseher gibt, deren Firmware entsprechende Messages auswertet. CEC ist halt ein Standard der Fernseherhersteller, und die koennen sich nicht vorstellen, dass jemand ihre Fernbedienungen nicht mag. Mit der Fernbedienung des Fernsehers funktioniert es jedenfalls 1a und automatisch konfliktfrei. Und man braucht unter keinen Umstaenden eine zweite Fernbedienung.

    Bei mir ist der VDR die zentrale Steuereinheit und der TV lediglich die "Peripherie", die das Bild anzeigt und den Ton wiedergibt.

    Hm, ich empfinde es eher als Vorteil, wenn der vdr ueber das HDMI-Kabel und nicht von einer Infrarotmaus ueber eine separate Strippe gesteuert wird...

    kls: CEC hat sehr viele verschiedene Teilspezifikationen, fuer die S2-6400 wurden zwei davon beworben: OneTouchPlay und RemoteControlPassThrough.
    OneTouchPlay bedeutet, dass ein HDMI-Geraet - hier der vdr - den Fernseher aus Standby einschalten (auch wieder aus ist vorgesehen) und auf den entsprechenden HDMI-Eingang umschalten kann. Das entspricht im Prinzip der entsprechenden Funktionalitaet der analogen Scart-Buchse und ist z.B. dazu gedacht, an einem ueber HDMI angeschlossenen DVD-Player auf Play zu druecken, der Rest passiert dann automatisch. Hier hat die Firmware der S2-6400 einen Bug und schaltet nach dem Einschalten des vdr-Rechners und Aktivieren von CEC im dvbhddevice-Plugin den Fernseher manchmal ohne Nutzerinteraktion ein (von mir ZeroTouchPlay genannt). So weit, so gut, so langweilig. Das ist wohl das, was die meisten Leute bisher unter CEC bei der S2-6400 verstehen.
    Richtig interessant ist aber RemoteControlPassThrough. Hier steuert der Fernseher das HDMI-Geraet (den vdr), wenn der Fernseher fuer die entprechende HDMI-Buchse entsprechend eingestellt ist. Der Fernseher reagiert dann nicht mehr selbst auf die (fast alle) Tasten seiner Fernbedienung und reicht stattdessen die Tastendruecke an den vdr durch. Das ist schnell und funktioniert bereits perfekt mit dem Remote-Plugin. Bei mir reagiert der Fernseher zum Beispiel selbst auf laut/leise - sehr schoen bei AC3-Ton, reicht aber die Zifferntasten, die bunten Tasten, die Richtungstasten und mehrere andere Tasten (z.B. OK) an den vdr durch, genau das, was man braucht. Somit braucht der vdr keinen eigenen IR-Empfaenger mehr, der vdr erscheint als "interner Tuner des Fernsehers mit Zusatznutzen", man braucht nur noch die Fernbedienung des Fernsehers. (auf input-select reagiert der Fernseher natuerlich noch selber, aber wer will schon vom vdr wegschalten :] )
    Zum vollstaendigen Glueck fehlen dann noch zwei Kleinigkeiten: erstens, das Ausschalten des HDMI-Geraets ist nicht Teil von RemoteControlPassThrough, sondern eine eigene CEC-Teilspezifikation namens SystemStandby. Das ist bisher nicht in der Firmware der S2-6400 implemetiert, aber vermutlich einfach einzubauen. Zweitens, das Einschalten des vdr-Rechners auf entsprechenden CEC-Befehl. Das ist nicht in der Hardware der S2-6400 vorgesehen, es ist kein Controller da, der die PCIe-WAKE#-Leitung bedient. Hier plane ich eine eigene Hardwareerweiterung, die das nachruestet. (Hat jemand einen Tipp, auf welchem Pinheader der S2-6400 man das CEC-Signal abgreifen kann?). Weitere Erklaerungen und Details finden sich bereits ab Post 212 in diesem Thread.
    Gruss,
    S:oren

    Hier ist der vor einiger Zeit versprochene patch fuer das dvbhddevice-Plugin zur Konfiguration des Ein- und Ausschaltens des Fernsehers ueber CEC. Der bekannten Skript-Loesung entspricht die Kombination der Optionen "HDMI-CEC nur bei manuellem Start" und "TV ein nur bei manuellem Start". Die Kombination "HDMI-CEC ja" und "TV ein nur bei manuellem Start" schaltet den Fernseher leider gelegentlich auch bei timergesteuertem Start des vdr ein, die Kombination "HDMI-CEC nur bei manuellem Start" und "TV aus ja" schaltet bei timergesteuertem Start des vdr den Fernseher leider nicht aus. Mit dem von mir gewuenschten Firmwarepatch koennte man HDMI-CEC auf uneingeschraenkt ja stellen und TV-ein und TV-aus nach Belieben konfigurieren. Dann wuerde auch CEC-RemoteControlPassThrough immer funktionieren (da CEC ja immer an).
    Der hier vorgestellte patch ist mit vdr-1.7.22 getestet und sollte mit 1.7.23 identisch funktionieren. Der patch darf von mir aus gerne (auch modifiziert) in das offizielle Plugin uebernommen werden - wer verwaltet das eigentlich (powarman, kls,?).


    Gruss,
    S:oren


    dvbhddevice_cec_conf-0.0.1.diff

    Sowas Aehnliches hatte ja lola bereits vorgeschlagen. Dies funktioniert, wenn man ueber CEC nur den Fernseher einschalten will (oder eben nicht), sonst aber eine normale IR-Fernbedienung verwendet. Wenn man den vdr aber ueber CEC-RemoteControlPassThrough bedienen will (und somit nur die Fernseher-Fernbedienung und keinen IR-Empfaenger an der Karte oder irgendwo anders am vdr-Rechner hat), dann ist der vdr mit dieser Variante leider nach einem Timerstart bis zum Neustart nicht mehr bedienbar. Fuer mich macht die Nutzung von CEC vor allem dann Sinn, wenn dadurch der vdr als "interner Tuner des Fernsehers mit Zusatznutzen" erscheint, das Einschalten des Fernsehers vom vdr bringt in dem Zusammenhang nichts, da der Fernseher die primaere Bedieneinheit ist und sowieso zuerst eingeschaltet wird. Das Skript ist somit ohne Frage brauchbar, aber eben die Loesung fuer ein anderes Problem als das, wofuer ich mir den Firmwarefix wuensche.
    Das nur zur Erklaerung, kein Zeichen von Ungeduld. :]

    Vielen Dank powarman fuer die Info, und die Arbeit daran. Ich bin sehr erfreut, dass es hier noch weitergeht. Ich plane eine Fernbedienungs-Einschalt-Platine fuer den VDR-Rechner, die Frage fuer mich war nun eben, ob auf CEC- oder IR-Basis. Wenn der CEC-Firmware-patch noch kommt, warte ich gerne (ein Weilchen ;D ).

    Da mein CEC-Problem es noch nicht in die Liste geschafft hat nochmal die Nachfrage: Sieht irgendwer (powarman, UFO, ?) eine Chance, dass TT (oder wer auch immer) statt des vorhandenen CEC-Zero-Touch-Play das beworbene One-Touch-Play (Ein- und Umschalten des Fernsehers, aber nur auf Anforderung) implementiert? Mit dem input-event-patch von powarman ist das CEC doch so kurz davor, richtig gut benutzbar zu sein. Und ich wuensche mir doch erstmal gar keine zusaetzliche Funktionalitaet, nur eine CEC-Message _weniger_ beim Einschalten...


    Gruss,
    S:oren

    Ein eigenens CEC-Input-Device ist sicher eine gute Sache. Einfacher waere evt., der bisherigen key_map 128 weitere Eintraege zu spendieren und dort die CEC-Codes zu mappen.
    Vorteil bei einem aktiven input device: weniger anfaellig bei Verschiebung der devices (wenn man mal eine Tastatur anschliesst, die es beim Anlernen nicht gab; man kann die Codes ja einfach fuer mehrere Devices eintragen); Vorteil bei zweien: man spart sich das zusammenkopieren separat angelernter remote.conf (oder muss man das trotzdem machen?). In beiden Varianten wuerde man Tastenkollisionen vermeiden. Aber auch die jetzige Implementierung funktioniert gut, wenn man nicht 2 verschiedene Fernbedienungen fuer die gleichzeitige Bedienung des vdr nutzt. (Wer will schon die geteilte Macht auf dem Sofa :] )


    Die gesendeten Codes sind standardisiert (google mal nach "HDMI CEC Supplement", da kommt ein pdf der Version 1.3a, Codes sind in Tabelle 27). Nicht so klar ist, welche Tasten die Fernbedienung des Fernsehers hat und ueber CEC weiterleitet. Die wichtigen Tasten (ok, links, rechts, oben, unten, exit, 0-9, rot, gruen, gelb, blau) sind immer gleich, aber fuer die vdr- Menue-Funktion nehme ich z.B. DisplayInformation (der Fernseher sendet bei keiner Taste einen der Menu-Codes). Zum Glueck ist das remote-plugin da sehr flexibel...

    wer weiß, ob powarman überhaupt Interesse hat, dies zu implementieren. Daher der Einwurf, das es eben jetzt schon möglich wäre.

    Was ist jetzt schon moeglich, eine CEC-Fernbedienung zu benutzen? Das denke ich (oder besser meine Regierung :] ) nicht...

    Ich habe aber trotzdem Hoffnung, das sich bei CEC noch etwas tut. Vielleicht kann CEC in ein eigenes plugin, falls powarman kein Ambitionen hat

    Oh, falls powarman eine generische CEC-Schnittstelle in die Firmware einbaut, die sich z.B. aus einem anderen Plugin nutzen laesst (Senden und Empfangen beliebiger CEC-Messages), dann bin ich sofort dabei. Ich befuerchte nur, das ist viel mehr Aufwand...
    powarman: bitte auf keinen Fall als Gemecker verstehen, ich bin froh ueber alles, was schon geht. Vielen Dank dafuer. Waere eben noch schoener ohne zweite Fernbedienung.

    wenn das geht, bräuchte es doch nur ein Tool, welches dieses auswertet und nach dem Beenden des VDR die setup.conf modifiziert


    Gruß Fr@nk

    Der vdr raet aber beim Start, das wuerde ich verwenden. Das Modifizieren der setup.conf loest mein Problem nicht, da dort das ganze CEC abgeschaltet wird, also auch RemoteControlPassThrough. Wenn der vdr mit einem Timer startet ist er dann bis zum Herunterfahren nicht bedienbar, nicht das, was ich will. Das ganze CEC hat fuer mich ja gerade den Sinn, dass ich keine andere Fernbedienung als die vom Fernseher brauche...

    Mein Punkt scheint noch nicht klar zu sein. Ich habe folgendes beobachtet: Das dvbhddevice-Plugin (aus vdr-1.7.22) sendet beim Start ein mHdffCmdIf->CmdHdmiConfigure(&hdmiConfig); an die Karte. Wenn das hdmiConfig.CecEnabled ist, dann schaltet die Karte den Fernseher ein (vmtl. indem sie ein CEC ImageViewOn sendet). Das passiert aber nur beim ersten Mal nach Einschalten des Rechners (wenn die Karte noch keine CEC LogicalAddress hat?), nicht (immer?) beim Restart des vdr (wo ja auch das dvbhddevice-Plugin neu initialisiert wird und wieder ein CmdHdmiConfigure schickt). Vermutlich deshalb schickt das Plugin nach dem CmdHdmiConfigure ein mHdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON), was dann auf jeden Fall den Fernseher einschaltet, wie der Name schon sagt.
    Mein Wunsch ist nun, dass die Karte _niemals_ beim CmdHdmiConfigure den Fernseher einschaltet, nur beim HDFF_CEC_COMMAND_TV_ON (wenn CEC enabled ist, klar). Dadurch haette ich die Moeglichkeit, das TV_ON aus dem plugin herauszupatchen, der Fernseher wuerde nicht eingeschaltet werden, ich koennte aber nach manuellem Einschalten des Fernsehers CEC RemoteControlPassthrough benutzen. Das ist eine Aenderung, die in der Firmware und nicht im Treiber gemacht werden muss, wenn ich nicht irgendwas im Treiber uebersehen habe.


    @lola: Im vdr+dvbhddevice-plugin koennte man zusaetzlich eine Logik einbauen, die den Fernseher beim manuellen Start des vdr einschaltet, beim automatischen Start fuer eine Timeraufnahme nicht. Das ist mir zwar nicht so wichtig, kann ich aber einen Patch dafuer bauen, wenn allgemeines Interesse besteht und jemand (powarman?) das Zwangseinschalten des Fernsehers nach dem Hochfahren des Rechners fixt. Da ich nur gelegentlich Zugriff auf meinen HD-VDR habe (steht 250km entfernt) waere es gut, wenn sich dann noch jemand zum Testen findet...


    Mein zweiter Wunsch an die Firmware (nicht ganz so wichtig wie der andere) war, dass die Karte/Treiber nicht nur fuer RemoteControlPassThrough (CEC UserControlPressed/UserControlReleased) Input-Events erzeugt, sondern auch ein (irgendwie ohne Kollisionen mit sinnvollen Tasten gemapptes) Event, wenn die Karte ein CEC Standby erhaelt. Dann koennte man mit der SystemStandby-Funktion des Fernsehers den vdr ausschalten. (Das Einschalten gestaltet sich leider nicht so einfach, da TT den Controller zum Monitoring der CEC-Leitung und zum Bedienen der PCIe-WAKE#-Leitung vergessen hat...)

    Die CEC-Keycodes sind jetzt ok. Man kann jetzt zwar nicht mehr (so gut) eine normale Fernbedienung ueber den IR-Eingang der Karte parallel zum CEC-Remote-Passthrough betreiben, aber das ist eh nur zum Testen ganz schoen, sonst aber nicht wichtig.
    Wie sieht es aber mit dem Einschalten des Fernsehers beim Hochfahren der Karte aus, ist da noch eine Aenderung zu erwarten? Die Akzeptanz zu Hause ist gleich Null, wenn der Fernseher beim Start des VDR fuer eine Timeraufnahme mit eingeschaltet wird. So bleibt mir nichts uebrig, als das ganze CEC abzuschalten. Ist klar, was ich meine? Werden weitere Infos zum Debuggen benoetigt?

    Ich habe 2 Nova-TD-Sticks nebeneinander laufen (also 4 DVB-T-Tuner parallel ueber USB). Die beiden Sticks kommen sich dabei nicht in die Quere (nur die beiden Tuner des selben Sticks, aber dafuer habe ich einen Treiber-Patch).
    Das geht also problemlos, aber DVB-T ist natuerlich nicht DVB-S2...

    Aktuell nutze ich das remote-plugin, darüber klappt das sicherlich nicht?

    Das klappt, man muss nur die Fernbedienung neu anlernen, d.h. remote.conf loeschen (umbenennen als Backup), dann vdr neu starten. Die mitgelieferte Fernbedienung der S2-6400 (keine Keycodes ueber 0x40) habe ich sogar gleichzeitig zu der CEC-Fernbedienung nutzen koennen, dazu beide Fernbedienungen getrennt anlernen, dann die beiden remote.conf zu einer hintereinanderhaengen. Keine Garantie, dass das in Zukunft noch funktionieren wird...
    Gruss,
    S:oren

    Solcherlei macht die Firmware nicht, es wird der original code zum PC geschickt verodert mit 0x80000000. Kommen diese Werte so im Treiber an ("REMOTE EVENT: xxx" im syslog bei verbose=3)?

    Diese Werte habe ich als Keycodes mit evtest und im remote-plugin gesehen.


    Mittlerweile habe ich auch die Stellen im Treiber gefunden (saa716x_ff_ir.c):
    "ir->key_map = i+1;" und "if (!(ircom & 0x1000)) data |= 0x40;" Dort ist noch kein CEC-Protokolltyp eingebaut, das ist also kein Problem der Firmware. Leider habe ich gerade keinen Zugriff auf den vdr zum Testen eines Patches.


    Bleiben als Wunsch fuer die Firmware das Nichteinschalten des Fernsehers beim Aufwachen (dafuer gibt es ja bei Bedarf das "mHdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON);" im dvdhdffdevice, was man dann aber auch weglassen kann) und Support fuer CEC SystemStandby.


    Gruss,
    S:oren

    Folgendes Problem habe ich mit einer Philips-Fernbedienung ueber HDMI-CEC:
    die Tasten 'rechts' und 'play/pause' liefern den selben Keycode 69
    die Tasten 'ChannelDown' und 'blau' liefern den selben Keycode 114

    Scheinbar wird in der Firmware zu allen CEC Remote Control Pass Through Message-Codes zuerst eine 1 addiert und dann das Bit 0x40 gesetzt, bevor der Code als Keycode an das input-Device uebergeben wird. Ein einfaches Addieren von 0x40 oder 0x80 wuerde dieses Problem loesen und trotzdem keine (zusaetzlichen?) Kollisionen mit RC5-Codes erzeugen. Oder habe ich 'was uebersehen?

    Ausserdem wuerde ich mich sehr freuen, wenn man die Nutzung von CEC fuer input-events getrennt vom Einschalten des Fernsehers beim VDR-Start einstellen koennte. (Insbesondere das Einschalten des Fernsehers beim Aufwachen fuer eine Timer-Aufnahme finde ich wenig sinnvoll.)

    ich glaube, das war/ist von UFO auch angedacht worden (remote-plugin)
    Gruß Fr@nk

    Leider wird schon beim Aktivieren von CEC im dvbhddevice-plugin der Fernseher eingeschaltet. Da kann das remote-plugin nicht mehr viel machen, denke ich.


    Noch ein Wunsch:
    Bitte auch bei CEC System Standby Messages ein input-event erzeugen.


    Nochmal, am besten gleich mit diesem neuen Post hier als Referenz:
    Copperhead: bitte in die Liste aufnehmen


    Danke,
    S:oren

    Habe ueber Weihnachten einen HD-VDR aufgebaut, die S2-6400 funktioniert wirklich gut, vielen Dank an die Entwickler!


    Folgendes Problem habe ich mit einer Philips-Fernbedienung ueber HDMI-CEC:
    die Tasten 'rechts' und 'play/pause' liefern den selben Keycode 69
    die Tasten 'ChannelDown' und 'blau' liefern den selben Keycode 114


    Vielleicht gibt es dafuer einen Fix in der Firmware.


    Ausserdem wuerde ich mich sehr freuen, wenn man die Nutzung von CEC fuer input-events getrennt vom Einschalten des Fernsehers beim VDR-Start einstellen koennte. (Insbesondere das Einschalten des Fernsehers beim Aufwachen fuer eine Timer-Aufnahme finde ich wenig sinnvoll.)


    Copperhead: bitte in die Liste aufnehmen


    Danke,
    S:oren

    Hallo winni,


    hier ist die versprochene neue Version des vdr.epgsearch-exttimeredit-Patch, damit funktioniert die Timeruebersicht jetzt auch wie gewuenscht. Die Erkennung geloeschter Timer in cMenuTimerItem::Set ist etwas unelegant, vielleicht hat da ja irgendjemand noch eine bessere Idee.


    Im zugehoerigen Patch von epgsearch werden die Timer in cMenuMyEditTimer jetzt direkt programmiert. Die Abhaengigkeit des Timereditmenue-Service von der Setup-Option habe ich drin gelassen, da VDR-Patches ueblicherweise nur in die grossen Patchsammlungen uebernommen werden, wenn sie abschaltbar sind. Kannst Dir ja ueberlegen, ob Du das mit uebernimmst. Die Einrueckungen im Code sind moeglicherweise nicht immer sinnvoll, da ich aus der Mischung von Tabs und Leerzeichen nicht so recht schlau geworden bin.


    Gruss,
    S:oren

    Hallo winni,


    alles klar, fuer Suchtimer ist SVDRP Pflicht.
    Mein Problem mit dem Update der Timeruebersicht haengt mit cMenuMyEditTimer::ProcessKey zusammen. Das wird - falls ich nichts uebersehen habe - immer im Vordergrund-Thread ausgefuehrt (Tastendruecke im OSD-Menue auswerten, wie von Klaus beschrieben). Ich denke, dass man hier also immer die Timer direkt programmieren kann, auch wenn diese Methode ueber das Service-Interface benutzt wird.
    Hast Du etwas dagegen, cMenuMyEditTimer::ProcessKey auf direkte Timerprogrammierung umzustellen? Ich wuerde sonst einen entsprechenden Patch vorbereiten...


    Gruss,
    S:oren