Move the sources to trunk
[opencv] / otherlibs / cvcam / sample / vidformat_sample.cpp
1 #include "cvcam.h"
2 #include "highgui.h"
3
4 /**************************************************************************\
5             How to set video resolution programatically
6 \**************************************************************************/ 
7 void callback(IplImage* image)
8 {
9
10 }
11
12 #if 1
13 int ShowCamVideo(HWND hwnd, int width, int height)
14 {
15     VidFormat vidFmt={ width, height, 30.0};
16
17     int ncams = cvcamGetCamerasCount( );
18     cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE);
19     cvcamSetProperty(0, CVCAM_PROP_CALLBACK,callback);
20     cvcamSetProperty(0, CVCAM_PROP_WINDOW, &hwnd);   
21
22     //Set Video Format Property
23     cvcamSetProperty( 0, CVCAM_PROP_SETFORMAT, &vidFmt);
24
25     if( !cvcamInit() )
26         return 0;
27     cvcamStart();
28     return 1;
29 }
30
31 int main( int argc, char** argv )
32 {
33     cvNamedWindow("cvcam window", CV_WINDOW_AUTOSIZE);
34     if( ShowCamVideo((HWND)cvGetWindowHandle("cvcam window"), 640, 480) )
35     {
36         cvWaitKey(0);
37         cvcamStop();
38     }
39     cvcamExit();
40 }
41
42 #else
43 /**************************************************************************\
44                        How To Play Media file by CvCam
45 \**************************************************************************/
46
47 void ShowAVIVideo(char* filename, HWND hwnd, int width, int height)
48 {
49     cvcamAVIFILE f = cvcamAVIOpenFile(filename);
50     if( (int)f < 0 )
51         return;
52     cvcamAVISetWindow (f, hwnd);
53     cvcamAVISetCallback(f, callback);
54     cvcamAVISetSize(f, width, height);
55     cvcamAVIRun(f);
56     cvcamAVIWaitCompletion(f);
57     cvcamAVIStop(f);
58     cvcamAVICloseFile(f);
59 }
60
61
62 int main( int argc, char** argv )
63 {
64     if( argc > 1 )
65     {
66         cvNamedWindow("avi window", CV_WINDOW_AUTOSIZE);
67         ShowAVIVideo( argv[1], (HWND)cvGetWindowHandle("avi window"), 320, 240);
68     }
69 }
70 #endif