Blender V5.0
dpxlib.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 1999-2002 David Hodson <hodsond@acm.org>.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10
11#pragma once
12
13#include <cmath>
14
15#include "logImageCore.h"
16
17#define DPX_FILE_MAGIC 0x53445058
18#define DPX_UNDEFINED_U8 0xFF
19#define DPX_UNDEFINED_U16 0xFFFF
20#define DPX_UNDEFINED_U32 0xFFFFFFFF
21#define DPX_UNDEFINED_R32 NAN
22#define IS_DPX_UNDEFINED_R32(x) std::isnan(x)
23#define DPX_UNDEFINED_CHAR 0
24
26 unsigned int magic_num;
27 unsigned int offset;
28 char version[8];
29 unsigned int file_size;
30 unsigned int ditto_key;
31 unsigned int gen_hdr_size;
32 unsigned int ind_hdr_size;
33 unsigned int user_data_size;
34 char file_name[100];
35 char creation_date[24];
36 char creator[100];
37 char project[200];
38 char copyright[200];
39 unsigned int key;
40 char reserved[104];
41};
42
44 unsigned int data_sign;
45 unsigned int ref_low_data;
47 unsigned int ref_high_data;
49 unsigned char descriptor;
50 unsigned char transfer;
51 unsigned char colorimetric;
52 unsigned char bits_per_sample;
53 unsigned short packing;
54 unsigned short encoding;
55 unsigned int data_offset;
56 unsigned int line_padding;
57 unsigned int element_padding;
58 char description[32];
59};
60
62 unsigned short orientation;
63 unsigned short elements_per_image;
64 unsigned int pixels_per_line;
65 unsigned int lines_per_element;
67 char reserved[52];
68};
69
71 unsigned int x_offset;
72 unsigned int y_offset;
73 float x_center;
74 float y_center;
75 unsigned int x_original_size;
76 unsigned int y_original_size;
77 char file_name[100];
78 char creation_time[24];
79 char input_device[32];
81 unsigned short border_validity[4];
82 unsigned int pixel_aspect_ratio[2];
83 char reserved[28];
84};
85
88 char film_type[2];
92 char film_format[32];
93 unsigned int frame_position;
94 unsigned int sequence_length;
95 unsigned int held_count;
99 char slate_info[100];
100 char reserved[56];
101};
102
104 unsigned int time_code;
105 unsigned int user_bits;
106 unsigned char interlace;
107 unsigned char field_number;
108 unsigned char video_signal;
109 unsigned char padding;
114 float gamma;
120 unsigned char reserved[76];
121};
122
130
131void dpxSetVerbose(int verbosity);
132LogImageFile *dpxOpen(const unsigned char *byteStuff, int fromMemory, size_t bufferSize);
133LogImageFile *dpxCreate(const char *filepath,
134 int width,
135 int height,
136 int bitsPerSample,
137 int hasAlpha,
138 int isLogarithmic,
139 int referenceWhite,
140 int referenceBlack,
141 float gamma,
142 const char *creator);
void dpxSetVerbose(int verbosity)
Definition dpxlib.cc:33
LogImageFile * dpxCreate(const char *filepath, int width, int height, int bitsPerSample, int hasAlpha, int isLogarithmic, int referenceWhite, int referenceBlack, float gamma, const char *creator)
Definition dpxlib.cc:410
LogImageFile * dpxOpen(const unsigned char *byteStuff, int fromMemory, size_t bufferSize)
Definition dpxlib.cc:123
unsigned int line_padding
Definition dpxlib.h:56
unsigned int ref_low_data
Definition dpxlib.h:45
float ref_high_quantity
Definition dpxlib.h:48
unsigned int element_padding
Definition dpxlib.h:57
unsigned int data_offset
Definition dpxlib.h:55
unsigned char bits_per_sample
Definition dpxlib.h:52
unsigned short encoding
Definition dpxlib.h:54
unsigned short packing
Definition dpxlib.h:53
unsigned char colorimetric
Definition dpxlib.h:51
unsigned char transfer
Definition dpxlib.h:50
unsigned int ref_high_data
Definition dpxlib.h:47
float ref_low_quantity
Definition dpxlib.h:46
unsigned int data_sign
Definition dpxlib.h:44
char description[32]
Definition dpxlib.h:58
unsigned char descriptor
Definition dpxlib.h:49
unsigned int file_size
Definition dpxlib.h:29
unsigned int magic_num
Definition dpxlib.h:26
char copyright[200]
Definition dpxlib.h:38
char version[8]
Definition dpxlib.h:28
char reserved[104]
Definition dpxlib.h:40
unsigned int user_data_size
Definition dpxlib.h:33
unsigned int key
Definition dpxlib.h:39
unsigned int ind_hdr_size
Definition dpxlib.h:32
char file_name[100]
Definition dpxlib.h:34
char project[200]
Definition dpxlib.h:37
unsigned int offset
Definition dpxlib.h:27
unsigned int ditto_key
Definition dpxlib.h:30
unsigned int gen_hdr_size
Definition dpxlib.h:31
char creation_date[24]
Definition dpxlib.h:35
char creator[100]
Definition dpxlib.h:36
float shutter_angle
Definition dpxlib.h:97
unsigned int frame_position
Definition dpxlib.h:93
char film_format[32]
Definition dpxlib.h:92
unsigned int held_count
Definition dpxlib.h:95
float frame_rate
Definition dpxlib.h:96
char frame_identification[32]
Definition dpxlib.h:98
char edge_code_perforation_offset[2]
Definition dpxlib.h:89
char edge_code_prefix[6]
Definition dpxlib.h:90
char edge_code_count[4]
Definition dpxlib.h:91
char film_manufacturer_id[2]
Definition dpxlib.h:87
char film_type[2]
Definition dpxlib.h:88
char reserved[56]
Definition dpxlib.h:100
unsigned int sequence_length
Definition dpxlib.h:94
char slate_info[100]
Definition dpxlib.h:99
DpxElementHeader element[8]
Definition dpxlib.h:66
unsigned int lines_per_element
Definition dpxlib.h:65
unsigned int pixels_per_line
Definition dpxlib.h:64
unsigned short elements_per_image
Definition dpxlib.h:63
char reserved[52]
Definition dpxlib.h:67
unsigned short orientation
Definition dpxlib.h:62
DpxFileHeader fileHeader
Definition dpxlib.h:124
DpxTelevisionHeader televisionHeader
Definition dpxlib.h:128
DpxOrientationHeader orientationHeader
Definition dpxlib.h:126
DpxFilmHeader filmHeader
Definition dpxlib.h:127
DpxImageHeader imageHeader
Definition dpxlib.h:125
char input_serial_number[32]
Definition dpxlib.h:80
char reserved[28]
Definition dpxlib.h:83
char creation_time[24]
Definition dpxlib.h:78
unsigned short border_validity[4]
Definition dpxlib.h:81
char input_device[32]
Definition dpxlib.h:79
unsigned int y_original_size
Definition dpxlib.h:76
unsigned int pixel_aspect_ratio[2]
Definition dpxlib.h:82
char file_name[100]
Definition dpxlib.h:77
unsigned int x_offset
Definition dpxlib.h:71
unsigned int x_original_size
Definition dpxlib.h:75
unsigned int y_offset
Definition dpxlib.h:72
unsigned char interlace
Definition dpxlib.h:106
unsigned int time_code
Definition dpxlib.h:104
unsigned char padding
Definition dpxlib.h:109
float horizontal_sample_rate
Definition dpxlib.h:110
unsigned int user_bits
Definition dpxlib.h:105
unsigned char reserved[76]
Definition dpxlib.h:120
float vertical_sample_rate
Definition dpxlib.h:111
unsigned char field_number
Definition dpxlib.h:107
float integration_times
Definition dpxlib.h:119
unsigned char video_signal
Definition dpxlib.h:108