[ANNOUNCE] Bandwidth limiting patch for FF cards (VDR-1.6)

Message ID 4B771988.2040104@vorgon.com
State New
Headers

Commit Message

Timothy D. Lenz Feb. 13, 2010, 9:28 p.m. UTC
  Why not just use ttpci-bwlimit.diff to patch the driver? There is also a 
patch floating around that lets you select what to block.

On 2/13/2010 1:15 PM, Udo Richter wrote:
> Hi list,
>
>
> One of the known problems of the FF-DVB cards is the bandwidth
> limitation, that is addressed by the full-ts-mod for example. However,
> there are still enough FF cards out there that are not and wont ever be
> modded, and these cards tend to produce broken recordings on high
> bandwidth channels.
>
> I've written an experimental patch to avoid this by limiting the total
> bandwidth of the DVB card for recording and playback. In case that the
> bandwidth exceeds the allowed maximum, the playback gets reduced to
> I-frame only, audio only or complete suspend. Recording is not limited.
>
> The patch is still fresh and not well tested, so its only recommended
> for experimenting. Also, there's only a VDR-1.6 patch now, VDR-1.7 needs
> a rewrite for TS, and will follow later. For first experiments, set
> Setup ->  DVB ->  FF DVB Bandwidth Limit (kbit) to something around
> 14000-15000.
>
> Get it:
> http://www.udo-richter.de/vdr/patches.en.html#bandwidthlimit
>
>
> Cheers,
>
> Udo
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
  

Patch

diff -ruN v4l-dvb.orig/linux/drivers/media/dvb/ttpci/av7110.c v4l-dvb/linux/drivers/media/dvb/ttpci/av7110.c
--- v4l-dvb.orig/linux/drivers/media/dvb/ttpci/av7110.c	2009-09-07 16:09:09.000000000 -0400
+++ v4l-dvb/linux/drivers/media/dvb/ttpci/av7110.c	2009-09-07 15:13:48.000000000 -0400
@@ -817,7 +817,7 @@ 
 		return 0;
 
 	if (dvbdmxfilter->type == DMX_TYPE_SEC) {
-		if (hw_sections) {
+		if (hw_sections && ((dvbdmxfeed->pid >= 0x122 && dvbdmxfeed->pid <= 0x176) || (dvbdmxfeed->pid >= 0x21 && dvbdmxfeed->pid <= 0x64))) {
 			buf[4] = (dvbdmxfilter->filter.filter_value[0] << 8) |
 				dvbdmxfilter->maskandmode[0];
 			for (i = 3; i < 18; i++)