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