From: Jaroslav Kysela Date: Tue, 8 Dec 2015 10:10:55 +0000 (+0100) Subject: linuxdvb: always create a tuner even without delsys info X-Git-Tag: v4.2.1~1344 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36e42e6996fb5f7afb92798f6aa0e157b87dd988;p=thirdparty%2Ftvheadend.git linuxdvb: always create a tuner even without delsys info --- diff --git a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c index 3e12ac035..464fe586f 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c @@ -297,7 +297,7 @@ linuxdvb_adapter_add ( const char *path ) int save = 0; dvb_fe_type_t type; #if DVB_VER_ATLEAST(5,5) - int delsys; + int delsys, fenum, type5; dvb_fe_type_t fetypes[DVB_TYPE_LAST+1]; struct dtv_property cmd; linuxdvb_frontend_t *lfe; @@ -380,25 +380,29 @@ linuxdvb_adapter_add ( const char *path ) /* Create frontend */ #if DVB_VER_ATLEAST(5,5) memset(fetypes, 0, sizeof(fetypes)); - for (j = 0; j < cmd.u.buffer.len; j++) { + for (j = fenum = 0; j < cmd.u.buffer.len; j++) { delsys = cmd.u.buffer.data[j]; if ((delsys = linuxdvb2tvh_delsys(delsys)) == DVB_SYS_NONE) continue; /* Invalid */ - if ((type = dvb_delsys2type(delsys)) == DVB_TYPE_NONE) + if ((type5 = dvb_delsys2type(delsys)) == DVB_TYPE_NONE) continue; /* Couldn't find */ - if (fetypes[type]) + if (fetypes[type5]) continue; /* Create */ linuxdvb_frontend_create(feconf, la, i, fe_path, dmx_path, dvr_path, - type, dfi.name); - fetypes[type] = 1; + type5, dfi.name); + fetypes[type5] = 1; + fenum++; } + if (fenum == 0) + linuxdvb_frontend_create(feconf, la, i, fe_path, dmx_path, dvr_path, + type, dfi.name); #else linuxdvb_frontend_create(feconf, la, i, fe_path, dmx_path, dvr_path, type, dfi.name); #endif