Subversion Repositories shark

Compare Revisions

Regard whitespace Rev 1423 → Rev 1424

/demos/trunk/bttvdemo/bttv.c
34,9 → 34,11
*/
 
#include "kernel/kern.h"
#include "stdlib.h"
 
#include "drivers/shark_keyb26.h"
#include "drivers/shark_videodev26.h"
#include "drivers/shark_fb26.h"
 
#define WIDTH 640
#define HEIGHT 480
58,6 → 60,8
}
 
void elaborate_image(void *imageptr);
 
TASK grab_task(void *arg) {
 
struct video_picture vpic;
64,6 → 68,7
struct video_buffer fbuf;
struct video_window win;
struct video_channel chan;
int on;
 
task_nopreempt();
 
77,15 → 82,16
VIDEODEV26_ioctl(0,VIDIOCGPICT,(unsigned long)&vpic);
vpic.palette = VIDEO_PALETTE_RGB565;
vpic.palette = VIDEO_PALETTE_GREY;
vpic.depth = 8;
VIDEODEV26_ioctl(0,VIDIOCSPICT,(unsigned long)&vpic);
fbuf.base = malloc(640*480*2);
fbuf.base = malloc(320*200);
fbuf.height = 200;
fbuf.width = 320;
fbuf.height = 200;
fbuf.bytesperline = 640*2;
fbuf.depth = 16;
fbuf.bytesperline = 320;
fbuf.depth = 8;
VIDEODEV26_ioctl(0,VIDIOCSFBUF,(unsigned long)&fbuf);
 
104,51 → 110,43
task_nopreempt();
VIDEODEV26_ioctl(0,VIDIOCCAPTURE,NULL);
VIDEODEV26_ioctl(0,VIDIOCSFBUF,(unsigned long)&fbuf);
 
on = 1;
VIDEODEV26_ioctl(0,VIDIOCCAPTURE,(unsigned long)&on);
 
task_preempt();
 
task_endcycle();
 
elaborate_image(fbuf.base);
 
task_endcycle();
 
}
 
return NULL;
 
}
 
extern void *video_memory;
 
void elaborate_image(void *imageptr)
{
/*
 
WORD x,y;
BYTE *col;
 
if (color == FG_MONO) {
 
for(y = 0; y < FG_H; y++)
for(x = 0; x < FG_W; x++) {
 
col = (BYTE *)(imageptr + y*FG_W + x);
*(WORD *)(video_buf + y*(WIDTH*2) + (x*2)) = (WORD)rgb16(*(BYTE *)(col),*(BYTE *)(col),*(BYTE *)(col));
*(WORD *)(video_memory + y*(WIDTH*2) + (x*2)) = (WORD)rgb16(*(BYTE *)(col),*(BYTE *)(col),*(BYTE *)(col));
 
}
 
}
 
if (color == FG_RGB24) {
 
for(y = 0; y < FG_H; y++)
for(x = 0; x < FG_W; x++) {
 
col = (BYTE *)(imageptr + y*(FG_W*3) + (x*3));
*(WORD *)(video_buf + y*(WIDTH*2) + (x*2)) = (WORD)rgb16(*(BYTE *)(col),*(BYTE *)(col+1),*(BYTE *)(col+2));
 
}
 
}
*/
printf_xy(0,0,WHITE,"Grabbed = %08lx",*(DWORD *)(imageptr + 50*FG_W + 50));
printf_xy(0,1,WHITE,"Grabbed = %08lx",*(DWORD *)(imageptr + 51*FG_W + 50));
}
 
int main(int argc, char **argv)
{
 
156,8 → 154,8
PID grab_task_pid;
 
soft_task_default_model(st);
soft_task_def_period(st,50000);
soft_task_def_met(st,10000);
soft_task_def_period(st,100000);
soft_task_def_met(st,40000);
soft_task_def_arg(st, (void *)(1));
soft_task_def_ctrl_jet(st);
/demos/trunk/bttvdemo/initfile.c
12,7 → 12,7
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/hardcbs.h"
#include "modules/cbs.h"
#include "modules/rr.h"
#include "modules/dummy.h"
#include "modules/intdrive.h"
56,7 → 56,7
 
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG);
EDF_register_level(EDF_ENABLE_ALL);
HCBS_register_level(HCBS_ENABLE_ALL, 1);
CBS_register_level(CBS_ENABLE_ALL, 1);
RR_register_level(RRTICK, RR_MAIN_YES, mb);
dummy_register_level();
 
116,7 → 116,6
 
BTTV26_init();
 
/*
FB26_init();
res = FB26_open(FRAME_BUFFER_DEVICE);
130,15 → 129,15
FB26_use_grx(FRAME_BUFFER_DEVICE);
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16");
*/
return 0;
 
}
 
int device_drivers_close() {
/*
FB26_close(FRAME_BUFFER_DEVICE);
*/
KEYB26_close();
INPUT26_close();
/demos/trunk/bttvdemo/readme.txt
5,7 → 5,7
 
Giacomo Guidi <giacomo@gandalf.sssup.it>
 
Last update 27/05/2003
Last update 05/05/2004
--------------------------------------
Ex:
 
17,14 → 17,9
 
This is a simple demo for the BTTV driver.
It starts the frame grabber at 25 fps 320x200.
The GRX driver is used to
visualize the grabbed images.
 
See also drivers/bttv/readme
 
drivers/bttv/fgman-it.txt is the
italian manual
 
--------------------------------------
 
The demo is composed by: