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)