Re: VDR -> S2API: 2 questions

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

 



On 22.11.2008 15:47, Klaus Schmidinger wrote:
> On 22.11.2008 14:17, Niels Wagenaar wrote:
>>> -----Oorspronkelijk bericht-----
>>> Van: n.wagenaar@xxxxxxxxx [mailto:vdr-bounces@xxxxxxxxxxx] Namens Niels
>>> Wagenaar
>>> Verzonden: zaterdag 22 november 2008 14:13
>>> Aan: VDR Mailing List
>>> Onderwerp: Re:  VDR -> S2API: 2 questions
>>>
>>> The patch from 7-10 is indeed the latest. There weren't any changes in
>>> S2API in the last weeks, which would or could my VDR/S2API patch.
>>>
>> (Damn Send button!)
>>
>> Which would or could break my VDR/S2API patch ;-)
>>
>> BTW, only DVB-S, DVB-S2 and DVB-T is really tested by me (and with great success). The DVB-C code is theory and untested.
> 
> This part of your patch is a little irritating:
> 
> -     if (ioctl(fd_frontend, DVBFE_GET_DELSYS, &frontendType) >= 0) {
> +//     if (ioctl(fd_frontend, DVBFE_GET_DELSYS, &frontendType) >= 0) {
> +     dvb_frontend_info feinfo;
> +     fe_type fetype;
> +     if (ioctl(fd_frontend, FE_GET_INFO, &feinfo) >= 0) {
> +        fetype =  feinfo.type;
> +        if (fetype == FE_QPSK)
> +            frontendType = SYS_DVBS;
> +        if (fetype == FE_OFDM)
> +            frontendType = SYS_DVBT;
> +        if (fetype == FE_QAM)
> +            frontendType = SYS_DVBC_ANNEX_AC;
> +        if (fetype == FE_ATSC)
> +            frontendType = SYS_ATSC;
> +
>          const char **DeliverySystem = DeliverySystems;
>          cString ds;
> +       cString check;
>          for (int i = 0; i < 32; i++) {
>              if (frontendType & (1u << i)) {
>                 numProvidedSystems++;
> 
> 
> In the multiproto driver, frontendType was a flag variable, where each bit
> indicated the presence of a particular frontend. That way DVB cards with
> different frontends were able to report all the frontend types they
> provide.
> 
> In S2API this is apparently an enum type, so the subsequent flag checking makes
> no sense any more. Or am I missing something?
> 
> How does a DVB device tell the application about its frontend types in S2API?

One more thing:

+       // Following is a hack so that DVB-S cards don't get DVB-S2 transports.
+       // If check has a value and is not NULL, it means that the card can handle
+       // DVB-S2 transports and frontendType is forces to SYS_DVBS2.
+       check = strstr(ds,"DVBS2");
+       if (*check)
+       {
+           isyslog("device %d forced to frontendType SYS_DVBS2\n", CardIndex() + 1);
+          frontendType = SYS_DVBS2;
+       }

How would "DVBS2" ever get into the ds string?
The flag checks are completely bogus, and the explicit setting of frontendType
above only sets SYS_DVBS, and not SYS_DVBS2.

Klaus

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux