Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: VDR and DVB-C



Klaus Schmidinger wrote:
> 
> I'm getting an increasing number of inquiries regarding the use of
> VDR with a DVB-C card. Since I don't have cable myself I was wondering
> if somebody with a DVB-C card could try the following with VDR
> (available at http://www.cadsoft.de/people/kls/vdr/download.htm):
> 
> - load the driver and check whether you get a picture and sound
>   (if not, the channel settings in your cable are different from
>   what the driver sets as default, so you'll have to find out
>   the frequency, symbol rate, VPID and APID settings yourself).
> - create a 'channels.conf' with the following content:
> 
>   Test1:394:h:0:6900:610:620:0:0
>   Test2:394:h:0:6900:610:620:0:0
> 
> - start VDR
> - in VDR's Setup menu change both LNB frequencies to 0
> - switch between the two channels (they both have the same settings,
>   this is just to make VDR actually call the SetChannel function).
> - if you get a picture and sound, try recording and playback
> 
> Please let me know what happens.
> 
> Klaus

nothing ;-)

But with a slight Modification of dvbapi.c switching of channels is
possible.

bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char
Polarization, 
                         int Diseqc, int Srate, int Vpid, int Ap{
  ...  
     front.fec       = 8;
     front.AFC       = 1;

     front.qam       = 2;

     ioctl(videoDev, VIDIOCSFRONTEND, &front);
     if (front.sync & 0x1F == 0x1F) {
  ...

I used a constant value for qam, but I think it would be better placed
in channels.conf. If you are willing to support the DVB-cable, you can
find in DVB/libdvb/DVB.cc code how this can be achieved. There is a
ChannelSet-subroutine, which is similar to yours. In DVB/libdvb/stest.c
you can find a program to scan channels. I used it (with a litte
correction) to scan for channels with my DVB-c. Afterwards I converted
the generated list with a small perl-script to a channels.conf:

#!/usr/bin/perl
# Name:Freq in MHz:h:0:SRATE/1000:VPID:APID:0:0
# Test1:394:h:0:6900:110:120:0:0
# Test2:394:h:0:6900:610:620:0:0
 
use strict;
 
my $name        = "";
my $freq        = 0;
my $srate       = 0;
my $vpid        = 0;
my $apid        = 0;
my $ca          = 0;
 
while (<>) {
  chomp;
 
  if (/^\s*TRANSPONDER/) {
 
    ($freq)     = /FREQ\s+(\d+)/;
    ($srate)    = /SRATE\s+(\d+)/;
 
  } elsif (/^\s*CHANNEL.+NAME\s+\"(.+)\"/) {
 
    $name       = $1;
    $name       =~ s/\206//g;
    $name       =~ s/\207//g;
    $name       =~ s/\005//g;
    ($vpid)     = /VPID\s+([\da-fA-F]+)/;
    ($apid)     = /APID\s+([\da-fA-F]+)/;
    ($ca)       = /TYPE\s+(\d+)/;
 
    print "$name:", $freq/1000000, ":h:0:", $srate/1000, ":",
          hex($vpid), ":", hex($apid), ":$ca:0\n";
  }
} 

The resulting channels.conf worked (switching and recording), but I
couldn't test everything (encrypted channels). If somebody is interested
in this file I can post it on this list.

Han-Peter
                                                                                                                                                                                           
-- 
Hans-Peter Raschke      E-Mail:
Hans-Peter.Raschke@Wintermann-DatenService.de
Wintermann DatenService Tel.:   +49 441 9304064
Langenweg 16            Fax:    +49 441 9304069
D-26125 Oldenburg


--- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index