Recommendations for DVB-T2 USB tuner (for use with Pi 4 running TVHeadend)

Not a USB/PiHat answer, but the NEC "EMMA" chipset used in Topfield/Humax? PVRs have a "filter" where you can specify which streams you want the hardware to decode and push across. Normally, it would be programmed to supply the data/video/audio streams for the channel you are interested in, which are buffered and shovelled to disk -- but there was a "proof of concept" TAP for Topfield PVRs that reprogrammed the filter, so that the filters were opened wide, to allow recording the WHOLE mux to disk at once.

It required some equivalent interference in the playback of the .REC file which contained multiple video/audio streams -- now suddenly the filters need to be loaded to screen out the unwanted data coming from disk, on playback!

As the Topfield is twin-tuner, that meant in theory, recording two entire muxes to disk was possible at a hardware level, without overtaxing the CPU at all.

So it does seem to be a hardware feature, going back some years, to at least attempt to throttle the amount of data being flung around.

--
--------------------------------------+------------------------------------ 
Mike Brown: mjb[-at-]signal11.org.uk  |    http://www.signal11.org.uk
Reply to
Mike
Loading thread data ...

In general you may need to recompile *driver modules* against the kernel.

But this is handled as part of the automated installation process

What you *may* have to do is install firmware for the DVB system.

--
"In our post-modern world, climate science is not powerful because it is  
true: it is true because it is powerful." 
 Click to see the full signature
Reply to
The Natural Philosopher

I believe that to be the case.

--
     ?I know that most men, including those at ease with problems of the  
greatest complexity, can seldom accept even the simplest and most  
 Click to see the full signature
Reply to
The Natural Philosopher

USB tuners do tend to send the full 40+ Mbps mux contents to the software, and let them chuck away what they don't need.

However PCI tuners tend to have hardware PID filters so that only the requsted streams (audio/video/subtitles etc) are sent to the driver and on to the software, cuts down the interrupt rate, probably matters less now, but 15 years ago when I was running mythTV inside a Xen VM, high interrupt rates were a problem.

Reply to
Andy Burns

I cant see any reason why a PCI card would generate more interrupts than a USB one. In the end once tuned to a mux its simply all about dragging great chunks of, presumably just-as-buffered, data off.

There is no requirement for 'real time' performance. And a PCI bus is usually faster than USB.

--
"A point of view can be a dangerous luxury when substituted for insight  
and understanding". 
 Click to see the full signature
Reply to
The Natural Philosopher

Other way round. USB is delivering the whole 38Mbps mux, and PCI is just delivering a 2Mbps programme from within it Makes a difference between about 200 and about 1000 interrupts per second above background level here (PCIe) Of course I can choose to stream the whole MUX to VLC and let it choose which programme to watch.

Depends if the card/dongle is with or without hardware to filter which DVB packets need sending to the O/S.

Reply to
Andy Burns

Do PCI cards with PID filtering have a "promiscuous mode" (to use network traffic-capture terminology) by which controlling software can ask for the whole stream as opposed to specific PIDs?

I think TNP's question about more interrupts might have been sort-of asking why PCI cards tend to be designed with PID filtering whereas USB ones aren't, when USB bandwidth might be more limited and more prone to saturation than PCI bandwidth.

On my Raspberry Pi TVHeadend setup, I've testing it with several instances of VLC being served over Ethernet to a Windows PC, one instance per USB-connected DVB tuner, with each VLC instance recording the whole stream to disk. Not something you'd do every day, but I was interested to see the effect. The CPU usage on the Pi rose from 2% to about 5% (so it was hardly breaking into a sweat). LAN usage was about 150 Mbps, as you'd expect with about 24 or 40 Mbps from each of four muxes, plus some networking overhead. The Windows PC that was running all these VLC sessions was struggling a bit: CPU usage was about 80% and the CPU fan was running continuously at jet-aircraft speed.

Reply to
NY

Basically yes, clients can set a filter of "NONE".

More sophisticated tuner/demuxer chips on cards than dongles? Maybe tuner-only and no demuxer at all on USB? I'm not saying no USB dongles exist with filters, just none that I've used, OTOH I have used a PCI card that was little more than a USB hub plus USB tuners on a card, it didn't have filters.

have you got dstat installed? int and csw columns would be interesting when streaming one prog vs the whole mux.

I suspect a lot more drivers use zero-copy techniques nowadays, rather than constantly rebuffering between user and kernel address space.

Yes, mythTV never supported recording or streaming a full mux, but could handle multiple programmes from a mux concurrently, I did 12 recordings "because I could", skyQ calls that progress.

Reply to
Andy Burns

yes. And I am fairly sure my PCI card satellite tuner wasnt preferential as to the channel within any given mux.

Linux and tvheadend only 'know' about /dev/dvb*...I cant see why, even if the card has got 'per channel' selection built in, that would stop it delivering more than one channel at a time via two instances of opening the device.

--
"A point of view can be a dangerous luxury when substituted for insight  
and understanding". 
 Click to see the full signature
Reply to
The Natural Philosopher

Depends what the software asks of the V4L API

nothing will stop it, if that's what an app requests, what I am saying is that ...

the tuner will tune to the required frequency, and get e.g. a raw 40Mbps data stream, if the app opens the relevant /dev/dvb/* device and doesn't specify a filter, it will get that raw stream, it might use all of it, or might throw most of it away. Or possibly the V4L API simiulates the filtering by doing the demux in software, I haven't checked.

But if a DVB device supports HARDWARE FILTERING, the PCI card itself can demux the stream and throw away the uninteresting parts of the stream before they even get passed to the kernel driver, let alone to the app, so the app might only have to deal with the e.g. 2Mbps stream of a programme it is actually interested in.

USB devices don't typically do the hardware filtering, PCI ones typically do.

Reply to
Andy Burns

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.