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.
Regards,
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
size.
Here's a link to some old postings on the saa7146 DMA subject:
http://linuxtv.org/mailinglists/linux-dvb/2003/11-2003/msg00028.html
As I remember it, with your buffer settings you get slightly
corrupted TS data.
Johannes
_______________________________________________
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb