AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
dpx_hdr.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef DPX_HDR_H
9 #define DPX_HDR_H
10 
11 #include "public.h"
12 #include "ajabase/common/types.h"
13 #include "ajabase/system/system.h"
14 
15 #include <string>
16 
17 
18 #define DPX_C_MAGIC 0x53445058
19 #define DPX_C_MAGIC_BE 0x58504453
20 #define DPX_C_VERSION "V1.0"
21 #define DPX_C_UNDEFINED_FLOAT 0xffffffff
23 #define SWAP16(e,v) ((e) ? htons(v) : (v))
24 #define SWAP32(e,v) ((e) ? htonl(v) : (v))
25 #define SWAPR32(e,v) ((e) ? htonf(v) : (v))
26 #define UNSWAP16(e,v) ((e) ? ntohs(v) : (v))
27 #define UNSWAP32(e,v) ((e) ? ntohl(v) : (v))
28 #define UNSWAPR32(e,v) ((e) ? ntohf(v) : (v))
29 
30 #define DPX_VALID(p) \
31  ((p) && (((p)->file_info.magic_num==DPX_C_MAGIC) || \
32  ((p)->file_info.magic_num==DPX_C_MAGIC_BE)))
33 
34 #define DPX_IS_BE(p) \
35  ((p) && ((p)->file_info.magic_num == DPX_C_MAGIC_BE))
36 
37 #define DPX_C_IMAGE_ELEM_DESC_RGB 50
38 #define DPX_C_IMAGE_ELEM_DESC_RGBA 51
39 #define DPX_C_IMAGE_ELEM_DESC_ARGB 52
40 #define DPX_C_IMAGE_ELEM_DESC_422 100
41 #define DPX_C_IMAGE_ELEM_DESC_444 102
42 
43 
44 typedef struct dpx_file_info_struct
45 {
46  uint32_t magic_num; /* magic number 0x53445058 (SDPX) or 0x58504453 (XPDS) */
47  uint32_t offset; /* offset to image data in bytes */
48  uint8_t vers[8]; /* which header format version is being used (v1.0)*/
49  uint32_t file_size; /* file size in bytes */
50  uint32_t ditto_key; /* read time short cut - 0 = same, 1 = new */
51  uint32_t gen_hdr_size; /* generic header length in bytes */
52  uint32_t ind_hdr_size; /* industry header length in bytes */
53  uint32_t user_data_size;/* user-defined data length in bytes */
54  uint8_t file_name[100]; /* iamge file name */
55  uint8_t create_time[24]; /* file creation date "yyyy:mm:dd:hh:mm:ss:LTZ" */
56  uint8_t creator[100]; /* file creator's name */
57  uint8_t project[200]; /* project name */
58  uint8_t copyright[200]; /* right to use or copyright info */
59  uint32_t key; /* encryption ( FFFFFFFF = unencrypted ) */
60  union
61  {
62  uint8_t Reserved[104]; /* reserved field TBD (need to pad) */
63  struct
64  {
65  uint32_t tcFrame; /* Timecode as a frame number */
66  uint32_t filenum; /* FileNumber of preallocated files */
67  uint8_t rid;
68  uint8_t sid;
69  uint8_t tid;
70  uint8_t pad;
71  } s2;
72  } resv;
74 
75 
77 {
78  uint32_t data_sign; /* data sign (0 = unsigned, 1 = signed ) */
79  /* "Core set images are unsigned" */
80  uint32_t ref_low_data; /* reference low data code value */
81  float ref_low_quantity; /* reference low quantity represented */
82  uint32_t ref_high_data; /* reference high data code value */
83  float ref_high_quantity; /* reference high quantity represented */
84  uint8_t descriptor; /* descriptor for image element */
85  uint8_t transfer; /* transfer uint8_tacteristics for element */
86  uint8_t colorimetric; /* colormetric specification for element */
87  uint8_t bit_size; /* bit size for element */
88  uint16_t packing; /* packing for element */
89  uint16_t encoding; /* encoding for element */
90  uint32_t data_offset; /* offset to data of element */
91  uint32_t eol_padding; /* end of line padding used in element */
92  uint32_t eo_image_padding; /* end of image padding used in element */
93  uint8_t description[32]; /* description of element */
95 
96 
97 typedef struct dpx_image_info_struct
98 {
99  uint16_t orientation; /* image orientation */
100  uint16_t element_number; /* number of image elements */
101  uint32_t pixels_per_line; /* or x value */
102  uint32_t lines_per_image_ele; /* or y value, per element */
104  uint8_t reserved[52]; /* reserved for future use (padding) */
106 
107 
108 
110 {
111  uint32_t x_offset; /* X offset */
112  uint32_t y_offset; /* Y offset */
113  float x_center; /* X center */
114  float y_center; /* Y center */
115  uint32_t x_orig_size; /* X original size */
116  uint32_t y_orig_size; /* Y original size */
117  uint8_t file_name[100]; /* source image file name */
118  uint8_t creation_time[24]; /* source image creation date and time */
119  uint8_t input_dev[32]; /* input device name */
120  uint8_t input_serial[32]; /* input device serial number */
121  uint16_t border[4]; /* border validity (XL, XR, YT, YB) */
122  uint32_t pixel_aspect[2]; /* pixel aspect ratio (H:V) */
123  uint8_t reserved[28]; /* reserved for future use (padding) */
125 
126 
127 
129 {
130  uint8_t film_mfg_id[2]; /* film manufacturer ID code (2 digits from film edge code) */
131  uint8_t film_type[2]; /* file type (2 digits from film edge code) */
132  uint8_t offset[2]; /* offset in perfs (2 digits from film edge code)*/
133  uint8_t prefix[6]; /* prefix (6 digits from film edge code) */
134  uint8_t count[4]; /* count (4 digits from film edge code)*/
135  uint8_t format[32]; /* format (i.e. academy) */
136  uint32_t frame_position; /* frame position in sequence */
137  uint32_t sequence_len; /* sequence length in frames */
138  uint32_t held_count; /* held count (1 = default) */
139  float frame_rate; /* frame rate of original in frames/sec */
140  float shutter_angle; /* shutter angle of camera in degrees */
141  uint8_t frame_id[32]; /* frame identification (i.e. keyframe) */
142  uint8_t slate_info[100]; /* slate information */
143  uint8_t reserved[56]; /* reserved for future use (padding) */
144 } DPX_film_t;
145 
146 
147 
148 
150 {
151  uint32_t tim_code; /* SMPTE time code */
152  uint32_t userBits; /* SMPTE user bits */
153  uint8_t interlace; /* interlace ( 0 = noninterlaced, 1 = 2:1 interlace*/
154  uint8_t field_num; /* field number */
155  uint8_t video_signal; /* video signal standard (table 4)*/
156  uint8_t unused; /* used for byte alignment only */
157  float hor_sample_rate; /* horizontal sampling rate in Hz */
158  float ver_sample_rate; /* vertical sampling rate in Hz */
159  float frame_rate; /* temporal sampling rate or frame rate in Hz */
160  float time_offset; /* time offset from sync to first pixel */
161  float gamma; /* gamma value */
162  float black_level; /* black level code value */
163  float black_gain; /* black gain */
164  float break_point; /* breakpoint */
165  float white_level; /* reference white level code value */
166  float integration_times; /* integration time(s) */
167  uint8_t reserved[76]; /* reserved for future use (padding) */
169 
170 
171 typedef struct dpx_header_struct
172 {
178 #ifdef NTV4_RAID_SUPPORT
179  uint8_t reserved[2048];
180 #endif
181 } DPX_header_t;
182 
183 
184 uint32_t AJA_EXPORT dpx_get_u32(const uint32_t *ptr, bool BE );
185 void AJA_EXPORT dpx_set_u32(uint32_t *ptr, bool BE, uint32_t val );
186 uint16_t AJA_EXPORT dpx_get_u16(const uint16_t *ptr, bool BE );
187 void AJA_EXPORT dpx_set_u16(uint16_t *ptr, bool BE, uint16_t val );
188 float AJA_EXPORT dpx_get_r32(const float *ptr, bool BE );
189 void AJA_EXPORT dpx_set_r32(float *ptr, bool BE, float val );
190 
191 
192 #define FLD_OFFET( TYPE,field) \
193  ((uint32_t)(&(((TYPE *)0)->field)))
194 
195 #define DPX_GET_U32(hdr,fld) \
196  DPX_VALID(hdr) ? \
197  dpx_get_u32(&(hdr)->fld,DPX_IS_BE(hdr)) : \
198  (uint32_t)(-1)
199 
200 #define DPX_SET_U32(hdr,fld,val) \
201  do { \
202  if ( DPX_VALID(hdr)) \
203  dpx_set_u32(&(hdr)->fld,DPX_IS_BE(hdr),val); \
204  } while(0)
205 
206 
207 #define DPX_GET_R32(hdr,fld) \
208  DPX_VALID(hdr) ? \
209  dpx_get_r32(&(hdr)->fld,DPX_IS_BE(hdr)) : \
210  (float)(0xffffffff)
211 
212 #define DPX_SET_R32(hdr,fld,val) \
213  do { \
214  if ( DPX_VALID(hdr)) \
215  dpx_set_r32(&(hdr)->fld,DPX_IS_BE(hdr),val); \
216  } while(0)
217 
218 #define DPX_GET_U16(hdr,fld) \
219  DPX_VALID(hdr) ? \
220  dpx_get_u16(&(hdr)->fld,DPX_IS_BE(hdr)) : \
221  (uint16_t)(-1)
222 
223 #define DPX_SET_U16(hdr,fld,val) \
224  do { \
225  if ( DPX_VALID(hdr)) \
226  dpx_set_u16(&(hdr)->fld,DPX_IS_BE(hdr),val); \
227  } while(0)
228 
229 
230 #define DPX_GET_U8(hdr,fld) \
231  DPX_VALID(hdr) ? (hdr)->fld : (uint8_t)(-1)
232 
233 
234 #define DPX_SET_U8(hdr,fld,val) \
235  if ( DPX_VALID(hdr)) \
236  (hdr)->fld = val
237 
238 #define DPX_SET_TEXT(hdr,fld,buf,len) \
239  if ( DPX_VALID(hdr)) \
240  memcpy((void*)&((hdr)->fld),(const void*)buf,len)
241 
242 
243 #define DPX_GET_TEXT(hdr,fld,buf,len) \
244  DPX_VALID(hdr) ? \
245  memcpy((void*)buf,(const void*)&((hdr)->fld),len) : \
246  memset((void*)buf,0xff,len)
247 
248 
250 {
251 public:
252  DpxHdr(void) { init(DPX_C_MAGIC_BE); }
253  ~DpxHdr();
254 
255  DpxHdr& operator=(const DpxHdr& rhs);
256 
257  void init(uint32_t endianness);
258  bool valid() const;
259 
260  bool IsBigEndian() { return DPX_IS_BE(&m_hdr); }
261 
262  std::string get_fi_time_stamp() const;
263  void set_fi_time_stamp();
264 
265  void set_s2_tcframe(uint32_t frame);
266  size_t get_s2_tcframe() const;
267 
268  uint32_t get_s2_filenumber() const;
269  void set_s2_filenumber(uint32_t fr);
270 
271  void set_s2_ids(uint8_t rid, uint8_t sid, uint8_t tid);
272  void get_s2_ids(uint8_t *rid, uint8_t *sid, uint8_t *tid) const;
273 
274  size_t get_file_size();
275  size_t get_generic_hdr_size();
276  size_t get_industry_hdr_size();
277  size_t get_user_hdr_size();
278 
279  // File Info access
280  //
281  size_t get_fi_image_offset() const;
282  void set_fi_image_offset(size_t offs );
283 
284  size_t get_fi_file_size() const;
285  void set_fi_file_size(size_t offs );
286 
287  std::string get_fi_version() const;
288  void set_fi_version(const std::string& str);
289 
290  std::string get_fi_file_name() const;
291  void set_fi_file_name(const std::string& str);
292 
293  std::string get_fi_creator() const;
294  void set_fi_creator(const std::string& str);
295 
296  std::string get_fi_create_time() const;
297  void set_fi_create_time(const std::string& str);
298 
299  std::string get_fi_project() const;
300  void set_fi_project(const std::string& str);
301 
302  std::string get_fi_copyright() const;
303  void set_fi_copyright(const std::string& str);
304 
305  // Image Info
306  void set_ii_orientation(uint16_t orientation );
307  uint16_t get_ii_orientation() const;
308 
309  void set_ii_element_number(uint16_t element_number );
310  uint16_t get_ii_element_number() const;
311 
312  void set_ii_pixels(uint32_t pixels );
313  size_t get_ii_pixels() const;
314 
315  void set_ii_lines(uint32_t lines );
316  size_t get_ii_lines(void ) const;
317 
319  {
320  // Note: Incorrect for some configs
321  uint32_t expectedSize = -1;
322  if (get_ie_descriptor() == 50)
323  {
324  if ( get_ie_bit_size() == 10 )
325  expectedSize = (uint32_t)(get_ii_pixels() * get_ii_lines() * 4);
326  else
327  expectedSize = (uint32_t)(get_ii_pixels() * get_ii_lines() * 6); // 12 bit unpacked or 16 bit
328  }
329  else if (get_ie_descriptor() == 100)
330  {
331  if (get_ii_pixels() % 48 == 0)
332  expectedSize = (uint32_t)(get_ii_pixels() * get_ii_lines() * 8 / 3);
333  else
334  expectedSize = (uint32_t)(((get_ii_pixels()/48+1)*48) * get_ii_lines() * 8 / 3);
335  }
336 
337  // Turns out some writers(NUKE for example) don't write correct size to (get_fi_file_size()...so check elsewhere
338 // if (0 == get_fi_file_size())
339 // {
340 // return (0);
341 // }
342 
343  // uint32_t sizeInFile = (uint32_t)(get_fi_file_size() - get_fi_image_offset());
344  // if ( sizeInFile < expectedSize)
345  // return sizeInFile;
346  // else
347  return expectedSize;
348 
349  }
350 
351  // Image Element
352  void set_ie_data_sign (uint32_t sign, int i=0);
353  size_t get_ie_data_sign(int i = 0);
354 
355  void set_ie_ref_low_data(uint32_t data, int i=0);
356  size_t get_ie_ref_low_data(int i = 0) const;
357 
358  void set_ie_ref_high_data(uint32_t data, int i=0);
359  size_t get_ie_ref_high_data(int i = 0) const;
360 
361  void set_ie_ref_low_quantity(float data, int i=0);
362  float get_ie_ref_low_quantity(int i = 0) const;
363 
364  void set_ie_ref_high_quantity(float data, int i=0);
365  float get_ie_ref_high_quantity(int i = 0) const;
366 
367  void set_ie_descriptor(uint8_t desc, int i = 0);
368  uint8_t get_ie_descriptor(int i = 0) const;
369 
370  void set_ie_transfer(uint8_t trans, int i = 0);
371  uint8_t get_ie_transfer(int i = 0) const;
372 
373  void set_ie_colorimetric(uint8_t c, int i = 0);
374  uint8_t get_ie_colorimetric(int i = 0) const;
375 
376  void set_ie_bit_size(uint8_t bits, int i = 0);
377  uint8_t get_ie_bit_size(int i = 0) const;
378 
379  void set_ie_packing(uint16_t pack, int i = 0);
380  uint16_t get_ie_packing (int i = 0) const;
381 
382  void set_ie_encoding(uint16_t enc, int i = 0);
383  uint16_t get_ie_encoding(int i = 0) const;
384 
385  void set_ie_data_offset(uint32_t offs, int i = 0);
386  uint32_t get_ie_data_offset (int i = 0) const;
387 
388  void set_ie_eol_padding(uint32_t padding, int i = 0);
389  uint32_t get_ie_eol_padding(int i = 0) const;
390 
391  void set_ie_eo_image_padding(uint32_t padding, int i = 0);
392  uint32_t get_ie_eo_image_padding(int i = 0) const;
393 
394  std::string get_ie_description(int i=0) const;
395  void set_ie_description(const std::string& str, int i = 0);
396 
397  // Image Source access.
398  std::string get_is_filename() const;
399  void set_is_filename(const std::string& str);
400 
401  std::string get_is_creation_time() const;
402  void set_is_creation_time(const std::string& str);
403 
404  std::string get_is_input_device() const;
405  void set_is_input_device(const std::string& str);
406 
407  std::string get_is_input_serial() const;
408  void set_is_input_serial(const std::string& str);
409 
410  // Film header
411  std::string get_film_mfg_id() const;
412  void set_film_mfg_id(const std::string& str);
413 
414  std::string get_film_type() const;
415  void set_film_type(const std::string& str);
416 
417  std::string get_film_offset() const;
418  void set_film_offset(const std::string& str);
419 
420  std::string get_film_prefix() const;
421  void set_film_prefix(const std::string& str);
422 
423  std::string get_film_count() const;
424  void set_film_count(const std::string& str);
425 
426  std::string get_film_format() const;
427  void set_film_format(const std::string& str);
428 
429  size_t get_film_frame_position() const;
430  void set_film_frame_position(size_t pos );
431 
432  size_t get_film_sequence_len() const;
433  void set_film_sequence_len(size_t len );
434 
435  size_t get_film_held_count() const;
436  void set_film_held_count(size_t count );
437 
438  float get_film_frame_rate () const;
439  void set_film_frame_rate (float len );
440 
441  float get_film_shutter_angle() const;
442  void set_film_shutter_angle(float );
443 
444  std::string get_film_frame_id() const;
445  void set_film_frame_id(const std::string& str);
446 
447  std::string get_film_slate_info() const;
448  void set_film_slate_info(const std::string& str);
449 
450  // TV header
451  size_t get_tv_timecode() const;
452  void set_tv_timecode(size_t tc);
453 
454  size_t get_tv_userbits() const;
455  void set_tv_userbits(size_t tc);
456 
457  float get_tv_frame_rate() const;
458  void set_tv_frame_rate(float fr);
459 
460  uint8_t get_tv_interlace() const;
461  void set_tv_interlace(uint8_t interlace);
462 
463  const DPX_header_t& GetHdr(void) const
464  {
465  return (m_hdr);
466  }
467 
469  {
470  return (m_hdr);
471  }
472 
473  size_t GetHdrSize(void) const
474  {
475  return (sizeof(DPX_header_t));
476  }
477 
478 private:
479  DPX_header_t m_hdr;
480 };
481 
482 
483 #endif // DPX_HDR_H
dpx_image_source_struct::creation_time
uint8_t creation_time[24]
Definition: dpx_hdr.h:118
dpx_image_source_struct::x_orig_size
uint32_t x_orig_size
Definition: dpx_hdr.h:115
dpx_television_header_struct::field_num
uint8_t field_num
Definition: dpx_hdr.h:154
dpx_image_element_struct::bit_size
uint8_t bit_size
Definition: dpx_hdr.h:87
dpx_file_info_struct::magic_num
uint32_t magic_num
Definition: dpx_hdr.h:46
dpx_file_info_struct::sid
uint8_t sid
Definition: dpx_hdr.h:68
dpx_header_struct::image_source
DPX_image_source_t image_source
Definition: dpx_hdr.h:175
dpx_file_info_struct::project
uint8_t project[200]
Definition: dpx_hdr.h:57
dpx_file_info_struct::vers
uint8_t vers[8]
Definition: dpx_hdr.h:48
dpx_television_header_struct::interlace
uint8_t interlace
Definition: dpx_hdr.h:153
dpx_file_info_struct::tcFrame
uint32_t tcFrame
Definition: dpx_hdr.h:65
DPX_file_info_t
struct dpx_file_info_struct DPX_file_info_t
dpx_image_element_struct::data_sign
uint32_t data_sign
Definition: dpx_hdr.h:78
types.h
Declares common types used in the ajabase library.
dpx_image_info_struct::reserved
uint8_t reserved[52]
Definition: dpx_hdr.h:104
dpx_television_header_struct::break_point
float break_point
Definition: dpx_hdr.h:164
dpx_motion_picture_film_header_struct::format
uint8_t format[32]
Definition: dpx_hdr.h:135
DPX_film_t
struct dpx_motion_picture_film_header_struct DPX_film_t
dpx_image_element_struct::colorimetric
uint8_t colorimetric
Definition: dpx_hdr.h:86
dpx_image_element_struct::data_offset
uint32_t data_offset
Definition: dpx_hdr.h:90
AJA_EXPORT
#define AJA_EXPORT
Definition: export.h:34
dpx_file_info_struct::gen_hdr_size
uint32_t gen_hdr_size
Definition: dpx_hdr.h:51
DpxHdr::GetHdr
const DPX_header_t & GetHdr(void) const
Definition: dpx_hdr.h:463
dpx_television_header_struct::ver_sample_rate
float ver_sample_rate
Definition: dpx_hdr.h:158
dpx_image_source_struct::x_offset
uint32_t x_offset
Definition: dpx_hdr.h:111
dpx_television_header_struct::white_level
float white_level
Definition: dpx_hdr.h:165
dpx_television_header_struct::tim_code
uint32_t tim_code
Definition: dpx_hdr.h:151
dpx_file_info_struct::ditto_key
uint32_t ditto_key
Definition: dpx_hdr.h:50
dpx_file_info_struct::s2
struct dpx_file_info_struct::@0::@1 s2
dpx_header_struct
Definition: dpx_hdr.h:171
DPX_image_source_t
struct dpx_image_source_struct DPX_image_source_t
dpx_image_source_struct::y_offset
uint32_t y_offset
Definition: dpx_hdr.h:112
DpxHdr
Definition: dpx_hdr.h:249
dpx_set_u16
void AJA_EXPORT dpx_set_u16(uint16_t *ptr, bool BE, uint16_t val)
Definition: dpx_hdr.cpp:81
dpx_motion_picture_film_header_struct::film_type
uint8_t film_type[2]
Definition: dpx_hdr.h:131
dpx_television_header_struct::video_signal
uint8_t video_signal
Definition: dpx_hdr.h:155
public.h
Master header for the ajabase library.
dpx_image_element_struct::transfer
uint8_t transfer
Definition: dpx_hdr.h:85
dpx_image_source_struct::reserved
uint8_t reserved[28]
Definition: dpx_hdr.h:123
DpxHdr::get_ii_image_size
size_t get_ii_image_size()
Definition: dpx_hdr.h:318
dpx_file_info_struct::ind_hdr_size
uint32_t ind_hdr_size
Definition: dpx_hdr.h:52
dpx_television_header_struct::unused
uint8_t unused
Definition: dpx_hdr.h:156
DPX_television_t
struct dpx_television_header_struct DPX_television_t
dpx_image_source_struct::pixel_aspect
uint32_t pixel_aspect[2]
Definition: dpx_hdr.h:122
DpxHdr::IsBigEndian
bool IsBigEndian()
Definition: dpx_hdr.h:260
dpx_image_element_struct::ref_high_quantity
float ref_high_quantity
Definition: dpx_hdr.h:83
DPX_IS_BE
#define DPX_IS_BE(p)
Definition: dpx_hdr.h:34
dpx_image_source_struct
Definition: dpx_hdr.h:109
dpx_get_u32
uint32_t AJA_EXPORT dpx_get_u32(const uint32_t *ptr, bool BE)
Definition: dpx_hdr.cpp:57
dpx_television_header_struct::reserved
uint8_t reserved[76]
Definition: dpx_hdr.h:167
dpx_header_struct::file_info
DPX_file_info_t file_info
Definition: dpx_hdr.h:173
dpx_motion_picture_film_header_struct::offset
uint8_t offset[2]
Definition: dpx_hdr.h:132
dpx_file_info_struct::file_name
uint8_t file_name[100]
Definition: dpx_hdr.h:54
dpx_image_source_struct::input_serial
uint8_t input_serial[32]
Definition: dpx_hdr.h:120
dpx_image_info_struct::element_number
uint16_t element_number
Definition: dpx_hdr.h:100
dpx_image_element_struct::packing
uint16_t packing
Definition: dpx_hdr.h:88
dpx_television_header_struct::gamma
float gamma
Definition: dpx_hdr.h:161
DpxHdr::DpxHdr
DpxHdr(void)
Definition: dpx_hdr.h:252
dpx_set_u32
void AJA_EXPORT dpx_set_u32(uint32_t *ptr, bool BE, uint32_t val)
Definition: dpx_hdr.cpp:65
dpx_image_source_struct::x_center
float x_center
Definition: dpx_hdr.h:113
DPX_image_element_t
struct dpx_image_element_struct DPX_image_element_t
dpx_motion_picture_film_header_struct::frame_rate
float frame_rate
Definition: dpx_hdr.h:139
dpx_file_info_struct::copyright
uint8_t copyright[200]
Definition: dpx_hdr.h:58
DPX_C_MAGIC_BE
#define DPX_C_MAGIC_BE
Definition: dpx_hdr.h:19
dpx_image_element_struct::ref_low_quantity
float ref_low_quantity
Definition: dpx_hdr.h:81
dpx_file_info_struct::file_size
uint32_t file_size
Definition: dpx_hdr.h:49
dpx_header_struct::film_header
DPX_film_t film_header
Definition: dpx_hdr.h:176
DpxHdr::GetHdrSize
size_t GetHdrSize(void) const
Definition: dpx_hdr.h:473
dpx_file_info_struct::creator
uint8_t creator[100]
Definition: dpx_hdr.h:56
dpx_image_element_struct::encoding
uint16_t encoding
Definition: dpx_hdr.h:89
dpx_television_header_struct::time_offset
float time_offset
Definition: dpx_hdr.h:160
system.h
System specific functions.
dpx_motion_picture_film_header_struct::held_count
uint32_t held_count
Definition: dpx_hdr.h:138
dpx_motion_picture_film_header_struct::frame_position
uint32_t frame_position
Definition: dpx_hdr.h:136
DPX_image_info_t
struct dpx_image_info_struct DPX_image_info_t
dpx_motion_picture_film_header_struct::slate_info
uint8_t slate_info[100]
Definition: dpx_hdr.h:142
dpx_television_header_struct::integration_times
float integration_times
Definition: dpx_hdr.h:166
dpx_image_element_struct::descriptor
uint8_t descriptor
Definition: dpx_hdr.h:84
dpx_motion_picture_film_header_struct::sequence_len
uint32_t sequence_len
Definition: dpx_hdr.h:137
dpx_file_info_struct::key
uint32_t key
Definition: dpx_hdr.h:59
dpx_file_info_struct::Reserved
uint8_t Reserved[104]
Definition: dpx_hdr.h:62
dpx_file_info_struct::user_data_size
uint32_t user_data_size
Definition: dpx_hdr.h:53
dpx_motion_picture_film_header_struct::frame_id
uint8_t frame_id[32]
Definition: dpx_hdr.h:141
dpx_television_header_struct::frame_rate
float frame_rate
Definition: dpx_hdr.h:159
dpx_motion_picture_film_header_struct
Definition: dpx_hdr.h:128
dpx_file_info_struct::rid
uint8_t rid
Definition: dpx_hdr.h:67
dpx_motion_picture_film_header_struct::film_mfg_id
uint8_t film_mfg_id[2]
Definition: dpx_hdr.h:130
dpx_image_source_struct::file_name
uint8_t file_name[100]
Definition: dpx_hdr.h:117
dpx_television_header_struct::userBits
uint32_t userBits
Definition: dpx_hdr.h:152
dpx_motion_picture_film_header_struct::shutter_angle
float shutter_angle
Definition: dpx_hdr.h:140
dpx_motion_picture_film_header_struct::reserved
uint8_t reserved[56]
Definition: dpx_hdr.h:143
dpx_file_info_struct::pad
uint8_t pad
Definition: dpx_hdr.h:70
dpx_header_struct::image_info
DPX_image_info_t image_info
Definition: dpx_hdr.h:174
dpx_image_source_struct::border
uint16_t border[4]
Definition: dpx_hdr.h:121
dpx_image_info_struct
Definition: dpx_hdr.h:97
dpx_file_info_struct::filenum
uint32_t filenum
Definition: dpx_hdr.h:66
dpx_file_info_struct
Definition: dpx_hdr.h:44
dpx_file_info_struct::tid
uint8_t tid
Definition: dpx_hdr.h:69
dpx_television_header_struct
Definition: dpx_hdr.h:149
dpx_image_source_struct::y_orig_size
uint32_t y_orig_size
Definition: dpx_hdr.h:116
dpx_image_element_struct::ref_high_data
uint32_t ref_high_data
Definition: dpx_hdr.h:82
dpx_image_element_struct::eo_image_padding
uint32_t eo_image_padding
Definition: dpx_hdr.h:92
dpx_image_info_struct::orientation
uint16_t orientation
Definition: dpx_hdr.h:99
dpx_image_element_struct::description
uint8_t description[32]
Definition: dpx_hdr.h:93
dpx_set_r32
void AJA_EXPORT dpx_set_r32(float *ptr, bool BE, float val)
Definition: dpx_hdr.cpp:88
DpxHdr::GetHdr
DPX_header_t & GetHdr(void)
Definition: dpx_hdr.h:468
dpx_television_header_struct::black_gain
float black_gain
Definition: dpx_hdr.h:163
dpx_image_source_struct::y_center
float y_center
Definition: dpx_hdr.h:114
dpx_image_element_struct::ref_low_data
uint32_t ref_low_data
Definition: dpx_hdr.h:80
dpx_file_info_struct::offset
uint32_t offset
Definition: dpx_hdr.h:47
dpx_header_struct::tv_header
DPX_television_t tv_header
Definition: dpx_hdr.h:177
dpx_television_header_struct::black_level
float black_level
Definition: dpx_hdr.h:162
dpx_motion_picture_film_header_struct::prefix
uint8_t prefix[6]
Definition: dpx_hdr.h:133
dpx_motion_picture_film_header_struct::count
uint8_t count[4]
Definition: dpx_hdr.h:134
dpx_file_info_struct::resv
union dpx_file_info_struct::@0 resv
dpx_image_info_struct::image_element
DPX_image_element_t image_element[8]
Definition: dpx_hdr.h:103
dpx_image_source_struct::input_dev
uint8_t input_dev[32]
Definition: dpx_hdr.h:119
dpx_image_info_struct::pixels_per_line
uint32_t pixels_per_line
Definition: dpx_hdr.h:101
DPX_header_t
struct dpx_header_struct DPX_header_t
dpx_image_element_struct::eol_padding
uint32_t eol_padding
Definition: dpx_hdr.h:91
dpx_television_header_struct::hor_sample_rate
float hor_sample_rate
Definition: dpx_hdr.h:157
dpx_get_u16
uint16_t AJA_EXPORT dpx_get_u16(const uint16_t *ptr, bool BE)
Definition: dpx_hdr.cpp:72
dpx_file_info_struct::create_time
uint8_t create_time[24]
Definition: dpx_hdr.h:55
dpx_get_r32
float AJA_EXPORT dpx_get_r32(const float *ptr, bool BE)
Definition: dpx_hdr.cpp:95
dpx_image_info_struct::lines_per_image_ele
uint32_t lines_per_image_ele
Definition: dpx_hdr.h:102
dpx_image_element_struct
Definition: dpx_hdr.h:76