16 #if defined(AJA_LINUX) || defined(AJA_MAC) 17 # include <arpa/inet.h> 23 # define INVALID_HANDLE_VALUE -1 26 #if defined(AJA_WINDOWS) 110 memcpy ((
void*)&m_hdr,(
void*) &rhs.m_hdr,
sizeof(
DPX_header_t));
130 DPX_SET_U32(&m_hdr,file_info.resv.s2.tcFrame, frame);
136 return DPX_GET_U32(&m_hdr,file_info.resv.s2.tcFrame);
142 return DPX_GET_U32(&m_hdr,file_info.resv.s2.filenum);
148 DPX_SET_U32(&m_hdr,file_info.resv.s2.filenum,filenum);
162 assert(rid && sid && tid);
172 #if defined(AJA_WINDOWS) 177 t = ::localtime(&time_now);
179 strftime (tstr, 32,
"%Y:%m:%d:%T%z", t);
181 int len = (int)(std::min)(strlen(tstr)+1, (size_t)24);
205 DPX_SET_U32(&m_hdr, file_info.offset, (uint32_t)offs);
216 DPX_SET_U32(&m_hdr, file_info.file_size, (uint32_t)size);
230 int len = (int)(std::min)(str.size()+1, (size_t)8);
245 int len = (int)(std::min)(str.size()+1, (size_t)100);
246 DPX_SET_TEXT(&m_hdr,file_info.file_name,str.c_str(), len);
260 int len = (int)(std::min) (str.size()+1, (size_t)100);
261 DPX_SET_TEXT(&m_hdr,file_info.creator,str.c_str(), len);
275 int len = (int)(std::min) (str.size()+1, (size_t)24);
276 DPX_SET_TEXT (&m_hdr,file_info.create_time,str.c_str(), len);
291 int len = (int)(std::min) (str.size()+1, (size_t)200);
306 int len = (int)(std::min) (str.size()+1, (size_t)200);
307 DPX_SET_TEXT(&m_hdr,file_info.copyright,str.c_str(),len);
314 DPX_SET_U16(&m_hdr,image_info.orientation, orientation);
324 DPX_SET_U16(&m_hdr,image_info.element_number, element_number);
329 return DPX_GET_U16(&m_hdr,image_info.element_number);
334 DPX_SET_U32(&m_hdr,image_info.pixels_per_line, pixels);
339 return (
size_t)
DPX_GET_U32(&m_hdr,image_info.pixels_per_line);
344 DPX_SET_U32(&m_hdr,image_info.lines_per_image_ele, lines);
348 return (
size_t)
DPX_GET_U32(&m_hdr,image_info.lines_per_image_ele);
357 int len = (int)(std::min) (str.size()+1, (size_t)32);
358 DPX_SET_TEXT (&m_hdr, image_info.image_element[i].description, str.c_str(), len);
365 DPX_GET_TEXT (&m_hdr, image_info.image_element[i].description,buf, 32);
373 DPX_SET_U32(&m_hdr, image_info.image_element[i].data_sign, sign);
379 return DPX_GET_U32(&m_hdr, image_info.image_element[i].data_sign);
385 DPX_SET_U32(&m_hdr, image_info.image_element[i].ref_low_data, data);
391 return DPX_GET_U32(&m_hdr, image_info.image_element[i].ref_low_data);
397 DPX_SET_U32(&m_hdr, image_info.image_element[i].ref_high_data, data);
403 return DPX_GET_U32(&m_hdr, image_info.image_element[i].ref_high_data);
409 DPX_SET_R32(&m_hdr, image_info.image_element[i].ref_low_quantity, data);
415 return DPX_GET_R32(&m_hdr, image_info.image_element[i].ref_low_quantity);
421 DPX_SET_R32(&m_hdr, image_info.image_element[i].ref_high_quantity, data);
427 return DPX_GET_R32(&m_hdr, image_info.image_element[i].ref_high_quantity);
433 DPX_SET_U8(&m_hdr, image_info.image_element[i].descriptor, desc);
439 return DPX_GET_U8(&m_hdr, image_info.image_element[i].descriptor);
445 DPX_SET_U8(&m_hdr, image_info.image_element[i].transfer, trans);
451 return DPX_GET_U8(&m_hdr, image_info.image_element[i].transfer);
457 DPX_SET_U8(&m_hdr, image_info.image_element[i].colorimetric, c);
463 return DPX_GET_U8(&m_hdr, image_info.image_element[i].colorimetric);
469 DPX_SET_U8(&m_hdr, image_info.image_element[i].bit_size, bits);
475 return DPX_GET_U8(&m_hdr, image_info.image_element[i].bit_size);
481 DPX_SET_U16(&m_hdr, image_info.image_element[i].packing, pack);
487 return DPX_GET_U16(&m_hdr, image_info.image_element[i].packing);
493 DPX_SET_U16(&m_hdr, image_info.image_element[i].encoding, enc);
499 return DPX_GET_U16(&m_hdr, image_info.image_element[i].encoding);
505 DPX_SET_U32(&m_hdr, image_info.image_element[i].data_offset, offs);
511 return DPX_GET_U32(&m_hdr, image_info.image_element[i].data_offset);
517 DPX_SET_U32(&m_hdr, image_info.image_element[i].eol_padding, padding);
523 return DPX_GET_U32(&m_hdr, image_info.image_element[i].eol_padding);
529 DPX_SET_U32(&m_hdr, image_info.image_element[i].eo_image_padding, padding);
535 return DPX_GET_U32(&m_hdr, image_info.image_element[i].eo_image_padding);
551 int len = (int)(std::min) (str.size()+1, (size_t)100);
552 DPX_SET_TEXT(&m_hdr,image_source.file_name,str.c_str(),len);
568 int len = (int)(std::min) (str.size()+1, (size_t)24);
569 DPX_SET_TEXT(&m_hdr,image_source.creation_time,str.c_str(),len);
585 int len = (int)(std::min)(str.size()+1, (size_t)32);
586 DPX_SET_TEXT(&m_hdr,image_source.input_dev,str.c_str(),len);
602 int len = (int)(std::min) (str.size()+1, (size_t)32);
603 DPX_SET_TEXT(&m_hdr,image_source.input_serial,str.c_str(),len);
619 int len = (int)(std::min)(str.size()+1, (size_t)2);
620 DPX_SET_TEXT (&m_hdr,film_header.film_mfg_id,str.c_str(),len);
636 int len = (int)(std::min)(str.size()+1, (size_t)2);
637 DPX_SET_TEXT (&m_hdr,film_header.film_type,str.c_str(),len);
654 int len = (int)(std::min)(str.size()+1, (size_t)2);
655 DPX_SET_TEXT (&m_hdr,film_header.offset,str.c_str(),len);
671 int len = (int)(std::min)(str.size()+1, (size_t)6);
672 DPX_SET_TEXT (&m_hdr,film_header.prefix,str.c_str(),len);
689 int len = (int)(std::min)(str.size()+1, (size_t)4);
690 DPX_SET_TEXT (&m_hdr,film_header.count,str.c_str(),len);
706 int len = (int)(std::min)(str.size()+1, (size_t)32);
707 DPX_SET_TEXT (&m_hdr,film_header.format,str.c_str(),len);
713 return (
size_t)
DPX_GET_U32(&m_hdr,film_header.frame_position);
719 DPX_SET_U32(&m_hdr,film_header.frame_position,(uint32_t)pos);
725 return (
size_t)
DPX_GET_U32(&m_hdr,film_header.sequence_len);
731 DPX_SET_U32(&m_hdr,film_header.sequence_len,(uint32_t)len);
737 return(
size_t)
DPX_GET_U32(&m_hdr,film_header.held_count);
743 DPX_SET_U32(&m_hdr,film_header.held_count,(uint32_t)count);
761 return DPX_GET_R32(&m_hdr,film_header.shutter_angle);
767 DPX_SET_R32(&m_hdr,film_header.shutter_angle,angle);
783 int len = (int)(std::min) (str.size()+1, (size_t)32);
784 DPX_SET_TEXT(&m_hdr,film_header.slate_info,str.c_str(),len);
800 int len = (int)(std::min) (str.size()+1, (size_t)200);
801 DPX_SET_TEXT(&m_hdr,film_header.slate_info,str.c_str(),len);
813 DPX_SET_U32(&m_hdr,tv_header.tim_code,(uint32_t)tc);
819 return (
size_t)
DPX_GET_U32(&m_hdr,tv_header.tim_code);
825 DPX_SET_U32(&m_hdr,tv_header.userBits,(uint32_t)ub);
842 return (
DPX_GET_U8(&m_hdr,tv_header.interlace));
847 DPX_SET_U8(&m_hdr,tv_header.interlace,interlace);
void set_ie_packing(uint16_t pack, int i=0)
void set_fi_creator(const std::string &str)
void set_ii_lines(uint32_t lines)
void set_ie_data_sign(uint32_t sign, int i=0)
std::string get_film_type() const
size_t get_film_sequence_len() const
std::string get_film_mfg_id() const
Declares common types used in the ajabase library.
void init(uint32_t endianness)
size_t get_ie_ref_low_data(int i=0) const
void set_tv_userbits(size_t tc)
void set_tv_timecode(size_t tc)
void set_fi_copyright(const std::string &str)
void set_fi_create_time(const std::string &str)
std::string get_fi_creator() const
size_t get_ii_lines(void) const
size_t get_ii_pixels() const
#define DPX_GET_U16(hdr, fld)
size_t get_fi_file_size() const
std::string get_fi_time_stamp() const
std::string get_film_slate_info() const
uint32_t get_ie_eol_padding(int i=0) const
void set_ie_eol_padding(uint32_t padding, int i=0)
void set_ie_data_offset(uint32_t offs, int i=0)
uint32_t get_ie_eo_image_padding(int i=0) const
uint16_t dpx_get_u16(const uint16_t *ptr, bool BE)
uint8_t get_ie_descriptor(int i=0) const
std::string get_fi_version() const
void set_ie_ref_high_data(uint32_t data, int i=0)
void set_fi_version(const std::string &str)
#define DPX_SET_U32(hdr, fld, val)
uint32_t get_ie_data_offset(int i=0) const
void set_ii_element_number(uint16_t element_number)
void set_film_type(const std::string &str)
void set_film_held_count(size_t count)
std::string get_is_filename() const
void set_fi_image_offset(size_t offs)
uint16_t get_ie_encoding(int i=0) const
#define DPX_GET_U32(hdr, fld)
std::string get_ie_description(int i=0) const
uint16_t get_ii_element_number() const
std::string get_is_input_device() const
void dpx_set_r32(float *ptr, bool BE, float val)
size_t get_film_frame_position() const
void get_s2_ids(uint8_t *rid, uint8_t *sid, uint8_t *tid) const
void dpx_set_u32(uint32_t *ptr, bool BE, uint32_t val)
size_t get_ie_data_sign(int i=0)
std::string get_is_creation_time() const
std::string get_film_prefix() const
std::string get_film_offset() const
void set_ie_colorimetric(uint8_t c, int i=0)
#define DPX_SET_TEXT(hdr, fld, buf, len)
void set_ie_ref_low_quantity(float data, int i=0)
void set_ie_eo_image_padding(uint32_t padding, int i=0)
size_t get_film_held_count() const
std::string get_film_format() const
void set_film_sequence_len(size_t len)
void set_film_prefix(const std::string &str)
void set_is_filename(const std::string &str)
void set_ie_description(const std::string &str, int i=0)
void set_film_frame_id(const std::string &str)
uint8_t get_ie_bit_size(int i=0) const
void set_ie_bit_size(uint8_t bits, int i=0)
void dpx_set_u16(uint16_t *ptr, bool BE, uint16_t val)
struct dpx_file_info_struct::@0::@1 s2
void set_s2_tcframe(uint32_t frame)
std::string get_film_frame_id() const
float get_film_shutter_angle() const
#define DPX_GET_R32(hdr, fld)
float get_film_frame_rate() const
uint16_t get_ii_orientation() const
std::string get_fi_copyright() const
void set_fi_project(const std::string &str)
uint16_t get_ie_packing(int i=0) const
void set_is_creation_time(const std::string &str)
void set_film_offset(const std::string &str)
void set_ie_transfer(uint8_t trans, int i=0)
#define DPX_SET_R32(hdr, fld, val)
size_t get_tv_timecode() const
void set_film_format(const std::string &str)
size_t get_s2_tcframe() const
#define DPX_GET_U8(hdr, fld)
void set_film_count(const std::string &str)
size_t get_fi_image_offset() const
std::string get_is_input_serial() const
float dpx_get_r32(const float *ptr, bool BE)
#define DPX_SET_U8(hdr, fld, val)
void set_is_input_device(const std::string &str)
void set_fi_file_name(const std::string &str)
Declaration of DpxHdr class adapted from STwo's dpx file I/O.
void set_film_mfg_id(const std::string &str)
void set_ii_pixels(uint32_t pixels)
void set_ie_encoding(uint16_t enc, int i=0)
uint8_t get_tv_interlace() const
void set_s2_ids(uint8_t rid, uint8_t sid, uint8_t tid)
float get_tv_frame_rate() const
size_t get_ie_ref_high_data(int i=0) const
#define DPX_GET_TEXT(hdr, fld, buf, len)
std::string get_fi_create_time() const
void set_ii_orientation(uint16_t orientation)
uint32_t dpx_get_u32(const uint32_t *ptr, bool BE)
size_t get_tv_userbits() const
void set_film_slate_info(const std::string &str)
float get_ie_ref_high_quantity(int i=0) const
void set_s2_filenumber(uint32_t fr)
void set_film_shutter_angle(float)
uint32_t get_s2_filenumber() const
void set_ie_descriptor(uint8_t desc, int i=0)
void set_ie_ref_high_quantity(float data, int i=0)
void set_is_input_serial(const std::string &str)
uint8_t get_ie_colorimetric(int i=0) const
union dpx_file_info_struct::@0 resv
uint8_t get_ie_transfer(int i=0) const
DpxHdr & operator=(const DpxHdr &rhs)
std::string get_fi_file_name() const
void set_ie_ref_low_data(uint32_t data, int i=0)
void set_tv_frame_rate(float fr)
std::string get_fi_project() const
void set_fi_file_size(size_t offs)
std::string get_film_count() const
#define DPX_SET_U16(hdr, fld, val)
void set_tv_interlace(uint8_t interlace)
void set_film_frame_position(size_t pos)
float get_ie_ref_low_quantity(int i=0) const
void set_film_frame_rate(float len)