[linux-dvb] Re: SAA7146 DMA buffer overflow

Ingo Schneider mail at ingo-schneider.de
Sun Feb 19 09:39:49 CET 2006

Hi !

That's why I'm making sure that the buffer width is a multiple of 376 
and the buffer height is a multiple of 256.
Without that, I got corrupted data !

I tried some different widths (376, 752, 3760, but only 376, 752 are 
used with that algorithm)
and some heights (1024, 1280, 2048, 2816, 3840) and with that it always 
worked (for my cards, off course).
DMA buffer bigger than 4 MB doesn't work - and it also makes no sense to 
use more buffer than needed under high load.

In the "refactored patch" with the recommendations of Oliver I keep the 
buffer size as it was before (because it's untested for other card types),
and only change the buffer layout if module parameter is set, so there 
should be no new problems with that.
With the buffer warnings we'll see if other people have problems with a 
too small buffer, too.

With a buffer size of 470k (376x1280) I now get a perfect TS stream 
(good data, no TS continuity problems),
even under very high I/O load conditions.

Now the best thing to do is to integrate it and see if I'm the only one 
having problems with too small DMA buffer.

Ingo Schneider.

Johannes Stezenbach wrote:

>On Sat, Feb 18, 2006, Ingo Schneider wrote:
>>Here comes the refactored patch.
>>I kept the default buffer size as it was before and limited the rate of 
>>buffer warnings.
>>Without module parameter, buffer layout and size is now exactly the same 
>>as before,
>>so only people getting buffer warnings are in need to change the buffer 
>Here's a link to some old postings on the saa7146 DMA subject:
>As I remember it, with your buffer settings you get slightly
>corrupted TS data.

More information about the linux-dvb mailing list