Movie Clip Node: skip putting frame to cache when rendering animation
[blender.git] / source / blender / imbuf / intern / cineon / cineonfile.h
1 /*
2  *       Cineon image file format library definitions.
3  *       Cineon file format structures.
4  *
5  *       This header file contains private details.
6  *       User code should generally use cineonlib.h only.
7  *
8  *       Copyright 1999,2000,2001 David Hodson <hodsond@acm.org>
9  *
10  *       This program is free software; you can redistribute it and/or modify it
11  *       under the terms of the GNU General Public License as published by the Free
12  *       Software Foundation; either version 2 of the License, or (at your option)
13  *       any later version.
14  *
15  *       This program is distributed in the hope that it will be useful, but
16  *       WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17  *       or FITNESS FOR A PARTICULAR PURPOSE.    See the GNU General Public License
18  *       for more details.
19  *
20  *       You should have received a copy of the GNU General Public License
21  *       along with this program; if not, write to the Free Software
22  *       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  *
24  */
25
26 #ifndef __CINEONFILE_H__
27 #define __CINEONFILE_H__
28
29 /** \file blender/imbuf/intern/cineon/cineonfile.h
30  *  \ingroup imbcineon
31  */
32
33 #include "logImageCore.h"
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 typedef struct {
40                 U32             magic_num;                              /* magic number */
41                 U32             image_offset;                   /* offset to image data in bytes */
42                 U32             gen_hdr_size;                   /* generic header length in bytes */
43                 U32             ind_hdr_size;                   /* industry header length in bytes */
44                 U32             user_data_size;         /* user-defined data length in bytes */
45                 U32             file_size;                              /* file size in bytes */
46                 ASCII vers[8];                                  /* which header format version is being used (v4.5) */
47                 ASCII file_name[100];           /* image file name */
48                 ASCII create_date[12];  /* file creation date */
49                 ASCII create_time[12];  /* file creation time */
50                 ASCII Reserved[36];                     /* reserved field TBD (need to pad) */
51 } CineonFileInformation;
52
53 typedef struct {
54                 U8               designator1;
55                 U8               designator2;
56                 U8               bits_per_pixel;
57                 U8               filler;
58                 U32              pixels_per_line;
59                 U32              lines_per_image;
60                 U32              ref_low_data;           /* reference low data code value */
61                 R32              ref_low_quantity; /* reference low quantity represented */
62                 U32              ref_high_data;          /* reference high data code value */
63                 R32              ref_high_quantity;/* reference high quantity represented */
64 } CineonChannelInformation;
65
66 typedef struct {
67                 U8               orientation;                                    /* image orientation */
68                 U8               channels_per_image;
69                 U16              filler;
70                 CineonChannelInformation channel[8];
71                 R32              white_point_x;
72                 R32              white_point_y;
73                 R32              red_primary_x;
74                 R32              red_primary_y;
75                 R32              green_primary_x;
76                 R32              green_primary_y;
77                 R32              blue_primary_x;
78                 R32              blue_primary_y;
79                 ASCII    label[200];
80                 ASCII    reserved[28];
81 } CineonImageInformation;
82
83 typedef struct {
84                 U8              interleave;
85                 U8              packing;
86                 U8              signage;
87                 U8              sense;
88                 U32             line_padding;
89                 U32             channel_padding;
90                 ASCII reserved[20];
91 } CineonFormatInformation;
92
93 typedef struct {
94                 S32             x_offset;
95                 S32             y_offset;
96                 ASCII file_name[100];
97                 ASCII create_date[12];  /* file creation date */
98                 ASCII create_time[12];  /* file creation time */
99                 ASCII input_device[64];
100                 ASCII model_number[32];
101                 ASCII serial_number[32];
102                 R32             x_input_samples_per_mm;
103                 R32             y_input_samples_per_mm;
104                 R32             input_device_gamma;
105                 ASCII reserved[40];
106 } CineonOriginationInformation;
107
108 typedef struct {
109         CineonFileInformation fileInfo;
110         CineonImageInformation imageInfo;
111         CineonFormatInformation formatInfo;
112         CineonOriginationInformation originInfo;
113 } CineonGenericHeader;
114
115 typedef struct {
116         U8 filmCode;
117         U8 filmType;
118         U8 perfOffset;
119         U8 filler;
120         U32 keycodePrefix;
121         U32 keycodeCount;
122         ASCII format[32];
123         U32 framePosition; /* in sequence */
124         R32 frameRate; /* frames per second */
125         ASCII attribute[32];
126         ASCII slate[200];
127         ASCII reserved[740];
128 } CineonMPISpecificInformation;
129
130 #ifdef __cplusplus
131 }
132 #endif
133
134 #endif /* __CINEONFILE_H__ */