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.

1

Montag, 7. Juni 2004, 22:17

vdr-tvtime.pl - vdr ueber tvtime steuern

Hi,

wer tvtime im Einsatz hat, hat sich potentiell auch schonmal gewuenscht direkt aus tvtime
heraus den VDR steuern zu koennen (wie z.B. bei kvdr). Da tvtime einen Slave-Modus
unterstuetzt ist dies auch machbar, und ich hab mich einfach mal daran versucht.

Ueber Rueckmeldungen wuerde ich mich latuernich freuen, zumal ich noch nicht lange
getestet hab :)

For our english-speaking friends:
This is vdr-tvtime.pl, an addon for tvtime and vdr to make it possible to
controll vdr from the tvtime window.

EDIT: neuere version weiter unten...

cu
gonz

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »gonz« (3. August 2004, 21:05)


2

Dienstag, 8. Juni 2004, 00:11

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

Hi,

ich wurde ein paar mal gefragt was tvtime ist. tvtime ist ein Fernseh-Programm fuer X11 - aehnlich wie xawtv, kvdr, etc... Im Unterschied zu den genannten Programmen bringt tvtime mannigfaltige Deinterlacing-Features mit, die die Bildqualitaet auf PC-Monitor oder -TFT deutlich erhoehen.

Ihr findet es auf http://tvtime.sourceforge.net/.

cu
gonz

3

Sonntag, 27. Juni 2004, 06:12

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

Hi,

hat das eigentlich wer mal ausprobiert, oder benutzt keiner tvtime ?
nur so interessehalber :)

cu
gonz

Beiträge: 2 805

Wohnort: Landkreis Dahme-Spreewald (LDS)

  • Nachricht senden

4

Sonntag, 27. Juni 2004, 17:00

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ronnykornexl« (27. Oktober 2005, 10:58)


5

Sonntag, 27. Juni 2004, 19:13

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

Die Idee ist sehr gut, leider bei mir ist die Qualität des Video nicht so gut wie xawtv, und ich kann tvtime nicht immer starten :

Running tvtime 0.9.12.
Reading configuration from /etc/tvtime/tvtime.xml
Reading configuration from /home/greg/.tvtime/tvtime.xml
videoinput: Can't get tuner info: Invalid argument
videoinput: Can't get tuner info: Invalid argument

Cannot allocate enough off-screen video memory. This may be fixed by:

1. Closing or restarting large X applications.
2. Lowering the input width of tvtime (--inputwidth parameter).
3. Lowering your colour depth or highest configured resolution.
4. Increasing the amount of video memory in your X config file
(for example, if you are using the i810 XFree86 driver.)

See http://tvtime.net/ for more information.


Cannot allocate enough off-screen video memory. This may be fixed by:

1. Closing or restarting large X applications.
2. Lowering the input width of tvtime (--inputwidth parameter).
3. Lowering your colour depth or highest configured resolution.
4. Increasing the amount of video memory in your X config file
(for example, if you are using the i810 XFree86 driver.)

See http://tvtime.net/ for more information.

Thank you for using tvtime.
DEBUG: tvtime exited.

Ich glaube tvtime kann gut werden, aber zur Zeit ist es zu jung :)
Grégoire

6

Montag, 28. Juni 2004, 04:29

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

Zitat

Original von ronnykornexl

Ja, ist extrem "lahm".

MFG Ronny


Hi Ronny,

das ist leider prinzipbedingt, es muss halt fuer jede einzelne Taste svdrpsend.pl
gefeuert werden, und das laesst sich halt gerne mal feiern...

cu
gonz

7

Montag, 28. Juni 2004, 04:32

RE: vdr-tvtime.pl - vdr ueber tvtime steuern

Hi Grégoire,

Zitat

Original von Grégoire
Die Idee ist sehr gut, leider bei mir ist die Qualität des Video nicht so gut wie xawtv, und ich kann tvtime nicht immer starten :


Richtig interessant ist tvtime halt bei Sendungen die Interlaced ausgestrahlt werden, und mindestens bei denen ist die Qualitaet bei mir gleich um Groessenordnungen besser.

Zitat


DEBUG: tvtime exited.

Ich glaube tvtime kann gut werden, aber zur Zeit ist es zu jung :)


Kann es sein, dass Du wenn es nicht geht eine andere Anwendung offen hast, die XV verwendet ?

Ich kann z.B. tvtime auch nicht starten, wenn bereits mplayer laeuft. Ansonsten funktioniert es bei mir 100% stabil im 24/7 Betrieb.

cu
gonz

Tyger

Schüler

Beiträge: 107

Wohnort: Bielefeld

Beruf: Softwareentwickler

  • Nachricht senden

8

Sonntag, 1. August 2004, 17:56

Ich finde das Script sehr nützlich, aber die langen Reaktionszeiten sind tatsächlich sehr störend. Ich habe ein wenig experimentiert und herausgefunden, daß man die Reaktionszeiten auf normales "Fernbedienungs-Nivau" heben kann, indem man die svdrpsend.pl-Funktionalität direkt in das vdr-tvtime-Skript integriert. Dann genügt es, den Socket zum vdr nur einmal zu Öffnen und wiederzuverwenden. Dadurch werden die Reaktionszeiten beträchtlich erhöht.

Ein Problem stellt allerdings der 'timeout' dar, der zwar abgefangen werden kann, allerdings weiss ich nicht, wie er zustande kommt bzw. man ihn vernünftig behandelt.

Cya, Ed

Tyger

Schüler

Beiträge: 107

Wohnort: Bielefeld

Beruf: Softwareentwickler

  • Nachricht senden

9

Sonntag, 1. August 2004, 19:13

Mein Timeout-Problem scheint serverseitig zu sein: der VDR weigert sich einfach, auf die Verbindung auf Port 2001 zu antworten. Ich habe versucht, via telnet auf den VDR zuzugreifen und habe auch damit keinen Zugriff erhalten. Wenn man allerdings lange genug wartet, meldet sich der VDR schliesslich doch noch.

Ich hab Gonz' Skript entsprechend angepasst, ist aber nur ein kleiner Hack und als proof of concept zu verstehen. Die map.txt bekommt man z.B. aus Gonz' Paket.

Cya, Ed

Tyger

Schüler

Beiträge: 107

Wohnort: Bielefeld

Beruf: Softwareentwickler

  • Nachricht senden

10

Sonntag, 1. August 2004, 22:53

Da ich offenbar zu blöd bin, das File hochzuladen ("Upload failed! Please check the file's specifications!"), kommt meine modifizierte Version halt im Klartext. Ab und an dauert es ein bisschen, bis der VDR auf die Tasten reagiert, das liegt IMHO aber an der Art, wie der VDR den Socket ausliest, naemlich nur in bestimmten Abstaenden, wenn er grad nichts anderes zu tun hat. Eine Implementation mit Threads waere da responsiver, aber auch von enormem Aufwand.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/perl
use Socket;

$tvtime    = '/usr/bin/tvtime --slave';
$tvtimecmd = '/usr/bin/tvtime-command';
$mapfile   = '/etc/tvtime/map.txt';
$svdrpsend = '/usr/bin/svdrpsend.pl';

my %mapped;
my $timeout = 0;

open(IN, "<$mapfile") || die "cannot open mapfile: $mapfile";
while(<IN>)
{
  chomp;
  my @line = split( /\t/, $_ );
  $mapped{$line[0]} = $line[1];
}
close(IN);

$Dest = "127.0.0.1";
$Port = 2001;
$| = 1;

open(IN, "$tvtime|") || die "cannot open pipe";
MainLoop();

sub MainLoop ()
{
  print STDOUT "DEBUG Mainloop\n";

  do {
    OpenSocket();
    while(<IN>)
    {
      chomp;
      next if /^\0$/;
      if ( $mapped{$_} eq "" ) { $mapped{$_} = $_ }

      if ( $mapped{$_} =~ /TVTIME_/)
      {
        $cmd = $mapped{$_};
        $cmd =~ s/TVTIME_//;
        SendTvtime($cmd);
      }
      else
      {
        SendKey($mapped{$_});
      }
    }
  } while (TimeOut);
  Send("quit");
  close(SOCK)                                 || Error("close: $!");
  close(IN);

  print "DEBUG: tvtime exited.\n";
}

sub TimeOut
{
  print STDOUT "TIMEOUT $timeout\n";
  if ($timeout) {$timeout = 0; return 1;}
  return 0;
}

sub SendTvtime
{
system("$tvtimecmd KEY_EVENT $cmd")
}

sub Send
{
  my $cmd = shift || Error("no key to send");
  print SOCK "HITK $cmd\n";
  Receive();
}

sub SendKey
{
  my $cmd = shift || Error("no key to send");
  print SOCK "HITK $cmd\n";
  Receive();
}

sub OpenSocket
{
  $iaddr = inet_aton($Dest)                   || Error("no host: $Dest");
  $paddr = sockaddr_in($Port, $iaddr);
  $proto = getprotobyname('tcp');

  close(SOCK);
  socket(SOCK, PF_INET, SOCK_STREAM, $proto)  || Error("socket: $!");
  connect(SOCK, $paddr)                       || Error("connect: $!");
  select(SOCK) || Error ;
  $| = 1;
  Receive();
}

sub Receive
{
  while (<SOCK>)
  {
    if ( $_ =~ /^221/)
    {
      print STDOUT "timeout detected\n";
      $timeout = 1;
      OpenSocket();
      return;
    }
    print STDOUT $_;
    last if substr($_, 3, 1) ne "-";
  }
}

sub Error
{
  print STDERR "@_\n";
  close(SOCK);
  exit(0);
}



EDIT: Hab den Code nochmal modifiziert: Befehle fuer den tvtime koennen nun ebenfalls in map.txt definiert werden. Z.B:
f TVTIME_f
v TVTIME_v
fuer Fullscreen und Stay-on-Top.

Cya, Ed

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Tyger« (2. August 2004, 02:28)


Tyger

Schüler

Beiträge: 107

Wohnort: Bielefeld

Beruf: Softwareentwickler

  • Nachricht senden

11

Dienstag, 3. August 2004, 01:20

Hab noch ein bisschen gebastelt und nun eine stabile Version hinbekommen. Das Skript hält die SVDRP-Verbindung konstant aufrecht, indem es in regelmässigen Abständen ein Ping (bzw. ein HELP) über die Leitung schickt. Dafür sollte man die Variable $timeout auf einen Wert knapp unterhalb des Timeouts im VDR stellen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/perl
use Socket;
use Time::HiRes qw(setitimer ITIMER_VIRTUAL);

$tvtime    = '/usr/bin/tvtime --slave';
$tvtimecmd = '/usr/bin/tvtime-command';
$mapfile   = '/etc/tvtime/map.txt';
$svdrpsend = '/usr/bin/svdrpsend.pl';
$timeout = 250;

my %mapped;

open(IN, "<$mapfile") || die "cannot open mapfile: $mapfile";
while(<IN>)
{
  chomp;
  my @line = split( /\t/, $_ );
  $mapped{$line[0]} = $line[1];
}
close(IN);

$Dest = "127.0.0.1";
$Port = 2001;
$| = 1;

open(IN, "$tvtime @ARGV |") || die "cannot open pipe";
OpenSocket();

# keep alive
$SIG{ALRM} = sub { SendVDR("HELP"); };
setitimer(ITIMER_PROF, $timeout, $timeout);

$tvtimealive = 1;
while($tvtimealive)
{
  chomp($key=<IN>);
  printf(STDOUT "Key $key %d\n", ord($key));
  next if $key =~ /^\0$/;

  if ( ord($key) == 0 )
  {
    $tvtimealive = 0;
    next;
  }

  if ( $mapped{$key} eq "" ) { $mapped{$key} = $key }
  if ( $mapped{$key} =~ /TVTIME_/)
  {
    $cmd = $mapped{$key};
    $cmd =~ s/TVTIME_//;
    SendTvtime("KEY_EVENT $cmd");
  }
  else
  {
    SendVDR("HITK $mapped{$key}");
  }
}

SendVDR("quit");
close(VDRSOCK) || Error("close: $!");
close(IN);

print STDOUT "DEBUG: tvtime exited.\n";
exit(0);

sub SendTvtime
{
  $cmd = shift || Error("no key to send");
  system("$tvtimecmd $cmd")
}

sub SendVDR
{
  my $cmd = shift || Error("no key to send");
  print VDRSOCK "$cmd\n";
  Receive();
}

sub OpenSocket
{
  $iaddr = inet_aton($Dest) || Error("no host: $Dest");
  $paddr = sockaddr_in($Port, $iaddr);
  $proto = getprotobyname('tcp');

  socket(VDRSOCK, PF_INET, SOCK_STREAM, $proto) || Error("socket: $!");
  connect(VDRSOCK, $paddr) || Error("connect: $!");
  select(VDRSOCK) || Error ;
  $| = 1;
  Receive();
}

sub Receive
{
  while (<VDRSOCK>)
  {
    if ( $_ =~ /^221.*timeout/)
    {
      print STDOUT "timeout detected\n";
      OpenSocket();
      return;
    }
    print STDOUT "$_";
    last if substr($_, 3, 1) ne "-";
  }
}

sub Error
{
  print STDERR "@_\n";
  close(VDRSOCK);
  exit(0);
}


Nicht der sauberste Code, aber meine aktiven Perltage liegen schon ein paar Jahre zurück...

Cya, Ed

12

Dienstag, 3. August 2004, 19:26

supercool!

13

Dienstag, 3. August 2004, 20:19

Hi,

ich hab mal ein neues Paket geschnuert und die README etc. updated.
Tyger: Gut gemacht! - Lust das "Projekt" zu uebernehmen ?

cu
Gonz

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gonz« (3. August 2004, 21:03)


14

Dienstag, 3. August 2004, 21:03

argl, glatt die map.txt vergessen gehabt...
»gonz« hat folgende Datei angehängt:

marco

Profi

Beiträge: 1 000

Wohnort: BaWü

Beruf: System Engineer

  • Nachricht senden

15

Freitag, 27. August 2004, 00:43

hi gonz,

beim Aufruf von vdr-tvtime.pl bekomme ich die fogelnde Fehlermeldung:

Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/lib/perl5/5.8.3/i386-linux-thread-multi /usr/lib/perl5/5.8.3 /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./vdr-tvtime.pl line 4.
BEGIN failed--compilation aborted at ./vdr-tvtime.pl line 4.

habe mal die Zeile: use Time::HiRes qw(setitimer ITIMER_VIRTUAL);
auskommentiert, aber dann stürzt tvtime nach einer Zeit mit der Meldung ab:

Running tvtime 0.9.12.
Reading configuration from /etc/tvtime/tvtime.xml
Reading configuration from /root/.tvtime/tvtime.xml
videoinput: Can't get tuner info: Das Argument ist ungültig
videoinput: Can't get tuner info: Das Argument ist ungültig
videoinput: Can't mute card. Post a bug report with your
videoinput: driver info to http://tvtime.net/
videoinput: Include this error: 'Das Argument ist ungültig'
220 gecko SVDRP VideoDiskRecorder 1.3.12; Fri Aug 27 00:40:40 2004
Undefined subroutine &main::setitimer called at ./vdr-tvtime.pl line 34, <VDRSOCK> line 1.
Gruß Marco

HW: TeVii S471 S/S2, TT6400-S2
SW: Fedora 25, kernel-4.8.12-300.fc25.x86_64, vdr-2.2.0-10.fc25.x86_64

16

Freitag, 27. August 2004, 02:24

Time/Hires

Hi marco,

da Du Fedore Core 2 zu benutzen scheinst hab ich mal ganz frech nach "fedora core 2 Time/HiRes.pm" gegoogelt und der erste Treffer verriet mir schonmal, dass da ein "perl-Time-HiRes-1.55-2 RPM for i386" existiert und es unter ftp://fr2.rpmfind.net/linux/fedora/core/…1.55-2.i386.rpm heruntergeladen werden kann...

Evtl. war es auch bei deiner Distribution dabei :)

Viel Erfolg!

cu
gonz

marco

Profi

Beiträge: 1 000

Wohnort: BaWü

Beruf: System Engineer

  • Nachricht senden

17

Freitag, 27. August 2004, 10:31

RE: Time/Hires

Danke, das wars, hat fkt.
Gruß Marco

HW: TeVii S471 S/S2, TT6400-S2
SW: Fedora 25, kernel-4.8.12-300.fc25.x86_64, vdr-2.2.0-10.fc25.x86_64

marco

Profi

Beiträge: 1 000

Wohnort: BaWü

Beruf: System Engineer

  • Nachricht senden

18

Freitag, 27. August 2004, 12:50

RE: Time/Hires

Hallo gonz,

ich da noch eine Frage,
in der map.txt versuche ich gerade für die Ok-Taste, Return zu
definieren, aber das klappt nicht.
Was muß ich eintragen, damit die Bestägung einer Anwahl mit Return klappt.
Gruß Marco

HW: TeVii S471 S/S2, TT6400-S2
SW: Fedora 25, kernel-4.8.12-300.fc25.x86_64, vdr-2.2.0-10.fc25.x86_64

MR42HH

Fortgeschrittener

Beiträge: 438

Wohnort: Schleswig-Holstein

Beruf: Ingenieur Verfahrenstechnik

  • Nachricht senden

19

Freitag, 27. August 2004, 13:10

Ähm, mal für jemanden, der gerne mal tvtime ausprobieren würde (wegen Plasma und fiesen Störstreifen in der dvbshop.tv Geschichte)

Was heißt "direkt bedienen" Heißt das, wenn ich tvtime ohne diese bewundernswerte Skript-Akrobatik installiere, daß dann meine (LIRC-) Fernbedienung nicht mehr geht?

Und hat jemand von Euch tvtime auf der nativen Auflösung eines Plasma laufen?

Gruß,

Mirko

mein VDR:
Siemens Gigaset 740AV, Buffalo Linkstation NAS
in meiner Bastelkiste:
2x Activy 300, 1x MediaPortal mit GLCD, 1x Fujitsu-Siemens Jetson, 1xDVB-C Rev.2.1, Airstar2, neue Nova-T, Linksys NSLU2, defekte 2300C

20

Samstag, 28. August 2004, 22:35

RE: Time/Hires

hi marco,

um mit Return ein "Ok" an den VDR weiterzugeben reicht es (denk ich)
in der map.txt die Zeile

Quellcode

1
End   Ok

durch

Quellcode

1
Enter Ok


zu ersetzen :)

cu
gonz

Immortal Romance Spielautomat