Blender V4.3
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
11#pragma once
12
13#include <math.h>
14
15#include "logImageCore.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define DPX_FILE_MAGIC 0x53445058
22#define DPX_UNDEFINED_U8 0xFF
23#define DPX_UNDEFINED_U16 0xFFFF
24#define DPX_UNDEFINED_U32 0xFFFFFFFF
25#define DPX_UNDEFINED_R32 NAN
26#define IS_DPX_UNDEFINED_R32(x) isnan(x)
27#define DPX_UNDEFINED_CHAR 0
28
29typedef struct {
30 unsigned int magic_num;
31 unsigned int offset;
32 char version[8];
33 unsigned int file_size;
34 unsigned int ditto_key;
35 unsigned int gen_hdr_size;
36 unsigned int ind_hdr_size;
37 unsigned int user_data_size;
38 char file_name[100];
39 char creation_date[24];
40 char creator[100];
41 char project[200];
42 char copyright[200];
43 unsigned int key;
44 char reserved[104];
46
47typedef struct {
48 unsigned int data_sign;
49 unsigned int ref_low_data;
51 unsigned int ref_high_data;
53 unsigned char descriptor;
54 unsigned char transfer;
55 unsigned char colorimetric;
56 unsigned char bits_per_sample;
57 unsigned short packing;
58 unsigned short encoding;
59 unsigned int data_offset;
60 unsigned int line_padding;
61 unsigned int element_padding;
62 char description[32];
64
65typedef struct {
66 unsigned short orientation;
67 unsigned short elements_per_image;
68 unsigned int pixels_per_line;
69 unsigned int lines_per_element;
70 DpxElementHeader element[8];
71 char reserved[52];
73
74typedef struct {
75 unsigned int x_offset;
76 unsigned int y_offset;
77 float x_center;
78 float y_center;
79 unsigned int x_original_size;
80 unsigned int y_original_size;
81 char file_name[100];
82 char creation_time[24];
83 char input_device[32];
84 char input_serial_number[32];
85 unsigned short border_validity[4];
86 unsigned int pixel_aspect_ratio[2];
87 char reserved[28];
89
90typedef struct {
91 char film_manufacturer_id[2];
92 char film_type[2];
93 char edge_code_perforation_offset[2];
94 char edge_code_prefix[6];
95 char edge_code_count[4];
96 char film_format[32];
97 unsigned int frame_position;
98 unsigned int sequence_length;
99 unsigned int held_count;
102 char frame_identification[32];
103 char slate_info[100];
104 char reserved[56];
106
107typedef struct {
108 unsigned int time_code;
109 unsigned int user_bits;
110 unsigned char interlace;
111 unsigned char field_number;
112 unsigned char video_signal;
113 unsigned char padding;
118 float gamma;
124 unsigned char reserved[76];
126
134
135void dpxSetVerbose(int verbosity);
136LogImageFile *dpxOpen(const unsigned char *byteStuff, int fromMemory, size_t bufferSize);
137LogImageFile *dpxCreate(const char *filepath,
138 int width,
139 int height,
140 int bitsPerSample,
141 int hasAlpha,
142 int isLogarithmic,
143 int referenceWhite,
144 int referenceBlack,
145 float gamma,
146 const char *creator);
147
148#ifdef __cplusplus
149}
150#endif
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
vector project(vector v, vector v_proj)
Definition node_math.h:59
unsigned int line_padding
Definition dpxlib.h:60
unsigned int ref_low_data
Definition dpxlib.h:49
float ref_high_quantity
Definition dpxlib.h:52
unsigned int element_padding
Definition dpxlib.h:61
unsigned int data_offset
Definition dpxlib.h:59
unsigned char bits_per_sample
Definition dpxlib.h:56
unsigned short encoding
Definition dpxlib.h:58
unsigned short packing
Definition dpxlib.h:57
unsigned char colorimetric
Definition dpxlib.h:55
unsigned char transfer
Definition dpxlib.h:54
unsigned int ref_high_data
Definition dpxlib.h:51
float ref_low_quantity
Definition dpxlib.h:50
unsigned int data_sign
Definition dpxlib.h:48
unsigned char descriptor
Definition dpxlib.h:53
unsigned int file_size
Definition dpxlib.h:33
unsigned int magic_num
Definition dpxlib.h:30
unsigned int user_data_size
Definition dpxlib.h:37
unsigned int key
Definition dpxlib.h:43
unsigned int ind_hdr_size
Definition dpxlib.h:36
unsigned int offset
Definition dpxlib.h:31
unsigned int ditto_key
Definition dpxlib.h:34
unsigned int gen_hdr_size
Definition dpxlib.h:35
float shutter_angle
Definition dpxlib.h:101
unsigned int frame_position
Definition dpxlib.h:97
unsigned int held_count
Definition dpxlib.h:99
float frame_rate
Definition dpxlib.h:100
unsigned int sequence_length
Definition dpxlib.h:98
unsigned int lines_per_element
Definition dpxlib.h:69
unsigned int pixels_per_line
Definition dpxlib.h:68
unsigned short elements_per_image
Definition dpxlib.h:67
unsigned short orientation
Definition dpxlib.h:66
DpxFileHeader fileHeader
Definition dpxlib.h:128
DpxTelevisionHeader televisionHeader
Definition dpxlib.h:132
DpxOrientationHeader orientationHeader
Definition dpxlib.h:130
DpxFilmHeader filmHeader
Definition dpxlib.h:131
DpxImageHeader imageHeader
Definition dpxlib.h:129
unsigned int y_original_size
Definition dpxlib.h:80
unsigned int x_offset
Definition dpxlib.h:75
unsigned int x_original_size
Definition dpxlib.h:79
unsigned int y_offset
Definition dpxlib.h:76
unsigned char interlace
Definition dpxlib.h:110
unsigned int time_code
Definition dpxlib.h:108
unsigned char padding
Definition dpxlib.h:113
float horizontal_sample_rate
Definition dpxlib.h:114
unsigned int user_bits
Definition dpxlib.h:109
float vertical_sample_rate
Definition dpxlib.h:115
unsigned char field_number
Definition dpxlib.h:111
float integration_times
Definition dpxlib.h:123
unsigned char video_signal
Definition dpxlib.h:112