#14 UV part of YUV gets truncated in some cases

open
nobody
driver (15)
5
2004-10-18
2004-10-18
Anonymous
No

When capturing from /dev/video32 (YUV), the Y part is
transmitted correctly, but the UV part gets truncated
after 131072 bytes. I already figured out why this
occurs: in ivtv-irq.c, in the function ivtv_sched_DMA,
buffers are allocated for the DMA transfer. The buffers
have the total size of bytes_needed, rounded towards
the nearest boundary of 128k.

However, when using YUV, the Y and UV parts are
transferred in different buffers, so we need to pad the Y-
part to a 128K boundary, and we need to pad the UV-
part to such a boundary as well, ie. in some cases (for
example 720x576 YUV capture) the total amount of
bytes to pad is > 128K and in the current situation there
is one buffer too few allocated.

I made a quick hack, but as I don't know about
programming conventions etc, I think it's better that
someone of the developers can fix this permanently.
BTW. I'm using the ivtv-0.1.10-pre2-ck115i.

e-mail: m.d.s.x.jonkerATstudentDOTutwenteDOTnl

Discussion