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 :