1 /*==========================================================================
3 show_video_v4l_main.c: Main routine for capturing video using GLUT and V4L.
4 Written by Naoyuki Ichimura, AIST, 2001.
5 ==========================================================================*/
7 #include "show_video_v4l.h"
9 int extract_skin_color; /* global variable for enabling image processing */
12 //int main( int argc , char *argv[] )
13 void* video_thread(void* args)
15 video_args_t *video_args = (video_args_t*) args;
16 int argc = video_args->argc;
19 argv = video_args->argv;
20 static char window_title[1024]="Video Capture";
24 double zoom_rate; /* for zooming */
26 /*======= Set option =========================================*/
27 zoom_rate = DEFAULT_ZOOM_RATE;
28 //video_input = S_VIDEO;
30 extract_skin_color = 0;
31 for( i = j = 1 ; i < argc ; i++ ) {
32 if( argv[i][0] == '-' || argv[i][0] == '/' ) {
33 switch( argv[i][1] ) {
35 zoom_rate = atof(&argv[i][2]);
39 video_input = atoi(&argv[i][2]);
43 extract_skin_color = 1;
56 /*======= Initialize GLUT ====================================*/
57 glutInit( &argc , argv );
58 glutInitDisplayMode( GLUT_RGBA); /* enable double buffering of video board */
60 /*======= Initialize window ==================================*/
61 glutInitWindowPosition( INIT_WINDOW_POS_X , INIT_WINDOW_POS_Y ); /* initial window position */
62 glutInitWindowSize( (int)(zoom_rate*IMAGE_WIDTH_DS) , (int)(zoom_rate*IMAGE_HEIGHT_DS) ); /* set window size */
63 glutCreateWindow( window_title ); /* creat window with name */
65 /*======= Initialize projection ==============================*/
66 glOrtho( 0.0 , IMAGE_WIDTH_DS-1.0 , 0.0 , IMAGE_HEIGHT_DS , -1.0 , 1.0 );
67 glPixelZoom( zoom_rate , zoom_rate );
69 /*======= Initilize capture device ============================*/
70 //ShowVideoInitCaptureDevice( DEFAULT_DEVICE_NAME , video_input );
72 /*======= Initilize buffer ====================================*/
73 glClearColor( 0.0 , 0.0 , 0.0 , 0.0 );
74 glClear( GL_COLOR_BUFFER_BIT );
78 /*======= Register callback functions =========================*/
79 glutDisplayFunc( ShowVideoDisplayImage );
80 glutMouseFunc( ShowVideoMouseCheck );
81 //glutIdleFunc( ShowVideoCaptureImage ); /* global idle callback */
82 glutIdleFunc( ShowVideoIdle ); /* global idle callback */
84 /*======= Begin event loop ====================================*/