#define NUM_CAM_ATTRIBUTES 24 #define CH_BRIGHTNESS 0 #define CH_CONTRAST 1 #define CH_SATURATION 2 #define CH_HUE 3 #define CH_AUDIO_VOLUME 4 #define CH_AUDIO_BALANCE 5 #define CH_AUDIO_BASS 6 #define CH_AUDIO_TREBLE 7 #define CH_AUDIO_MUTE 8 #define CH_AUDIO_LOUDNESS 9 #define CH_BLACK_LEVEL 10 #define CH_AUTO_WHITE_BALANCE 11 #define CH_DO_WHITE_BALANCE 12 #define CH_RED_BALANCE 13 #define CH_BLUE_BALANCE 14 #define CH_GAMMA 15 #define CH_EXPOSURE 16 #define CH_AUTOGAIN 17 #define CH_GAIN 18 #define CH_HFLIP 19 #define CH_VFLIP 20 #define CH_HCENTER 21 #define CH_VCENTER 22 #define CH_LASTP1 23 #define CH_FRAME_HEIGHT (NUM_CAM_ATTRIBUTES + 0) #define CH_FRAME_WIDTH (NUM_CAM_ATTRIBUTES + 1) #define CH_NUM_FRAMES (NUM_CAM_ATTRIBUTES + 2) #define CH_MAX_FRAMES (NUM_CAM_ATTRIBUTES + 3) #define CH_FRAME_FMT (NUM_CAM_ATTRIBUTES + 4) typedef struct{ int attribute_id; char* attribute_name; int minValue,maxValue,currentValue; int enabled; } camera_attributes; typedef struct camera_handler_t cameraHandler; typedef struct ffmpeg_frame_t ffmpegFrame; void initFFMPEG(void); cameraHandler* createCameraHandler(char* deviceName,int maxFrames); int cameraHandlerCapture(cameraHandler* ch,ffmpegFrame* frame); int cameraHandlerGetProperty(cameraHandler* ch,int property ); int cameraHandlerSetProperty(cameraHandler* ch,int property ,int value); camera_attributes* cameraHandlerGetPropertyInfo(cameraHandler* ch, int property); ffmpegFrame* createFrame(cameraHandler* ch); void cameraHandlerRelease(cameraHandler* ch); void cameraHandlerSaveFrame(cameraHandler* ch, ffmpegFrame* frame,char* destDir,int frameNumber); void cameraHandlerSaveYUVFrame(cameraHandler* ch, ffmpegFrame* frame,char* destDir,int frameNumber); void cameraHandlerSaveAllFrames(cameraHandler* ch, char* destDir); ffmpegFrame* cameraHandlerGetCapturedFrame(cameraHandler* ch,int index); void* getFramePointer(ffmpegFrame* f); void freeFrame( ffmpegFrame* f);