Project

General

Profile

Actions

Bug #698

open

DVB Aktivierung nach SetIdle

Added by Anonymous about 13 years ago. Updated almost 13 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
09/04/2011
Due date:
% Done:

0%

Estimated time:

Description

Es ist nur ein DVB Device vorhanden. Ein Sundtek USB Device.

Das System wird wie folgt gestartet:

vdr -d --lirc -l 3.6 \
-P"sc" \
-P"xineliboutput --local=none --audio=alsa:hw:0,3 -f
--video=vdpau --post=tvtime:method=use_vo_driver --remote=37890" \
-P"fepg" \
-P"text2skin" \
-P"nordlichtsepg" \
-P"dynamite"

Nach dem Start läuft alles sauber und mittels
/opt/bin/mediaclient --lc
sieht man das vdr zum Device connected ist.

Das Device wird idle gesetzt mittels:
[12:56:51][mts@srv:~]$ svdrpsend plug dynamite setIdle
/dev/dvb/adapter0/frontend0
220 srv SVDRP VideoDiskRecorder 1.7.18; Wed Aug 31 12:57:32 2011; UTF-8
900 device /dev/dvb/adapter0/frontend0 is idle
221 srv closing connection

Im vdr Log sind folgende Meldungen:
Aug 31 12:58:50 srv vdr: [11657] connect from 127.0.0.1, port 54756 - accepted
Aug 31 12:58:50 srv vdr: [11657] dynamite: set device
/dev/dvb/adapter0/frontend0 to idle
Aug 31 12:58:50 srv vdr: [12209] TS buffer on device 1 thread ended
(pid=11657, tid=12209)
Aug 31 12:58:50 srv vdr: [12208] buffer stats: 162808 (3%) used
Aug 31 12:58:50 srv vdr: [12208] receiver on device 1 thread ended
(pid=11657, tid=12208)
Aug 31 12:58:50 srv vdr: [12207] section handler thread ended
(pid=11657, tid=12207)
Aug 31 12:58:50 srv vdr: [11657] switching to channel 11
Aug 31 12:58:50 srv vdr: [12216] section handler thread started
(pid=11657, tid=12216)
Aug 31 12:58:50 srv vdr: [12217] receiver on device 1 thread started
(pid=11657, tid=12217)
Aug 31 12:58:50 srv vdr: [11657] closing SVDRP connection
Aug 31 12:58:51 srv vdr: [12218] TS buffer on device 1 thread started
(pid=11657, tid=12218)
Aug 31 12:58:51 srv vdr: [12217] [xine..put] Detected video size 720x576

Es ist keine Verbindung zu einem frontend oder ähnliches vorhanden.
Woher das Umschalten kommt, ist nicht nachvollziehbar.
Ein DetachDevice funktioniert, allerdings beendet sich irgendwann vdr weil es ja das primäre DVB Device ist.

Martin


Files

suspendoutput-1.0.1_svdrp.patch (1.71 KB) suspendoutput-1.0.1_svdrp.patch Martin1234, 09/07/2011 05:45 PM
Actions #1

Updated by lhanisch about 13 years ago

Es sieht so aus, als ob der vdr selbst dafür sorgt, dass wieder ein Kanal eingestellt wird. Ich bin am Überlegen, ob ich nicht ein dummydevice-Plugin baue, mit dem man auf einen "leeren" Kanal schalten kann, so dass der vdr denkt, er empfängt was, aber es wird einfach nichts angezeigt.
Oder du versuchst es mit dem suspendoutput-Plugin, das könnte vielleicht auch helfen.

Ich schau mir das alles bei Gelegenheit noch mal an.

Actions #2

Updated by Martin1234 about 13 years ago

Ich habe mir das suspendoutput-Plugin angeschaut aber dies ist derzeit nicht praktikabel und habe es auch nicht auf funktionalität getestet.
So wie ich das verstanden habe, kann ich im Plugin nur einen Timer einstellen wann es auf suspend geht. Wenn ich Zeit finde guck ich mir das Plugin am Wochenende noch einmal an und versuche svdrp Kommandos zu implementieren.
Dann könnte man vdr auf suspend setzen und anschließend das DVB Device auf idle.

Martin

Actions #3

Updated by Martin1234 about 13 years ago

Habe für das Suspendoutput Plugin einen kleinen Patch erstellt der 2 svdrp Kommandos hinzufügt (Suspend, Resume) um das Plugin durch ein script zu steuern.
Damit funktioniert es.
Erst suspende ich mittels suspendoutput und anschließend setzte ich das Device Idle.
Wenn ich Umschalte oder ein Timer greift dann "wacht" der vdr auch wieder vollständig auf.

Aber das Grundproblem bleibt natürlich ...

Actions #4

Updated by lhanisch about 13 years ago

Aber erst mal schön, dass es für dich eine Lösung gibt.

Bisher kümmer ich mich nur um einzelne Geräte, die abgeschaltet werden können. Aber den vdr im ganzen zu "idlen", ist etwas, bei dem ich vorsichtig vorgehen muss. Aber danke für den Patch, ich werde mal sehen, was sich da machen lässt.

Actions #5

Updated by meister-lampe almost 13 years ago

Hallo.

Erstmal danke für dieses tolle Plugin. Ich besitze ebenfalls nur ein Receiver und nutze den Patch von Martin.
Ich möchte nun aber noch einen Schritt weiter gehen. Ich habe mir ein kleines Programm geschrieben, welches über einen Arduino die Steckdose des USB-Receivers an/aus schalten kann. Sobald SetIdle ausgelöst wird, schaltet sich auch die Steckdose wie gewünscht ab. Das Problem, SetNotIdle benötigt ja das Gerät, was in diesem Moment nicht verfügbar ist. Sondern erst nachdem das SetIdleHook-Script mit --idle=off ausgeführt wurde. Was aber nicht passiert, weil das Gerät eben nicht verfügbar ist. Gibt es diesbezüglich eine Lösung?

Gruß,
meister-lampe

Actions #6

Updated by lhanisch almost 13 years ago

Moin!

Ich überlege mal, ob ich bei "NotIdle" zuerst das Programm aufrufe und dann den Status des Devices ändere.
Aber eigentlich ist das Idle in deinem Fall nicht das richtige, da der vdr/dynamite davon ausgeht, dass er "sehr schnell" ein Device wieder aus dem Idle-Zustand holen kann. Für meinen Geschmack gehst du also irgendwie "einen Schritt zu weit".

Wird eigentlich der Treiber automatisch entladen bei Stromabschaltung? D.h. /dev/dvb/adapter0 ist dann ganz weg?
Das bedeutet dann ja auch, dass der Receiver von dynamite auch "detached" wurde (vorausgesetzt, du benutzt eine aktuelle Version, das "Auto-Detach bei USB-Unplug" ist irgendwann in den letzten Wochen entstanden). Da der vdr dann nicht mehr davon ausgehen kann, dass das Ding überhaupt noch verbunden ist und es wieder reaktivierbar ist.

Du musst das Einschalten der Box also irgendwie anders triggern. Es gibt die Klasse cStatus im vdr, da sind ganz viele virtuelle Methoden drin, die aufgerufen werden, wenn irgendwas besonderes im vdr passiert (Kanalwechsel usw.). Darauf müsstest du reagieren und deine Box wieder einschalten. Dann wird automatisch der Treiber geladen und dann bekommt dynamite das über udev automatisch mit und "attached" das DVB-Device wieder. Dann kann es auch vom vdr wieder benutzt werden.
So ein Status-Plugin ist schnell geschrieben, da ist glaub ich auch ein Beispiel in den vdr-Sourcen.

Ich hoffe, ich habe deinen Fall richtig verstanden. :-)

Actions

Also available in: Atom PDF