Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] bugs in SetPixel and SetBlock?
Thanks all for the great driver and software. Good stuff.
The program below draws three small squares on the screen - one using
OSD_SetPixel, one with OSD_FillBlock and one with OSD_SetBlock.
Actually, that's what it should do. Only the second works as expected.
The OSD_SetPixel version produces a large diagonal rectangle and the
OSD_SetBlock causes a driver reset.
I am using the DVB-C card so NAPI is not set. I do not have a DVB-S card
to try it on.
Can anyone help?
Michael
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <dvb_v4l.h>
int main() {
struct drawcmd dc;
int i, j, vid_fd;
uint16_t buf[10*10];
vid_fd = open( "/dev/video", O_RDWR);
dc.cmd = OSD_Open;
dc.x0 = 80; dc.y0 = 100;
dc.x1 = 640; dc.y1 = 400;
dc.color = 0x02;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
dc.cmd = OSD_SetColor;
dc.color = 0;
dc.x0 = 0x50; dc.y0 = 0x50; dc.x1 = 0x50;
dc.y1 = 0xe6;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
dc.color = 1;
dc.x0 = 0x8c; dc.y0 = 0x00; dc.x1 = 0x00;
dc.y1 = 0xff;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
dc.cmd = OSD_SetPixel;
dc.color = 1;
for( i=0; i<10; i++) {
for( j=0; j<1; j++) {
dc.x0 = 100+j;
dc.y0 = 100+i;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
}
}
dc.cmd = OSD_FillBlock;
dc.x0 = 200; dc.y0 = 100;
dc.x1 = 210; dc.y1 = 110;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
#if 0
for( i=0; i<10*10; i++) buf[i] = 0xffff;
dc.cmd = OSD_SetBlock;
dc.x0 = 300; dc.y0 = 100;
dc.x1 = 310; dc.y1 = 110;
dc.color = 10;
dc.data = buf;
ioctl( vid_fd, VIDIOCSOSDCOMMAND, &dc);
#endif
sleep(400);
close(vid_fd);
return 0;
}
--
Michael Nelson
Utah Development Group
Liberate Technologies
phone: 801.453.7031
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index