Cleanup: pass LogImageElement by reference or pointer instead of value

This commit is contained in:
Campbell Barton
2024-03-28 13:01:38 +11:00
parent 872c997c8f
commit 8f88487768
4 changed files with 87 additions and 53 deletions

View File

@@ -54,10 +54,10 @@ static void fillCineonMainHeader(LogImageFile *cineon,
cineon->isMSB);
header->fileHeader.ind_hdr_size = 0;
header->fileHeader.user_data_size = 0;
header->fileHeader.file_size = swap_uint(cineon->element[0].dataOffset +
cineon->height *
getRowLength(cineon->width, cineon->element[0]),
cineon->isMSB);
header->fileHeader.file_size = swap_uint(
cineon->element[0].dataOffset +
cineon->height * getRowLength(cineon->width, &cineon->element[0]),
cineon->isMSB);
STRNCPY(header->fileHeader.version, "v4.5");
STRNCPY(header->fileHeader.file_name, filepath);
fileClock = time(nullptr);
@@ -318,7 +318,7 @@ LogImageFile *cineonOpen(const uchar *byteStuff, int fromMemory, size_t bufferSi
}
cineon->element[i].dataOffset = dataOffset;
dataOffset += cineon->height * getRowLength(cineon->width, cineon->element[i]);
dataOffset += cineon->height * getRowLength(cineon->width, &cineon->element[i]);
}
cineon->referenceBlack = 95.0f / 1023.0f * cineon->element[0].maxValue;

View File

@@ -54,7 +54,7 @@ static void fillDpxMainHeader(LogImageFile *dpx,
header->fileHeader.offset = swap_uint(dpx->element[0].dataOffset, dpx->isMSB);
STRNCPY(header->fileHeader.version, "V2.0");
header->fileHeader.file_size = swap_uint(
dpx->element[0].dataOffset + dpx->height * getRowLength(dpx->width, dpx->element[0]),
dpx->element[0].dataOffset + dpx->height * getRowLength(dpx->width, &dpx->element[0]),
dpx->isMSB);
header->fileHeader.ditto_key = 0;
header->fileHeader.gen_hdr_size = swap_uint(

View File

@@ -28,41 +28,51 @@
* Declaration of static functions
*/
static int logImageSetData8(LogImageFile *logImage, LogImageElement logElement, float *data);
static int logImageSetData10(LogImageFile *logImage, LogImageElement logElement, float *data);
static int logImageSetData12(LogImageFile *logImage, LogImageElement logElement, float *data);
static int logImageSetData16(LogImageFile *logImage, LogImageElement logElement, float *data);
static int logImageElementGetData(LogImageFile *logImage, LogImageElement logElement, float *data);
static int logImageSetData8(LogImageFile *logImage,
const LogImageElement &logElement,
float *data);
static int logImageSetData10(LogImageFile *logImage,
const LogImageElement &logElement,
float *data);
static int logImageSetData12(LogImageFile *logImage,
const LogImageElement &logElement,
float *data);
static int logImageSetData16(LogImageFile *logImage,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData(LogImageFile *logImage,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData1(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData8(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData10(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData10Packed(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData12(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData12Packed(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int logImageElementGetData16(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data);
static int convertLogElementToRGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int dstIsLinearRGB);
static int convertRGBAToLogElement(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int srcIsLinearRGB);
/*
@@ -193,7 +203,7 @@ void logImageGetSize(LogImageFile *logImage, int *width, int *height, int *depth
* Helper
*/
size_t getRowLength(size_t width, LogImageElement logElement)
static size_t getRowLength(size_t width, const LogImageElement &logElement)
{
/* return the row length in bytes according to width and packing method */
switch (logElement.bitsPerSample) {
@@ -225,6 +235,12 @@ size_t getRowLength(size_t width, LogImageElement logElement)
return 0;
}
/* For the C-API. */
size_t getRowLength(size_t width, const LogImageElement *logElement)
{
return getRowLength(width, *logElement);
}
/*
* Data writing
*/
@@ -273,7 +289,7 @@ int logImageSetDataRGBA(LogImageFile *logImage, float *data, int dataIsLinearRGB
return returnValue;
}
static int logImageSetData8(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageSetData8(LogImageFile *logImage, const LogImageElement &logElement, float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
uchar *row;
@@ -304,7 +320,9 @@ static int logImageSetData8(LogImageFile *logImage, LogImageElement logElement,
return 0;
}
static int logImageSetData10(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageSetData10(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
uint pixel, index;
@@ -349,7 +367,9 @@ static int logImageSetData10(LogImageFile *logImage, LogImageElement logElement,
return 0;
}
static int logImageSetData12(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageSetData12(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
ushort *row;
@@ -381,7 +401,9 @@ static int logImageSetData12(LogImageFile *logImage, LogImageElement logElement,
return 0;
}
static int logImageSetData16(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageSetData16(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
ushort *row;
@@ -662,7 +684,9 @@ int logImageGetDataRGBA(LogImageFile *logImage, float *data, int dataIsLinearRGB
return returnValue;
}
static int logImageElementGetData(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageElementGetData(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
switch (logElement.bitsPerSample) {
case 1:
@@ -696,7 +720,9 @@ static int logImageElementGetData(LogImageFile *logImage, LogImageElement logEle
return 1;
}
static int logImageElementGetData1(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageElementGetData1(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
uint pixel;
@@ -727,7 +753,9 @@ static int logImageElementGetData1(LogImageFile *logImage, LogImageElement logEl
return 0;
}
static int logImageElementGetData8(LogImageFile *logImage, LogImageElement logElement, float *data)
static int logImageElementGetData8(LogImageFile *logImage,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
uchar pixel;
@@ -756,7 +784,7 @@ static int logImageElementGetData8(LogImageFile *logImage, LogImageElement logEl
}
static int logImageElementGetData10(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data)
{
uint pixel;
@@ -828,7 +856,7 @@ static int logImageElementGetData10(LogImageFile *logImage,
}
static int logImageElementGetData10Packed(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
@@ -883,7 +911,7 @@ static int logImageElementGetData10Packed(LogImageFile *logImage,
}
static int logImageElementGetData12(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data)
{
uint sampleIndex;
@@ -921,7 +949,7 @@ static int logImageElementGetData12(LogImageFile *logImage,
}
static int logImageElementGetData12Packed(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data)
{
size_t rowLength = getRowLength(logImage->width, logElement);
@@ -976,7 +1004,7 @@ static int logImageElementGetData12Packed(LogImageFile *logImage,
}
static int logImageElementGetData16(LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
float *data)
{
uint numSamples = logImage->width * logImage->height * logElement.depth;
@@ -1009,7 +1037,7 @@ static int logImageElementGetData16(LogImageFile *logImage,
* Color conversion
*/
static int getYUVtoRGBMatrix(float *matrix, LogImageElement logElement)
static int getYUVtoRGBMatrix(float *matrix, const LogImageElement &logElement)
{
float scaleY, scaleCbCr;
float refHighData = float(logElement.refHighData) / logElement.maxValue;
@@ -1073,7 +1101,7 @@ static int getYUVtoRGBMatrix(float *matrix, LogImageElement logElement)
}
}
static float *getLinToLogLut(LogImageFile *logImage, LogImageElement logElement)
static float *getLinToLogLut(LogImageFile *logImage, const LogImageElement &logElement)
{
float *lut;
float gain, negativeFilmGamma, offset, step;
@@ -1100,7 +1128,7 @@ static float *getLinToLogLut(LogImageFile *logImage, LogImageElement logElement)
return lut;
}
static float *getLogToLinLut(LogImageFile *logImage, LogImageElement logElement)
static float *getLogToLinLut(LogImageFile *logImage, const LogImageElement &logElement)
{
float *lut;
float breakPoint, gain, kneeGain, kneeOffset, negativeFilmGamma, offset, step, softClip;
@@ -1152,7 +1180,7 @@ static float *getLogToLinLut(LogImageFile *logImage, LogImageElement logElement)
return lut;
}
static float *getLinToSrgbLut(LogImageElement logElement)
static float *getLinToSrgbLut(const LogImageElement &logElement)
{
float col, *lut;
uint lutsize = uint(logElement.maxValue + 1);
@@ -1173,7 +1201,7 @@ static float *getLinToSrgbLut(LogImageElement logElement)
return lut;
}
static float *getSrgbToLinLut(LogImageElement logElement)
static float *getSrgbToLinLut(const LogImageElement &logElement)
{
float col, *lut;
uint lutsize = uint(logElement.maxValue + 1);
@@ -1197,7 +1225,7 @@ static float *getSrgbToLinLut(LogImageElement logElement)
static int convertRGBA_RGB(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int elementIsSource)
{
uint i;
@@ -1252,7 +1280,7 @@ static int convertRGBA_RGB(float *src,
static int convertRGB_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int elementIsSource)
{
uint i;
@@ -1307,7 +1335,7 @@ static int convertRGB_RGBA(float *src,
static int convertRGBA_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int elementIsSource)
{
uint i;
@@ -1352,7 +1380,7 @@ static int convertRGBA_RGBA(float *src,
static int convertABGR_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement,
const LogImageElement &logElement,
int elementIsSource)
{
uint i;
@@ -1406,7 +1434,7 @@ static int convertABGR_RGBA(float *src,
static int convertCbYCr_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], refLowData, y, cb, cr;
@@ -1438,7 +1466,7 @@ static int convertCbYCr_RGBA(float *src,
static int convertCbYCrA_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], refLowData, y, cb, cr, a;
@@ -1471,7 +1499,7 @@ static int convertCbYCrA_RGBA(float *src,
static int convertCbYCrY_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], refLowData, y1, y2, cb, cr;
@@ -1523,7 +1551,7 @@ static int convertCbYCrY_RGBA(float *src,
static int convertCbYACrYA_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], refLowData, y1, y2, cb, cr, a1, a2;
@@ -1577,7 +1605,7 @@ static int convertCbYACrYA_RGBA(float *src,
static int convertLuminance_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], value, refLowData;
@@ -1603,7 +1631,7 @@ static int convertLuminance_RGBA(float *src,
static int convertYA_RGBA(float *src,
float *dst,
LogImageFile *logImage,
LogImageElement logElement)
const LogImageElement &logElement)
{
uint i;
float conversionMatrix[9], value, refLowData;
@@ -1626,8 +1654,11 @@ static int convertYA_RGBA(float *src,
return 0;
}
static int convertLogElementToRGBA(
float *src, float *dst, LogImageFile *logImage, LogImageElement logElement, int dstIsLinearRGB)
static int convertLogElementToRGBA(float *src,
float *dst,
LogImageFile *logImage,
const LogImageElement &logElement,
int dstIsLinearRGB)
{
int rvalue;
uint i;
@@ -1696,8 +1727,11 @@ static int convertLogElementToRGBA(
return 0;
}
static int convertRGBAToLogElement(
float *src, float *dst, LogImageFile *logImage, LogImageElement logElement, int srcIsLinearRGB)
static int convertRGBAToLogElement(float *src,
float *dst,
LogImageFile *logImage,
const LogImageElement &logElement,
int srcIsLinearRGB)
{
uint i;
int rvalue;

View File

@@ -192,7 +192,7 @@ LogImageFile *logImageCreate(const char *filepath,
void logImageClose(LogImageFile *logImage);
/* Data handling */
size_t getRowLength(size_t width, LogImageElement logElement);
size_t getRowLength(size_t width, const LogImageElement *logElement);
int logImageSetDataRGBA(LogImageFile *logImage, float *data, int dataIsLinearRGB);
int logImageGetDataRGBA(LogImageFile *logImage, float *data, int dataIsLinearRGB);