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@lug-owl.de> wrote:
On Tue, 2012-11-20 12:37:17 +0330, Ali H.M. Hoseini <alihmh@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@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-----