MCPcopy Create free account
hub / github.com/AOMediaCodec/libavif / avifEncoderDataCreateExifItem

Function avifEncoderDataCreateExifItem

src/write.c:1112–1133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1110}
1111
1112static avifResult avifEncoderDataCreateExifItem(avifEncoderData * data, const avifRWData * exif)
1113{
1114 size_t exifTiffHeaderOffset;
1115 const avifResult result = avifGetExifTiffHeaderOffset(exif->data, exif->size, &exifTiffHeaderOffset);
1116 if (result != AVIF_RESULT_OK) {
1117 // Couldn't find the TIFF header
1118 return result;
1119 }
1120
1121 avifEncoderItem * exifItem = avifEncoderDataCreateItem(data, "Exif", "Exif", 5, 0);
1122 if (!exifItem) {
1123 return AVIF_RESULT_OUT_OF_MEMORY;
1124 }
1125 exifItem->irefToID = data->primaryItemID;
1126 exifItem->irefType = "cdsc";
1127
1128 const uint32_t offset32bit = avifHTONL((uint32_t)exifTiffHeaderOffset);
1129 AVIF_CHECKRES(avifRWDataRealloc(&exifItem->metadataPayload, sizeof(offset32bit) + exif->size));
1130 memcpy(exifItem->metadataPayload.data, &offset32bit, sizeof(offset32bit));
1131 memcpy(exifItem->metadataPayload.data + sizeof(offset32bit), exif->data, exif->size);
1132 return AVIF_RESULT_OK;
1133}
1134
1135static avifResult avifEncoderDataCreateXMPItem(avifEncoderData * data, const avifRWData * xmp)
1136{

Callers 1

Calls 4

avifHTONLFunction · 0.85
avifRWDataReallocFunction · 0.85

Tested by

no test coverage detected