32 #include <sys/types.h>
78 fileTime = localtime(&fileClock);
87 for (i = 0; i < 3; i++) {
144 const char *filename = (
const char *)byteStuff;
146 unsigned int dataOffset;
148 if (cineon ==
NULL) {
150 printf(
"Cineon: Failed to malloc cineon file structure.\n");
161 if (fromMemory == 0) {
166 printf(
"Cineon: Failed to open file \"%s\".\n", filename);
177 cineon->
memBuffer = (
unsigned char *)byteStuff;
178 cineon->
memCursor = (
unsigned char *)byteStuff;
184 printf(
"Cineon: Not enough data for header in \"%s\".\n", byteStuff);
194 printf(
"Cineon: File is MSB.\n");
200 printf(
"Cineon: File is LSB.\n");
205 printf(
"Cineon: Bad magic number %lu in \"%s\".\n",
218 printf(
"Cineon: Wrong image dimension: %dx%d\n", cineon->
width, cineon->
height);
241 if (cineon->
depth == 1) {
247 else if (cineon->
depth == 3) {
268 printf(
"Cineon: Cineon image depth unsupported: %d\n", cineon->
depth);
339 cineon->
gamma = 1.7f;
344 printf(
" Element %d:\n", i);
347 printf(
" Transfer characteristics: %d\n", cineon->
element[i].
transfer);
358 printf(
"Gamma: %f\n", cineon->
gamma);
362 printf(
"----------------------------\n");
368 const char *filename,
int width,
int height,
int bitsPerSample,
const char *creator)
371 const char *shortFilename =
NULL;
375 if (cineon ==
NULL) {
377 printf(
"cineon: Failed to malloc cineon file structure.\n");
383 if (bitsPerSample != 10) {
385 printf(
"cineon: Only 10 bits Cineon are supported.\n");
409 cineon->
gamma = 1.7f;
411 shortFilename = strrchr(filename,
'/');
412 if (shortFilename ==
NULL) {
413 shortFilename = filename;
422 printf(
"cineon: Couldn't open file %s\n", filename);
430 if (fwrite(&header,
sizeof(header), 1, cineon->
file) == 0) {
432 printf(
"cineon: Couldn't write image header\n");
File and directory operations.
FILE * BLI_fopen(const char *filename, const char *mode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
Read Guarded memory(de)allocation.
void cineonSetVerbose(int verbosity)
static void fillCineonMainHeader(LogImageFile *cineon, CineonMainHeader *header, const char *filename, const char *creator)
LogImageFile * cineonOpen(const unsigned char *byteStuff, int fromMemory, size_t bufferSize)
LogImageFile * cineonCreate(const char *filename, int width, int height, int bitsPerSample, const char *creator)
#define CINEON_FILE_MAGIC
#define CINEON_UNDEFINED_U32
#define CINEON_UNDEFINED_R32
void logImageClose(LogImageFile *logImage)
size_t getRowLength(size_t width, LogImageElement logElement)
BLI_INLINE float swap_float(float x, int swap)
@ transfer_PrintingDensity
BLI_INLINE unsigned int swap_uint(unsigned int x, int swap)
int logimage_fread(void *buffer, size_t size, unsigned int count, LogImageFile *logFile)
void *(* MEM_mallocN)(size_t len, const char *str)
CineonFileHeader fileHeader
CineonImageHeader imageHeader
unsigned char * memBuffer
unsigned char * memCursor
LogImageElement element[8]