13 #ifndef _FBXSDK_CORE_BASE_TIMECODE_H_ 
   14 #define _FBXSDK_CORE_BASE_TIMECODE_H_ 
   20 #define FBXSDK_TC_ZERO                  FBXSDK_LONGLONG(0)   
   21 #define FBXSDK_TC_EPSILON               FBXSDK_LONGLONG(1) 
   22 #define FBXSDK_TC_MINFINITY             FBXSDK_LONGLONG(-0x7fffffffffffffff) 
   23 #define FBXSDK_TC_INFINITY              FBXSDK_LONGLONG(0x7fffffffffffffff) 
   24 #define FBXSDK_TC_FIX_DEN               FBXSDK_LONGLONG(100000000) 
   26 #define FBXSDK_TC_MILLISECOND           FBXSDK_LONGLONG(46186158) 
   27 #define FBXSDK_TC_SECOND                FbxLongLong(FBXSDK_TC_MILLISECOND*1000) 
   28 #define FBXSDK_TC_MINUTE                FbxLongLong(FBXSDK_TC_SECOND*60) 
   29 #define FBXSDK_TC_HOUR                  FbxLongLong(FBXSDK_TC_MINUTE*60) 
   30 #define FBXSDK_TC_DAY                   FbxLongLong(FBXSDK_TC_HOUR*24) 
   33 #define FBXSDK_TC_NTSC_FIELD            FbxLongLong(FBXSDK_TC_SECOND/30/2) 
   34 #define FBXSDK_TC_NTSC_FRAME            FbxLongLong(FBXSDK_TC_SECOND/30) 
   37 #define FBXSDK_TC_MNTSC_FIELD           FbxLongLong(FBXSDK_TC_MNTSC_FRAME/2) 
   38 #define FBXSDK_TC_MNTSC_FRAME           FbxLongLong(FBXSDK_TC_SECOND/30*1001/1000) 
   39 #define FBXSDK_TC_MNTSC_2_FRAMES        FbxLongLong(FBXSDK_TC_MNTSC_FRAME*2) 
   40 #define FBXSDK_TC_MNTSC_30_FRAMES       FbxLongLong(FBXSDK_TC_MNTSC_FRAME*30) 
   41 #define FBXSDK_TC_MNTSC_1798_FRAMES     FbxLongLong(FBXSDK_TC_MNTSC_FRAME*1798)     // leap minute 
   42 #define FBXSDK_TC_MNTSC_1800_FRAMES     FbxLongLong(FBXSDK_TC_MNTSC_FRAME*1800)     // ~1 minute 
   43 #define FBXSDK_TC_MNTSC_17982_FRAMES    FbxLongLong(FBXSDK_TC_MNTSC_FRAME*17982)    // ~10 minutes 
   44 #define FBXSDK_TC_MNTSC_107892_FRAMES   FbxLongLong(FBXSDK_TC_MNTSC_FRAME*107892)   // ~1 hour 
   45 #define FBXSDK_TC_MNTSC_108000_FRAMES   FbxLongLong(FBXSDK_TC_MNTSC_FRAME*108000) 
   48 #define FBXSDK_TC_MNTSC_1_SECOND        FbxLongLong(FBXSDK_TC_MNTSC_FRAME*30)       // 1 frame * 30 
   49 #define FBXSDK_TC_MNTSC_1_MINUTE        FbxLongLong(FBXSDK_TC_MNTSC_1_SECOND*60)    // 1 minute (1800 frames) 
   50 #define FBXSDK_TC_MNTSC_1_HOUR          FbxLongLong(FBXSDK_TC_MNTSC_1_SECOND*3600)  // 1 hour 
   52 #define FBXSDK_TC_MNTSC_NUM             FbxULong(FBXSDK_TC_FIX_DEN*1000*30/1001) 
   53 #define FBXSDK_TC_MNTSC_DEN             FBXSDK_TC_FIX_DEN 
   56 #define FBXSDK_TC_PAL_FIELD             FbxLongLong(FBXSDK_TC_SECOND/25/2) 
   57 #define FBXSDK_TC_PAL_FRAME             FbxLongLong(FBXSDK_TC_SECOND/25) 
   60 #define FBXSDK_TC_FILM_FRAME            FbxLongLong(FBXSDK_TC_SECOND/24) 
   63 #define FBXSDK_TC_MFILM_FIELD           FbxLongLong(FBXSDK_TC_MFILM_FRAME/2) 
   64 #define FBXSDK_TC_MFILM_FRAME           FbxLongLong(FBXSDK_TC_SECOND/24*1001/1000) 
   65 #define FBXSDK_TC_MFILM_1_SECOND        FbxLongLong(FBXSDK_TC_MFILM_FRAME*24)       // 1 frame * 24    
   66 #define FBXSDK_TC_MFILM_1_MINUTE        FbxLongLong(FBXSDK_TC_MFILM_1_SECOND*60)    // 1 minute (1440 frames) 
   67 #define FBXSDK_TC_MFILM_1_HOUR          FbxLongLong(FBXSDK_TC_MFILM_1_SECOND*3600)  // 1 hour 
   69 #define FBXSDK_TC_MFILM_NUM             FbxULong(FBXSDK_TC_FIX_DEN*1000*24/1001) 
   70 #define FBXSDK_TC_MFILM_DEN             FBXSDK_TC_FIX_DEN 
   74 #define FBXSDK_TC_REM(quot, num, den)       ((quot) = (num) / (den), (quot) * (den)) 
   75 #define FBXSDK_TC_HOUR_REM(quot, num, den)  ((quot) = ((num - (-FbxLongLong(num < 0) & (den - 1))) / (den)), (quot) * (den)) 
FbxLongLong FbxTCGetFILMND(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
 
FBX SDK environment definition. 
 
FbxLongLong FbxTCSetMNTSCnd(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCSetMNTSC(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCSetFILMND(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCHours(FbxLongLong pTime)
 
FbxLongLong FbxTCGetRate(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, FbxLongLong pPeriod)
 
FbxLongLong FbxTCGetMNTSC_2Xnd(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
 
FbxLongLong FbxTCMinutes(FbxLongLong pTime)
 
FbxLongLong FbxTCSetFILM(int pHour, int pMinute, int pSecond, FbxLongLong pFrame)
 
FbxLongLong FbxTCSetNTSC(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCSetMNTSC_2Xnd(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCSetRate(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, FbxLongLong pPeriod)
 
FbxLongLong FbxTCSeconds(FbxLongLong pTime)
 
FbxLongLong FbxTCGetNTSC(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
 
FbxLongLong FbxTCGetMNTSCnd(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
 
FbxLongLong FbxTCSetPAL(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
 
FbxLongLong FbxTCGetFILM(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame)
 
FbxLongLong FbxTCGetMNTSC(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
 
FbxLongLong FbxTCGetPAL(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)