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 Page</span></a></li>
<li><a href="annotated.html"><span>Data 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
<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>
|