]> git.sesse.net Git - casparcg/blob - dependencies64/bluefish/include/BlueVelvet_c.h
[scene] More documentation with auto completion for example values/expressions.
[casparcg] / dependencies64 / bluefish / include / BlueVelvet_c.h
1 /*
2 // ==========================================================================
3 //      Bluefish444 BlueVelvet SDK library
4 //
5 //  BlueSD_c.h
6 //  Constants header
7 //      LARGELY superseded by dynamic calculations
8
9
10   $Id: BlueVelvet_c.h,v 1.4 2002/10/02 00:29:53 cameron Exp $
11 //
12 //  developed by  : Cameron Duffy   (C) 2002 Bluefish444 P/L
13 // ==========================================================================
14 //
15 */
16
17 //----------------------------------------------------------------------------
18 #ifndef _BLUEVELVET_C_H
19 #define _BLUEVELVET_C_H
20
21 //----------------------------------------------------------------------------------------------------------------------
22 // File SUB-types supported
23 //
24 typedef enum
25 {
26         EBlue_10BIT_NTSC=0,             // 10 BIT NTSC
27         EBlue_10BIT_PAL,                // 10 BIT PAL
28         EBlue_08BIT_NTSC,               //  8 BIT NTSC
29         EBlue_08BIT_PAL,                //  8 BIT PAL
30         EBlue_32BIT_NTSC,               // 32 BIT NTSC (ARGB - uncompressed)
31         EBlue_32BIT_PAL         // 32 BIT PAL  (ARGB - uncompressed)
32 } EBlueFileId;
33
34 // File subtype ID;s
35 #define BLUE_FILE_10BIT_NTSC    0       // 10 BIT NTSC
36 #define BLUE_FILE_10BIT_PAL             1       // 10 BIT PAL
37 #define BLUE_FILE_08BIT_NTSC    2       //  8 BIT NTSC
38 #define BLUE_FILE_08BIT_PAL             3       //  8 BIT PAL
39 #define BLUE_FILE_32BIT_NTSC    4       // 32 BIT NTSC (ARGB - uncompressed)
40 #define BLUE_FILE_32BIT_PAL             5       // 32 BIT PAL  (ARGB - uncompressed)
41
42 // File subtype FOURCC
43 #define BLUE_SUBTYPE_10BIT_NTSC 0x52594e5f      //'RYN_'        // 10 BIT NTSC
44 #define BLUE_SUBTYPE_10BIT_PAL  0x5259515f      //'RYP_'        // 10 BIT PAL
45 #define BLUE_SUBTYPE_08BIT_NTSC 0x52384e5f      //'R8N_'        //  8 BIT NTSC
46 #define BLUE_SUBTYPE_08BIT_PAL  0x5238515f      //'R8P_'        //  8 BIT PAL
47 #define BLUE_SUBTYPE_32BIT_NTSC 0x52524e5f      //'RRN_'        // 32 BIT NTSC (ARGB - uncompressed)
48 #define BLUE_SUBTYPE_32BIT_PAL  0x5252415f      //'RRP_'        // 32 BIT PAL  (ARGB - uncompressed)
49
50 #define BLUE_ROOTED_SUBTYPE             0x62626262      //'XXXX'
51 #define BLUE_FILE_NOVIDEO               0x62626262      //'XXXX'
52 #define BLUE_FILE_TYPE                  0x5244565f      //'RDV_'
53 #define BLUE_CLASS_ID                   0x52444456      //'RDDV'
54
55 // align this structure on 512 byte boundary!
56 typedef struct
57 {
58         char                            name[20];               // "PREMIERE RDV_FILE";
59         ULONG                           hasAudio;               // See BLUE_SUBTYPE_???
60         ULONG                           VideoSubtype;   // See BLUE_SUBTYPE_???
61         ULONG                           width;                  // width of frame in pixels
62         ULONG                           height;                 // height of frame in pixels (can get video mode)
63         ULONG                           rowbytes;               // total bytes in row (can get mem format from this and width)
64         ULONG                           numFrames;              // number of frames in file
65         ULONG                           frameOffset;    // GOLDEN frame size
66         ULONG                           duration;               // TDB - value = total number of frames
67         long                            scale;                  // TDB - scale = scale / samplesize = timebase
68         long                            sampleSize;             // TDB - sampleSize = 1 or 100 if 29.97 fps
69
70         ULONG                           gFmtVid;
71         ULONG                           gFmtMem;
72         ULONG                           gFmtUpd;
73         ULONG                           gFmtRes;
74         // 76 bytes
75         char                            orgtime[20];    // These fields map directly to those in imTimeInfoRec.
76         char                            alttime[20];
77         char                            orgreel[40];
78         char                            altreel[40];
79         // 196 bytes
80         char                            logcomment[256];
81         // 452 bytes
82 //      char                            pad[512-452-4];
83         char                            pad[56];
84         // For disk speed to work, this structure MUST be a multiple of sector size
85         ULONG                           len;                    // Length of TRAILER, *always* last!
86 } RDV_File2_OLD;
87 //#define       SIZE_RDV_FILE   512
88
89 #define kGoldenPageSize 4096
90
91 typedef struct
92 {
93         char                            name[20];               // "PREMIERE RDV_FILE ";
94         ULONG                           hasAudio;               // See BLUE_SUBTYPE_???
95         ULONG                           VideoSubtype;   // See BLUE_SUBTYPE_???
96         ULONG                           width;                  // width of frame in pixels
97         ULONG                           height;                 // height of frame in pixels (can get video mode)
98         ULONG                           rowbytes;               // total bytes in row (can get mem format from this and width)
99         ULONG                           numFrames;              // number of frames in file
100         ULONG                           frameOffset;    // GOLDEN frame size
101         ULONG                           duration;               // TDB - value = total number of frames
102         long                            scale;                  // TDB - scale = scale / samplesize = timebase
103         long                            sampleSize;             // TDB - sampleSize = 1 or 100 if 29.97 fps
104
105         ULONG                           gFmtVid;
106         ULONG                           gFmtMem;
107         ULONG                           gFmtUpd;
108         ULONG                           gFmtRes;
109         // 76 bytes
110         char                            orgtime[20];    // These fields map directly to those in imTimeInfoRec.
111         char                            alttime[20];
112         char                            orgreel[40];
113         char                            altreel[40];
114         // 196 bytes
115         char                            logcomment[256];
116         // 452 bytes
117 //      char                            pad[512-452-4];
118         ULONG                           audioSampleRate;                // 48000 or 96000
119         ULONG                           numChannels;                    // 2, 4, or 6
120         ULONG                           numAudioBlocks;                 // how many in the file?
121         // 464 bytes
122         char                            pad[36];
123
124         _int64                          audioBlockOffsets[kGoldenPageSize * 4];         // something like 4.5 hours max length (enough for now I guess)
125         ULONG                           audioBlockSizes[kGoldenPageSize * 4];
126
127         // For disk speed to work, this structure MUST be a multiple of sector size
128         ULONG                           len;                    // Length of TRAILER, *always* last!
129 } RDV_File2;
130
131 #endif //_BLUEVELVET_C_H