Go to the
documentation of this file.
00001 #ifndef __FBVIDEOGRABBER_H__
00002 #define __FBVIDEOGRABBER_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00043 #include <kaydaradef.h>
00044 #ifndef FBSDK_DLL
00045
00048 #define FBSDK_DLL K_DLLIMPORT
00049 #endif
00050
00051 #include <fbsdk/fbcomponent.h>
00052 #include <fbsdk/fbaudiofmt.h>
00053 #include <fbsdk/fbimage.h>
00054 #include <fbsdk/fbcamera.h>
00055 #include <fbsdk/fbrenderer.h>
00056
00057 #ifdef FBSDKUseNamespace
00058 namespace FBSDKNamespace {
00059 #endif
00060
00061 __FB_FORWARD( FBVideoGrabber );
00062 FB_DEFINE_COMPONENT( FBSDK_DLL, VideoGrabber );
00063
00065 enum FBVideoRenderViewingMode {
00066 FBViewingModeStandard,
00067 FBViewingModeModelsOnly,
00068 FBViewingModeXRay,
00069 FBViewingModeCurrent,
00070 FBViewingModeCount
00071 };
00073 enum FBVideoRenderFieldMode {
00074 FBFieldModeNoField,
00075 FBFieldModeField0,
00076 FBFieldModeField1,
00077 FBFieldModeHalfField0,
00078 FBFieldModeHalfField1,
00079 FBFieldModeCount
00080 };
00082 enum FBVideoRenderDepth {
00083 FBVideoRender24Bits,
00084 FBVideoRender32Bits,
00085 FBVideoRenderDepthCount
00086 };
00087
00091 struct FBVideoGrabOptions
00092 {
00093 FBTimeSpan mTimeSpan;
00094 FBTime mTimeSteps;
00095 FBCameraResolutionMode mCameraResolution;
00096 FBVideoRenderDepth mBitsPerPixel;
00097 FBVideoRenderFieldMode mFieldMode;
00098 FBVideoRenderViewingMode mViewingMode;
00099 FBStereoDisplayMode mStereoDisplayMode;
00100 int mRendererCallbackIndex;
00101 int mRendererCallbackPrefIndex;
00102 FBString mOutputFileName;
00103 bool mShowSafeArea;
00104 bool mShowTimeCode;
00105 bool mShowCameraLabel;
00106 bool mAntiAliasing;
00107 bool mRenderAudio;
00108 FBAudioFmt mAudioRenderFormat;
00109 int mStillImageCompression;
00110 };
00111
00115 struct FBVideoGrabStats
00116 {
00117 int mTotalFrameCount;
00118 int mRemainingFrameCount;
00119 FBTime mTotalTimeElapsed;
00120 FBTime mEstimatedTime;
00121 FBTime mEstimatedTimeRemaining;
00122 FBTime mTimePerFrame;
00123 };
00124
00128 class FBSDK_DLL FBVideoGrabber : public FBComponent
00129 {
00130
00131 __FBClassDeclare(FBVideoGrabber, FBComponent);
00132 public:
00133
00137 FBVideoGrabber(HIObject pObject=NULL);
00138
00139
00143 void SetOptions(FBVideoGrabOptions* pOptions);
00144
00148 FBVideoGrabOptions GetOptions();
00149
00153 void ResetOptions();
00154
00155
00162 void SetRefreshViewFunc(void* pThis, void(*pCallbackFuncPtr)(void*));
00163
00170 void SetPostRenderFrameCallback(void* pThis, void(*pCallbackFuncPtr)(void*));
00171
00172
00178 bool BeginGrab();
00179
00183 void Grab();
00184
00188 void EndGrab();
00189
00203 FBImage* RenderSnapshot(int pWidth=-1, int pHeight=-1, bool pCameraLabel=false, bool pTimeCode=false, bool pSafeArea=false, bool pAxis=false, bool pGrid=false, bool pFrontPlate=false, bool pBackPlate=false);
00204
00205
00209 FBVideoGrabStats GetStatistics();
00210
00211
00215 const char* GetLastErrorMsg();
00216 };
00217
00218
00219 #ifdef FBSDKUseNamespace
00220 }
00221 #endif
00222 #endif