Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1484 → Rev 1485

/demos/trunk/bttvdemo/bttv.c
144,14 → 144,24
/* Check if the frame grabber is ready */
volatile int ready_to_grab = 1;
 
void grab_command(void *arg) {
 
SYS_FLAGS f;
 
f = kern_fsave();
 
int on = 1;
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on);
 
kern_frestore(f);
 
}
 
/* Elaboration task, it is called when the frame
grabber buffer is ready */
TASK elaborate_task(void *arg) {
 
struct video_buffer *fbuf = (struct video_buffer *)(arg);
#ifdef MAX_SPEED
int on;
#endif
 
while(1) {
 
165,8 → 175,7
ready_to_grab = 1;
 
#ifdef MAX_SPEED
on = 1;
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on);
grab_command(NULL);
#endif
 
task_testcancel();
181,20 → 190,13
/* Send the grab command */
TASK grab_task(void *arg) {
 
int on;
 
while(1) {
 
if (ready_to_grab) {
task_nopreempt();
/* Grab */
on = 1;
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on);
grab_command(NULL);
 
task_preempt();
 
//cprintf("G");
 
ready_to_grab = 0;
251,14 → 253,11
{
 
HARD_TASK_MODEL gt;
HARD_TASK_MODEL et;
SOFT_TASK_MODEL et;
PID grab_task_pid,elaborate_task_pid;
 
struct video_buffer fbuf;
int channel = 0;
#ifdef MAX_SPEED
int on;
#endif
 
if (argc < 2) {
sys_shutdown_message("ERROR: Enter the input channel [ex> %s 0]\n",argv[0]);
267,12 → 266,12
 
channel = atoi(argv[1]);
 
hard_task_default_model(et);
hard_task_def_mit(et,FG_PERIOD);
hard_task_def_arg(et,(void *)(&fbuf));
hard_task_def_wcet(et,FG_WCET);
hard_task_def_aperiodic(et);
hard_task_def_ctrl_jet(et);
soft_task_default_model(et);
soft_task_def_period(et,FG_PERIOD);
soft_task_def_arg(et,(void *)(&fbuf));
soft_task_def_met(et,FG_WCET);
soft_task_def_aperiodic(et);
soft_task_def_ctrl_jet(et);
hard_task_default_model(gt);
hard_task_def_mit(gt,FG_PERIOD);
316,8 → 315,7
task_activate(grab_task_pid);
#else
/* Grab */
on = 1;
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on);
grab_command(NULL);
#endif
 
while(keyb_getch(BLOCK) != ESC);
/demos/trunk/bttvdemo/initfile.c
130,7 → 130,7
FB26_use_grx(FRAME_BUFFER_DEVICE);
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16");
 
return 0;
 
}