> So there doesn't seem to be a big difference. Is there something a v4l
> driver has to implement, so that xv scaling will work.
> Both drivers deliver YUV422 and can write into video memory.
Hmm, should have worked, the v4l module tries to use yuv422 for
hardware-scaled overlay. Below is the piece of code which the
v4l module uses to check whenever it can do hw scaling or not.
Gerd
--------------------------- cut here ------------------------
/* test v4l device for yuv support: check if the driver
accepts VIDEO_PALETTE_YUV422 */
ioctl(fd,VIDIOCGPICT,&pPPriv->pict);
pPPriv->pict.palette = VIDEO_PALETTE_YUV422;
pPPriv->pict.depth = 16;
if (0 == ioctl(fd,VIDIOCSPICT,&pPPriv->pict)) {
ioctl(fd,VIDIOCGPICT,&pPPriv->pict);
if (VIDEO_PALETTE_YUV422 == pPPriv->pict.palette) {
/* works, check screen capabilities */
DEBUG(xf86Msg(X_INFO, "v4l: kernel driver supports yuv422.\n"));
pPPriv->format = xf86XVQueryOffscreenImages
(pScreen,&pPPriv->nformat);
DEBUG(xf86Msg(X_INFO, "v4l: screen driver supports %d yuv format
s (%p)\n",
pPPriv->nformat,pPPriv->format));
for (j = 0; j < pPPriv->nformat; j++) {
DEBUG(xf86Msg(X_INFO, "v4l: yuv format: %4.4s\n",
(char*)&(pPPriv->format[j].image->id)));
if (pPPriv->format[j].image->id == 0x32595559 &&
pPPriv->format[j].image->format == XvPacked) {
pPPriv->have_yuv = 1;
pPPriv->myfmt = pPPriv->format+j;
DEBUG(xf86Msg(X_INFO, "v4l: matching format found, offs
creen yuv enabled.\n"));
}
}
}
}
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list