2 // ==========================================================================
3 // Bluefish444 BlueVelvet SDK library
7 // LARGELY superseded by dynamic calculations
10 $Id: BlueVelvet_c.h,v 1.4 2002/10/02 00:29:53 cameron Exp $
12 // developed by : Cameron Duffy (C) 2002 Bluefish444 P/L
13 // ==========================================================================
17 //----------------------------------------------------------------------------
18 #ifndef _BLUEVELVET_C_H
19 #define _BLUEVELVET_C_H
21 //----------------------------------------------------------------------------------------------------------------------
22 // File SUB-types supported
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)
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)
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)
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'
55 // align this structure on 512 byte boundary!
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
75 char orgtime[20]; // These fields map directly to those in imTimeInfoRec.
82 // char pad[512-452-4];
84 // For disk speed to work, this structure MUST be a multiple of sector size
85 ULONG len; // Length of TRAILER, *always* last!
87 //#define SIZE_RDV_FILE 512
89 #define kGoldenPageSize 4096
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
110 char orgtime[20]; // These fields map directly to those in imTimeInfoRec.
115 char logcomment[256];
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?
124 _int64 audioBlockOffsets[kGoldenPageSize * 4]; // something like 4.5 hours max length (enough for now I guess)
125 ULONG audioBlockSizes[kGoldenPageSize * 4];
127 // For disk speed to work, this structure MUST be a multiple of sector size
128 ULONG len; // Length of TRAILER, *always* last!
131 #endif //_BLUEVELVET_C_H