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