[media] cx88-dvb.c: DVB net latency using Hauppauge HVR4000
authorAng Way Chuang <wcang@sfc.wide.ad.jp>
Fri, 24 Dec 2010 05:40:46 +0000 (02:40 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 29 Dec 2010 10:17:17 +0000 (08:17 -0200)
A Hauppauge HVR 4000 is used on a School On Internet Asia (SOI Asia)
project in order to carry IP traffic over ULE. However, there is an
issue with high latency jitter.

My boss, Husni, identified the problem and provided a patch for it.

The default buffer size of 32 TS frames on cx88 causes the high latency,
so our deployment changes that to 6 TS frames. This patch made the
buffer size tunable, while keeping the default buffer size of 32 TS
frames unchanged.

Signed-off-by: Achmad Husni Thamrin <husni@ai3.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx88/cx88-dvb.c

index 367a653..90717ee 100644 (file)
@@ -67,6 +67,10 @@ static unsigned int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug,"enable debug messages [dvb]");
 
+static unsigned int dvb_buf_tscnt = 32;
+module_param(dvb_buf_tscnt, int, 0644);
+MODULE_PARM_DESC(dvb_buf_tscnt, "DVB Buffer TS count [dvb]");
+
 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
 
 #define dprintk(level,fmt, arg...)     if (debug >= level) \
@@ -80,10 +84,10 @@ static int dvb_buf_setup(struct videobuf_queue *q,
        struct cx8802_dev *dev = q->priv_data;
 
        dev->ts_packet_size  = 188 * 4;
-       dev->ts_packet_count = 32;
+       dev->ts_packet_count = dvb_buf_tscnt;
 
        *size  = dev->ts_packet_size * dev->ts_packet_count;
-       *count = 32;
+       *count = dvb_buf_tscnt;
        return 0;
 }