How determine DVB-S2 card?

Ali H.M. Hoseini alihmh at gmail.com
Tue Nov 20 12:34:29 CET 2012


Dear Jan-Benedict,

Could you kindly send your complete fe.c, or a patch of it against
getstream in git?
I tried to merge your code in fe.c, but I'm not a c programmer, and it
seems your code section is different from getstream in git.

Best regards.
Ali.

On Tue, Nov 20, 2012 at 2:19 PM, Jan-Benedict Glaw <jbglaw at lug-owl.de> wrote:
> On Tue, 2012-11-20 12:37:17 +0330, Ali H.M. Hoseini <alihmh at gmail.com> wrote:
>> Hi all,
>>
>> I'm using getstream for more than 3 years, and it's a very stable,
>> light and fast program.
>>
>> Now I change my card to Tevii S464 S2 card, but when I use dvb-s2 {
>> tag in my config file, getstream says the card is dvb-s and this
>> option is not supported.
>> I'm sure the card is S2, and I easily scan S2 frequencies with scan-s2.
>>
>> How getstream determines a card is S or S2? and how could change
>> this behavior.
>
> That's probably a bug in fe_api5_checkcap(). I've fixed it locally,
> not sure if that patch is already in Flo's repo.
>
> Basically, you cannot only query an adaptor's delivery system (DVB-S
> vs. DVB-S2) before requesting a specific mode.  That is because there
> might be cards which can actually change their frontend (cut'n'pasted
> from my fe.c):
>
> #if (DVB_API_VERSION>=5)
> static int fe_api5_checkcap(struct adapter_s *adapter) {
>         struct dtv_properties cmds;
>         struct dtv_property prop_set[2] = {
>                 { .cmd = DTV_CLEAR, },
>                 { .cmd = DTV_DELIVERY_SYSTEM, .u.data = adapter->type, },
>         };
>         struct dtv_property prop_get[1] = {
>                 { .cmd = DTV_DELIVERY_SYSTEM, .u.data = adapter->type, },
>         };
>
>         /* First try to set the adapter to the expected mode. Otherwise,
>            some cards may claim to utilize a different delivery system...  */
>         cmds.props = prop_set;
>         cmds.num = ARRAY_SIZE(prop_set);
>         if (ioctl(adapter->fe.fd, FE_SET_PROPERTY, &cmds) < 0) {
>                 logwrite(LOG_ERROR, "fe: ioctl FE_SET_PROPERTY failed (setting frontent type) - %s", strerror(errno));
>         }
>
>         /* Now request FE type.  */
>         cmds.props = prop_get;
>         cmds.num = ARRAY_SIZE(prop_get);
>         if (ioctl(adapter->fe.fd, FE_GET_PROPERTY, &cmds)) {
>                 logwrite(LOG_DEBUG, "fe: ioctl(FE_GET_PROPERTY) failed - no API 5 support?");
>                 return 0;
>         }
>         logwrite(LOG_ERROR, "fe: Adapter %d is an adapter of type %d ", adapter->no, (int)prop_get[0].u.data);
>
>
>
> Hth, JBG
>
> --
>       Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
> Signature of:               http://www.eyrie.org/~eagle/faqs/questions.html
> the second  :
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEARECAAYFAlCrYDEACgkQHb1edYOZ4btVawCfdTaKyRqj0S7EPcLNa/F+X18j
> AbUAniIZwUxhJidBYw6VaVDLTGrIMTeB
> =UkVI
> -----END PGP SIGNATURE-----
>


More information about the Getstream mailing list