File: il__dpx_8h-source.html

package info (click to toggle)
devil 1.7.8-10
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, stretch
  • size: 9,796 kB
  • sloc: ansic: 45,835; sh: 15,558; cpp: 4,009; python: 1,300; pascal: 792; makefile: 307; cs: 192; fortran: 5
file content (171 lines) | stat: -rw-r--r-- 16,138 bytes parent folder | download | duplicates (5)
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>DevIL: /home/dwoods/DevIL/src-IL/include/il_dpx.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<h1>/home/dwoods/DevIL/src-IL/include/il_dpx.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// ImageLib Sources</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 2000-2009 by Denton Woods</span>
<a name="l00005"></a>00005 <span class="comment">// Last modified: 02/26/2009</span>
<a name="l00006"></a>00006 <span class="comment">//</span>
<a name="l00007"></a>00007 <span class="comment">// Filename: src-IL/include/il_dpx.h</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Description: Reads from a Digital Picture Exchange (.dpx) file.</span>
<a name="l00010"></a>00010 <span class="comment">//                              Specifications for this format were     found at</span>
<a name="l00011"></a>00011 <span class="comment">//                              http://www.cineon.com/ff_draft.php and</span>
<a name="l00012"></a>00012 <span class="comment">//                              http://www.fileformat.info/format/dpx/.</span>
<a name="l00013"></a>00013 <span class="comment">//</span>
<a name="l00014"></a>00014 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016 
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef DPX_H</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define DPX_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include "il_internal.h"</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifdef _WIN32</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(push, packed_struct, 1)</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>R32
<a name="l00027"></a>00027 {
<a name="l00028"></a>00028         ILubyte r, g, b, a;
<a name="l00029"></a>00029 } IL_PACKSTRUCT R32;
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef _WIN32</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(pop, packed_struct)</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_FILE_INFO
<a name="l00036"></a>00036 {
<a name="l00037"></a>00037     ILuint      MagicNum;        <span class="comment">/* magic number 0x53445058 (SDPX) or 0x58504453 (XPDS) */</span>
<a name="l00038"></a>00038     ILuint      Offset;           <span class="comment">/* offset to image data in bytes */</span>
<a name="l00039"></a>00039     ILbyte      Vers[8];          <span class="comment">/* which header format version is being used (v1.0)*/</span>
<a name="l00040"></a>00040     ILuint      FileSize;        <span class="comment">/* file size in bytes */</span>
<a name="l00041"></a>00041     ILuint      DittoKey;        <span class="comment">/* read time short cut - 0 = same, 1 = new */</span>
<a name="l00042"></a>00042     ILuint      GenHdrSize;     <span class="comment">/* generic header length in bytes */</span>
<a name="l00043"></a>00043     ILuint      IndHdrSize;     <span class="comment">/* industry header length in bytes */</span>
<a name="l00044"></a>00044     ILuint      UserDataSize;   <span class="comment">/* user-defined data length in bytes */</span>
<a name="l00045"></a>00045     ILbyte      FileName[100];   <span class="comment">/* image file name */</span>
<a name="l00046"></a>00046     ILbyte      CreateTime[24];  <span class="comment">/* file creation date "yyyy:mm:dd:hh:mm:ss:LTZ" */</span>
<a name="l00047"></a>00047     ILbyte      Creator[100];     <span class="comment">/* file creator's name */</span>
<a name="l00048"></a>00048     ILbyte      Project[200];     <span class="comment">/* project name */</span>
<a name="l00049"></a>00049     ILbyte      Copyright[200];   <span class="comment">/* right to use or copyright info */</span>
<a name="l00050"></a>00050     ILuint      Key;              <span class="comment">/* encryption ( FFFFFFFF = unencrypted ) */</span>
<a name="l00051"></a>00051     ILbyte      Reserved[104];    <span class="comment">/* reserved field TBD (need to pad) */</span>
<a name="l00052"></a>00052 } DPX_FILE_INFO;
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_IMAGE_ELEMENT
<a name="l00055"></a>00055 {
<a name="l00056"></a>00056     ILuint    DataSign;                 <span class="comment">/* data sign (0 = unsigned, 1 = signed ) */</span>
<a name="l00057"></a>00057                                                                 <span class="comment">/* "Core set images are unsigned" */</span>
<a name="l00058"></a>00058     ILuint              RefLowData;             <span class="comment">/* reference low data code value */</span>
<a name="l00059"></a>00059     R32                 RefLowQuantity; <span class="comment">/* reference low quantity represented */</span>
<a name="l00060"></a>00060     ILuint              RefHighData;    <span class="comment">/* reference high data code value */</span>
<a name="l00061"></a>00061     R32                 RefHighQuantity;<span class="comment">/* reference high quantity represented */</span>
<a name="l00062"></a>00062     ILubyte             Descriptor;             <span class="comment">/* descriptor for image element */</span>
<a name="l00063"></a>00063     ILubyte             Transfer;               <span class="comment">/* transfer characteristics for element */</span>
<a name="l00064"></a>00064     ILubyte             Colorimetric;   <span class="comment">/* colormetric specification for element */</span>
<a name="l00065"></a>00065     ILubyte             BitSize;                <span class="comment">/* bit size for element */</span>
<a name="l00066"></a>00066         ILushort        Packing;                <span class="comment">/* packing for element */</span>
<a name="l00067"></a>00067     ILushort    Encoding;               <span class="comment">/* encoding for element */</span>
<a name="l00068"></a>00068     ILuint              DataOffset;             <span class="comment">/* offset to data of element */</span>
<a name="l00069"></a>00069     ILuint              EolPadding;             <span class="comment">/* end of line padding used in element */</span>
<a name="l00070"></a>00070     ILuint              EoImagePadding; <span class="comment">/* end of image padding used in element */</span>
<a name="l00071"></a>00071     ILbyte              Description[32];<span class="comment">/* description of element */</span>
<a name="l00072"></a>00072 } DPX_IMAGE_ELEMENT;  <span class="comment">/* NOTE THERE ARE EIGHT OF THESE */</span>
<a name="l00073"></a>00073 
<a name="l00074"></a>00074 
<a name="l00075"></a>00075 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_IMAGE_INFO
<a name="l00076"></a>00076 {
<a name="l00077"></a>00077     ILushort    Orientation;          <span class="comment">/* image orientation */</span>
<a name="l00078"></a>00078     ILushort    NumElements;       <span class="comment">/* number of image elements */</span>
<a name="l00079"></a>00079     ILuint              Width;      <span class="comment">/* or x value */</span>
<a name="l00080"></a>00080     ILuint              Height;  <span class="comment">/* or y value, per element */</span>
<a name="l00081"></a>00081         DPX_IMAGE_ELEMENT       ImageElement[8];
<a name="l00082"></a>00082     ILubyte             reserved[52];             <span class="comment">/* reserved for future use (padding) */</span>
<a name="l00083"></a>00083 } DPX_IMAGE_INFO;
<a name="l00084"></a>00084 
<a name="l00085"></a>00085 
<a name="l00086"></a>00086 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_IMAGE_ORIENT
<a name="l00087"></a>00087 {
<a name="l00088"></a>00088     ILuint              XOffset;               <span class="comment">/* X offset */</span>
<a name="l00089"></a>00089     ILuint              YOffset;               <span class="comment">/* Y offset */</span>
<a name="l00090"></a>00090     R32                 XCenter;               <span class="comment">/* X center */</span>
<a name="l00091"></a>00091     R32                 YCenter;               <span class="comment">/* Y center */</span>
<a name="l00092"></a>00092     ILuint              XOrigSize;            <span class="comment">/* X original size */</span>
<a name="l00093"></a>00093     ILuint              YOrigSize;            <span class="comment">/* Y original size */</span>
<a name="l00094"></a>00094     ILbyte              FileName[100];         <span class="comment">/* source image file name */</span>
<a name="l00095"></a>00095     ILbyte              CreationTime[24];      <span class="comment">/* source image creation date and time */</span>
<a name="l00096"></a>00096     ILbyte              InputDev[32];          <span class="comment">/* input device name */</span>
<a name="l00097"></a>00097     ILbyte              InputSerial[32];       <span class="comment">/* input device serial number */</span>
<a name="l00098"></a>00098     ILushort    Border[4];              <span class="comment">/* border validity (XL, XR, YT, YB) */</span>
<a name="l00099"></a>00099     ILuint              PixelAspect[2];        <span class="comment">/* pixel aspect ratio (H:V) */</span>
<a name="l00100"></a>00100     ILubyte             Reserved[28];           <span class="comment">/* reserved for future use (padding) */</span>
<a name="l00101"></a>00101 } DPX_IMAGE_ORIENT;
<a name="l00102"></a>00102 
<a name="l00103"></a>00103 
<a name="l00104"></a>00104 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_MOTION_PICTURE_HEAD
<a name="l00105"></a>00105 {
<a name="l00106"></a>00106     ILbyte film_mfg_id[2];    <span class="comment">/* film manufacturer ID code (2 digits from film edge code) */</span>
<a name="l00107"></a>00107     ILbyte film_type[2];      <span class="comment">/* file type (2 digits from film edge code) */</span>
<a name="l00108"></a>00108     ILbyte offset[2];         <span class="comment">/* offset in perfs (2 digits from film edge code)*/</span>
<a name="l00109"></a>00109     ILbyte prefix[6];         <span class="comment">/* prefix (6 digits from film edge code) */</span>
<a name="l00110"></a>00110     ILbyte count[4];          <span class="comment">/* count (4 digits from film edge code)*/</span>
<a name="l00111"></a>00111     ILbyte format[32];        <span class="comment">/* format (i.e. academy) */</span>
<a name="l00112"></a>00112     ILuint   frame_position;    <span class="comment">/* frame position in sequence */</span>
<a name="l00113"></a>00113     ILuint   sequence_len;      <span class="comment">/* sequence length in frames */</span>
<a name="l00114"></a>00114     ILuint   held_count;        <span class="comment">/* held count (1 = default) */</span>
<a name="l00115"></a>00115     R32   frame_rate;        <span class="comment">/* frame rate of original in frames/sec */</span>
<a name="l00116"></a>00116     R32   shutter_angle;     <span class="comment">/* shutter angle of camera in degrees */</span>
<a name="l00117"></a>00117     ILbyte frame_id[32];      <span class="comment">/* frame identification (i.e. keyframe) */</span>
<a name="l00118"></a>00118     ILbyte slate_info[100];   <span class="comment">/* slate information */</span>
<a name="l00119"></a>00119     ILubyte    reserved[56];      <span class="comment">/* reserved for future use (padding) */</span>
<a name="l00120"></a>00120 } DPX_MOTION_PICTURE_HEAD;
<a name="l00121"></a>00121 
<a name="l00122"></a>00122 
<a name="l00123"></a>00123 <span class="keyword">typedef</span> <span class="keyword">struct </span>DPX_TELEVISION_HEAD
<a name="l00124"></a>00124 {
<a name="l00125"></a>00125     ILuint tim_code;            <span class="comment">/* SMPTE time code */</span>
<a name="l00126"></a>00126     ILuint userBits;            <span class="comment">/* SMPTE user bits */</span>
<a name="l00127"></a>00127     ILubyte  interlace;           <span class="comment">/* interlace ( 0 = noninterlaced, 1 = 2:1 interlace*/</span>
<a name="l00128"></a>00128     ILubyte  field_num;           <span class="comment">/* field number */</span>
<a name="l00129"></a>00129     ILubyte  video_signal;        <span class="comment">/* video signal standard (table 4)*/</span>
<a name="l00130"></a>00130     ILubyte  unused;              <span class="comment">/* used for byte alignment only */</span>
<a name="l00131"></a>00131     R32 hor_sample_rate;     <span class="comment">/* horizontal sampling rate in Hz */</span>
<a name="l00132"></a>00132     R32 ver_sample_rate;     <span class="comment">/* vertical sampling rate in Hz */</span>
<a name="l00133"></a>00133     R32 frame_rate;          <span class="comment">/* temporal sampling rate or frame rate in Hz */</span>
<a name="l00134"></a>00134     R32 time_offset;         <span class="comment">/* time offset from sync to first pixel */</span>
<a name="l00135"></a>00135     R32 gamma;               <span class="comment">/* gamma value */</span>
<a name="l00136"></a>00136     R32 black_level;         <span class="comment">/* black level code value */</span>
<a name="l00137"></a>00137     R32 black_gain;          <span class="comment">/* black gain */</span>
<a name="l00138"></a>00138     R32 break_point;         <span class="comment">/* breakpoint */</span>
<a name="l00139"></a>00139     R32 white_level;         <span class="comment">/* reference white level code value */</span>
<a name="l00140"></a>00140     R32 integration_times;   <span class="comment">/* integration time(s) */</span>
<a name="l00141"></a>00141     ILubyte  reserved[76];        <span class="comment">/* reserved for future use (padding) */</span>
<a name="l00142"></a>00142 } DPX_TELEVISION_HEAD;
<a name="l00143"></a>00143 
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 <span class="comment">// For checking and reading</span>
<a name="l00146"></a>00146 ILboolean iIsValidDpx(<span class="keywordtype">void</span>);
<a name="l00147"></a>00147 <span class="comment">//ILboolean iCheckDpx(DPXHEAD *Header);</span>
<a name="l00148"></a>00148 ILboolean iLoadDpxInternal(<span class="keywordtype">void</span>);
<a name="l00149"></a>00149 
<a name="l00150"></a>00150 <span class="preprocessor">#endif//PCX_H</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 8 20:01:41 2009 for DevIL by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>