Mailing List archive

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

[linux-dvb] number of filters



Andrej Jouravlev writes:
 > Is it possible to setup more then 256 filters?
 > I am trying to obtain  _raw TS_  by set all possible filters.
 > The question - is it possible to setup 0x1fff number of filters?
 > 
 > When i am trying to do this - i receive "too many open files" error.
 > But i cannot understand why:


The number of filters for the Nova cards is currently limited to 256.
Since these are software filters you can of course change this
to anything you want (as your memory permits) in dvb.c in dvb_register().

A simple hack to give you the full TS without having to allocate 16384
filters would be to uncomment the commented out lines in
dvb_demux.c in function DvbDmxSWFilterPackets() and set a filter 
on PID 0x1fff.
But I just realize this will give you the packets of PID 0x1fff
(these can only be filler packets) twice. 

So, better change this to something like:

void
DvbDmxSWFilterPackets(dvb_demux_t *dvbdmx, const u8 *buf, int count)
{
        dvb_demux_feed_t *dvbdmxfeed;
	u16 pid;

        for (; count>0; count--, buf+=188) {
	        pid=ts_pid(buf);
		if (pid!=0x1fff &&
		    (dvbdmxfeed=dvbdmx->pid2feed[pid]))
                        DvbDmxSWFilterPacketType(dvbdmxfeed, buf);
                if ((dvbdmxfeed=dvbdmx->pid2feed[0x1fff]))
		        DvbDmxSWFilterPacketType(dvbdmxfeed, buf);
	}
}



Ralph


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index