Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cineonfile.h « cineon « intern « imbuf « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 896e0af65b307af5fd86a1d5a7f17c67a5c3e619 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/** \file blender/imbuf/intern/cineon/cineonfile.h
 *  \ingroup imbcineon
 */
/*
 *	 Cineon image file format library definitions.
 *	 Cineon file format structures.
 *
 *	 This header file contains private details.
 *	 User code should generally use cineonlib.h only.
 *
 *	 Copyright 1999,2000,2001 David Hodson <hodsond@acm.org>
 *
 *	 This program is free software; you can redistribute it and/or modify it
 *	 under the terms of the GNU General Public License as published by the Free
 *	 Software Foundation; either version 2 of the License, or (at your option)
 *	 any later version.
 *
 *	 This program is distributed in the hope that it will be useful, but
 *	 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 *	 or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU General Public License
 *	 for more details.
 *
 *	 You should have received a copy of the GNU General Public License
 *	 along with this program; if not, write to the Free Software
 *	 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 */

#ifndef _CINEON_FILE_H_
#define _CINEON_FILE_H_

#include "logImageCore.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
		U32		magic_num;				/* magic number */
		U32		image_offset;			/* offset to image data in bytes */
		U32		gen_hdr_size;			/* generic header length in bytes */
		U32		ind_hdr_size;			/* industry header length in bytes */
		U32		user_data_size;		/* user-defined data length in bytes */
		U32		file_size;				/* file size in bytes */
		ASCII vers[8];					/* which header format version is being used (v4.5) */
		ASCII file_name[100];		/* image file name */
		ASCII create_date[12];	/* file creation date */
		ASCII create_time[12];	/* file creation time */
		ASCII Reserved[36];			/* reserved field TBD (need to pad) */
} CineonFileInformation;

typedef struct {
		U8		 designator1;
		U8		 designator2;
		U8		 bits_per_pixel;
		U8		 filler;
		U32		 pixels_per_line;
		U32		 lines_per_image;
		U32		 ref_low_data;		 /* reference low data code value */
		R32		 ref_low_quantity; /* reference low quantity represented */
		U32		 ref_high_data;		 /* reference high data code value */
		R32		 ref_high_quantity;/* reference high quantity represented */
} CineonChannelInformation;

typedef struct {
		U8		 orientation;					 /* image orientation */
		U8		 channels_per_image;
		U16		 filler;
		CineonChannelInformation channel[8];
		R32		 white_point_x;
		R32		 white_point_y;
		R32		 red_primary_x;
		R32		 red_primary_y;
		R32		 green_primary_x;
		R32		 green_primary_y;
		R32		 blue_primary_x;
		R32		 blue_primary_y;
		ASCII	 label[200];
		ASCII	 reserved[28];
} CineonImageInformation;

typedef struct {
		U8		interleave;
		U8		packing;
		U8		signage;
		U8		sense;
		U32		line_padding;
		U32		channel_padding;
		ASCII reserved[20];
} CineonFormatInformation;

typedef struct {
		S32		x_offset;
		S32		y_offset;
		ASCII file_name[100];
		ASCII create_date[12];	/* file creation date */
		ASCII create_time[12];	/* file creation time */
		ASCII input_device[64];
		ASCII model_number[32];
		ASCII serial_number[32];
		R32		x_input_samples_per_mm;
		R32		y_input_samples_per_mm;
		R32		input_device_gamma;
		ASCII reserved[40];
} CineonOriginationInformation;

typedef struct {
	CineonFileInformation fileInfo;
	CineonImageInformation imageInfo;
	CineonFormatInformation formatInfo;
	CineonOriginationInformation originInfo;
} CineonGenericHeader;

typedef struct {
	U8 filmCode;
	U8 filmType;
	U8 perfOffset;
	U8 filler;
	U32 keycodePrefix;
	U32 keycodeCount;
	ASCII format[32];
	U32 framePosition; /* in sequence */
	R32 frameRate; /* frames per second */
	ASCII attribute[32];
	ASCII slate[200];
	ASCII reserved[740];
} CineonMPISpecificInformation;

#ifdef __cplusplus
}
#endif

#endif /* _CINEON_FILE_H_ */