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_LEGACY_MILLISECOND FBXSDK_LONGLONG(46186158)
27 #define FBXSDK_TC_LEGACY_SECOND FbxLongLong(FBXSDK_TC_LEGACY_MILLISECOND*1000)
29 #define FBXSDK_TC_MILLISECOND FBXSDK_LONGLONG(141120)
30 #define FBXSDK_TC_SECOND FbxLongLong(FBXSDK_TC_MILLISECOND*1000)
31 #define FBXSDK_TC_MINUTE FbxLongLong(FBXSDK_TC_SECOND*60)
32 #define FBXSDK_TC_HOUR FbxLongLong(FBXSDK_TC_MINUTE*60)
33 #define FBXSDK_TC_DAY FbxLongLong(FBXSDK_TC_HOUR*24)
36 #define FBXSDK_TC_NTSC_FIELD FbxLongLong(FBXSDK_TC_SECOND/30/2)
37 #define FBXSDK_TC_NTSC_FRAME FbxLongLong(FBXSDK_TC_SECOND/30)
40 #define FBXSDK_TC_MNTSC_FIELD FbxLongLong(FBXSDK_TC_MNTSC_FRAME/2)
41 #define FBXSDK_TC_MNTSC_FRAME FbxLongLong(FBXSDK_TC_SECOND/30*1001/1000)
42 #define FBXSDK_TC_MNTSC_2_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*2)
43 #define FBXSDK_TC_MNTSC_30_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*30)
44 #define FBXSDK_TC_MNTSC_1798_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*1798) // leap minute
45 #define FBXSDK_TC_MNTSC_1800_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*1800) // ~1 minute
46 #define FBXSDK_TC_MNTSC_17982_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*17982) // ~10 minutes
47 #define FBXSDK_TC_MNTSC_107892_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*107892) // ~1 hour
48 #define FBXSDK_TC_MNTSC_108000_FRAMES FbxLongLong(FBXSDK_TC_MNTSC_FRAME*108000)
51 #define FBXSDK_TC_MNTSC_1_SECOND FbxLongLong(FBXSDK_TC_MNTSC_FRAME*30) // 1 frame * 30
52 #define FBXSDK_TC_MNTSC_1_MINUTE FbxLongLong(FBXSDK_TC_MNTSC_1_SECOND*60) // 1 minute (1800 frames)
53 #define FBXSDK_TC_MNTSC_1_HOUR FbxLongLong(FBXSDK_TC_MNTSC_1_SECOND*3600) // 1 hour
55 #define FBXSDK_TC_MNTSC_NUM FbxULong(FBXSDK_TC_FIX_DEN*1000*30/1001)
56 #define FBXSDK_TC_MNTSC_DEN FBXSDK_TC_FIX_DEN
59 #define FBXSDK_TC_PAL_FIELD FbxLongLong(FBXSDK_TC_SECOND/25/2)
60 #define FBXSDK_TC_PAL_FRAME FbxLongLong(FBXSDK_TC_SECOND/25)
63 #define FBXSDK_TC_FILM_FRAME FbxLongLong(FBXSDK_TC_SECOND/24)
66 #define FBXSDK_TC_MFILM_FIELD FbxLongLong(FBXSDK_TC_MFILM_FRAME/2)
67 #define FBXSDK_TC_MFILM_FRAME FbxLongLong(FBXSDK_TC_SECOND/24*1001/1000)
68 #define FBXSDK_TC_MFILM_1_SECOND FbxLongLong(FBXSDK_TC_MFILM_FRAME*24) // 1 frame * 24
69 #define FBXSDK_TC_MFILM_1_MINUTE FbxLongLong(FBXSDK_TC_MFILM_1_SECOND*60) // 1 minute (1440 frames)
70 #define FBXSDK_TC_MFILM_1_HOUR FbxLongLong(FBXSDK_TC_MFILM_1_SECOND*3600) // 1 hour
72 #define FBXSDK_TC_MFILM_NUM FbxULong(FBXSDK_TC_FIX_DEN*1000*24/1001)
73 #define FBXSDK_TC_MFILM_DEN FBXSDK_TC_FIX_DEN
77 #define FBXSDK_TC_REM(quot, num, den) ((quot) = (num) / (den), (quot) * (den))
78 #define FBXSDK_TC_HOUR_REM(quot, num, den) ((quot) = ((num - (-FbxLongLong(num < 0) & (den - 1))) / (den)), (quot) * (den))
108 #define FBXSDK_TC_LEGACY_DEFINITION 127
109 #define FBXSDK_TC_STANDARD_DEFINITION 0
FbxLongLong FbxTCGetFILMND(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
FbxLongLong FbxTCFromLegacy(FbxLongLong pTime)
FBX SDK environment definition.
FbxLongLong FbxTCGetMNTSC_4Xnd(FbxLongLong pTime, int &pHour, int &pMinute, int &pSecond, int &pFrame, int &pField)
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 FbxTCToLegacy(FbxLongLong pTime)
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)
void FbxTCSetDefinition(int pType)
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 FbxTCSetMNTSC_4Xnd(int pHour, int pMinute, int pSecond, FbxLongLong pFrame, int pField)
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)