Miscellaneous cleanup for src/write.c
It suffices to just check imageMetadata->icc.size > 0. It is not
necessary to also check imageMetadata->icc.data. See how we check
image->exif.size > 0 and image->xmp.size > 0.
Remove a redundant check for image->exif.size > 0.
Replace encoder->data->items.count < 1 with
encoder->data->items.count == 0.
diff --git a/src/write.c b/src/write.c
index e2b1837..9da4d1c 100644
--- a/src/write.c
+++ b/src/write.c
@@ -189,7 +189,7 @@
static void avifEncoderWriteColorProperties(avifRWStream * s, const avifImage * imageMetadata, struct ipmaArray * ipma, uint8_t * itemPropertyIndex)
{
- if (imageMetadata->icc.data && (imageMetadata->icc.size > 0)) {
+ if (imageMetadata->icc.size > 0) {
avifBoxMarker colr = avifRWStreamWriteBox(s, "colr", AVIF_BOX_SIZE_TBD);
avifRWStreamWriteChars(s, "prof", 4); // unsigned int(32) colour_type;
avifRWStreamWrite(s, imageMetadata->icc.data, imageMetadata->icc.size);
@@ -300,12 +300,12 @@
contentSize = (uint32_t)item->encodeOutput->samples.sample[0].data.size;
}
- avifRWStreamWriteU16(s, item->id); // unsigned int(16) item_ID;
- avifRWStreamWriteU16(s, 0); // unsigned int(16) data_reference_index;
- avifRWStreamWriteU16(s, 1); // unsigned int(16) extent_count;
- avifEncoderItemAddMdatFixup(item, s); //
- avifRWStreamWriteU32(s, 0 /* set later */); // unsigned int(offset_size*8) extent_offset;
- avifRWStreamWriteU32(s, (uint32_t)contentSize); // unsigned int(length_size*8) extent_length;
+ avifRWStreamWriteU16(s, item->id); // unsigned int(16) item_ID;
+ avifRWStreamWriteU16(s, 0); // unsigned int(16) data_reference_index;
+ avifRWStreamWriteU16(s, 1); // unsigned int(16) extent_count;
+ avifEncoderItemAddMdatFixup(item, s); //
+ avifRWStreamWriteU32(s, 0 /* set later */); // unsigned int(offset_size*8) extent_offset;
+ avifRWStreamWriteU32(s, contentSize); // unsigned int(length_size*8) extent_length;
}
avifRWStreamFinishBox(s, iloc);
@@ -387,27 +387,25 @@
if (image->exif.size > 0) {
// Validate Exif payload (if any) and find TIFF header offset
uint32_t exifTiffHeaderOffset = 0;
- if (image->exif.size > 0) {
- if (image->exif.size < 4) {
- // Can't even fit the TIFF header, something is wrong
- return AVIF_RESULT_INVALID_EXIF_PAYLOAD;
- }
+ if (image->exif.size < 4) {
+ // Can't even fit the TIFF header, something is wrong
+ return AVIF_RESULT_INVALID_EXIF_PAYLOAD;
+ }
- const uint8_t tiffHeaderBE[4] = { 'M', 'M', 0, 42 };
- const uint8_t tiffHeaderLE[4] = { 'I', 'I', 42, 0 };
- for (; exifTiffHeaderOffset < (image->exif.size - 4); ++exifTiffHeaderOffset) {
- if (!memcmp(&image->exif.data[exifTiffHeaderOffset], tiffHeaderBE, sizeof(tiffHeaderBE))) {
- break;
- }
- if (!memcmp(&image->exif.data[exifTiffHeaderOffset], tiffHeaderLE, sizeof(tiffHeaderLE))) {
- break;
- }
+ const uint8_t tiffHeaderBE[4] = { 'M', 'M', 0, 42 };
+ const uint8_t tiffHeaderLE[4] = { 'I', 'I', 42, 0 };
+ for (; exifTiffHeaderOffset < (image->exif.size - 4); ++exifTiffHeaderOffset) {
+ if (!memcmp(&image->exif.data[exifTiffHeaderOffset], tiffHeaderBE, sizeof(tiffHeaderBE))) {
+ break;
}
+ if (!memcmp(&image->exif.data[exifTiffHeaderOffset], tiffHeaderLE, sizeof(tiffHeaderLE))) {
+ break;
+ }
+ }
- if (exifTiffHeaderOffset >= image->exif.size - 4) {
- // Couldn't find the TIFF header
- return AVIF_RESULT_INVALID_EXIF_PAYLOAD;
- }
+ if (exifTiffHeaderOffset >= image->exif.size - 4) {
+ // Couldn't find the TIFF header
+ return AVIF_RESULT_INVALID_EXIF_PAYLOAD;
}
avifEncoderItem * exifItem = avifEncoderDataCreateItem(encoder->data, "Exif", "Exif", 5);
@@ -466,7 +464,7 @@
avifResult avifEncoderFinish(avifEncoder * encoder, avifRWData * output)
{
- if (encoder->data->items.count < 1) {
+ if (encoder->data->items.count == 0) {
return AVIF_RESULT_NO_CONTENT;
}
@@ -718,7 +716,7 @@
uint64_t durationInTimescales = 0;
for (uint32_t frameIndex = 0; frameIndex < encoder->data->frames.count; ++frameIndex) {
- avifEncoderFrame * frame = &encoder->data->frames.frame[frameIndex];
+ const avifEncoderFrame * frame = &encoder->data->frames.frame[frameIndex];
durationInTimescales += frame->durationInTimescales;
}