[dvblast-devel] SAA7146 driver fix for better PCR accuracy and finer IP granularity

Marian Ďurkovič md at bts.sk
Wed Jun 9 09:56:31 CEST 2010


Hi all,

  seems I finally found a decent fix for the PCR jitter & IP burst problems
seen from SAA7146-based DVB cards with dvblast or other DVB software.

  Back in 2003, we decided to use 64 kB as DMA block size for SAA7146, which
basically makes the driver output ~350 TS packets once per ~14 msec on
typical DVB-S transponder (SR27500,FEC3/4). As dvblast immediately processes
all input from the kernel, that behaviour was transferred into the IP layer,
creating packet bursts upto 64 kB in size and unavoidable jitter in PCRs
& RTP timestamps.

  Fortunately, the DMA block size for SAA7146 is easily tunable by a specific
HW register. After some experimentation, it looks like 8 kB is much better
value here, resulting in ~44 TS packets being output once per 1.75 msec. 
With a typical DVB-S transponder, it basically means that one IP packet
per TV station is sent per DMA cycle. It also nicely corresponds to the
dvblast's default processing of upto 50 TS packets per demux cycle.

  Please find the patch for kernel driver attached, comments welcome.


     With kind regards,   


--------------------------------------------------------------------------
----                                                                  ----
----   Marian Ďurkovič                       network  manager         ----
----                                                                  ----
----   Slovak Technical University           Tel: +421 2 571 041 81   ----
----   Computer Centre, Nám. Slobody 17      Fax: +421 2 524 94 351   ----
----   812 43 Bratislava, Slovak Republic    E-mail/sip: md at bts.sk    ----
----                                                                  ----
--------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: saa7146.patch
Type: text/x-diff
Size: 495 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/dvblast-devel/attachments/20100609/2b5c12ca/attachment.patch>


More information about the dvblast-devel mailing list