39,13 → 39,15 |
if (vmm.frame == 0) { |
vmm.frame = 1; |
fbuf_pointer = btv.fbuffer; |
*(BYTE *)fbuf_pointer = 255; |
*(BYTE *)(fbuf_pointer+1) = 0; |
/* *(BYTE *)fbuf_pointer = 255; |
* *(BYTE *)(fbuf_pointer+1) = 0; |
*/ |
} else { |
vmm.frame = 0; |
fbuf_pointer = btv.fbuffer+gbufsize; |
*(BYTE *)fbuf_pointer = 0; |
*(BYTE *)(fbuf_pointer+1) = 255; |
/* *(BYTE *)fbuf_pointer = 0; |
* *(BYTE *)(fbuf_pointer+1) = 255; |
*/ |
} |
|
task_testcancel(); |
77,6 → 79,7 |
|
refresh_PID = task_create("FG_refresh", FG_refresh, &ht_refresh, NULL); |
if (refresh_PID == -1) { |
cprintf("could not create task, err no=%d\n",errno); |
sys_end(); |
} |
|
83,16 → 86,26 |
bttv_start(&btv); |
|
err = bttv_ioctl(&btv, VIDIOCGWIN, &vw); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCGWIN Error: %d)",err); |
sys_end(); |
} |
vw.x = 0; |
vw.y = 0; |
vw.width = width; |
vw.height = height; |
err = bttv_ioctl(&btv, VIDIOCSWIN, &vw); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCSWIN Error: %d)",err); |
sys_end(); |
} |
|
err = bttv_ioctl(&btv, VIDIOCGPICT, &p); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCGPICT Error: %d)",err); |
sys_end(); |
} |
|
if (color == FG_RGB24) { |
p.palette = VIDEO_PALETTE_RGB24; |
p.depth = 24; |
101,15 → 114,30 |
p.palette = VIDEO_PALETTE_GREY; |
p.depth = 8; |
} |
if (color == FG_YUYV) { |
p.palette = VIDEO_PALETTE_YUYV; |
p.depth = 16; |
} |
|
err = bttv_ioctl(&btv, VIDIOCSPICT, &p); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCSPICT Error: %d)",err); |
sys_end(); |
} |
|
ch.channel = channel; |
err = bttv_ioctl(&btv, VIDIOCGCHAN, &ch); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
ch.channel = channel; |
ch.norm = 3; |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCGCHAN Error: %d)",err); |
sys_end(); |
} |
ch.norm = VIDEO_MODE_PAL; |
ch.type = VIDEO_TYPE_CAMERA; |
err = bttv_ioctl(&btv, VIDIOCSCHAN, &ch); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCSCHAN Error: %d)",err); |
sys_end(); |
} |
|
vmm.frame = 0; |
vmm.height = vw.height; |
116,8 → 144,10 |
vmm.width = vw.width; |
vmm.format = p.palette; |
err = bttv_ioctl(&btv, VIDIOCMCAPTURE, &vmm); |
if (err) kern_printf("(BTTV_IOCTL Error: %d)",err); |
|
if (err) { |
kern_printf("(BTTV_IOCTL VIDIOCMCAPTURE Error: %d)",err); |
sys_end(); |
} |
elaborate_frame_hook = dummy_elaborate_frame; |
|
sleep(1); |
137,7 → 167,8 |
{ |
|
task_kill(refresh_PID); |
sleep(1); |
/* sleep(1); |
*/ |
bttv_close(&btv); |
|
} |