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

Function avifEncoderWriteNclxProperty

src/write.c:607–629  ·  view source on GitHub ↗

Same as 'avifEncoderWriteColorProperties' but for the colr nclx box only.

Source from the content-addressed store, hash-verified

605
606// Same as 'avifEncoderWriteColorProperties' but for the colr nclx box only.
607static avifResult avifEncoderWriteNclxProperty(avifRWStream * dedupStream,
608 avifRWStream * outputStream,
609 const avifImage * imageMetadata,
610 avifItemPropertyAssociationArray * associations,
611 avifItemPropertyDedup * dedup)
612{
613 if (dedup) {
614 avifItemPropertyDedupStart(dedup);
615 }
616 avifBoxMarker colr;
617 AVIF_CHECKRES(avifRWStreamWriteBox(dedupStream, "colr", AVIF_BOX_SIZE_TBD, &colr));
618 AVIF_CHECKRES(avifRWStreamWriteChars(dedupStream, "nclx", 4)); // unsigned int(32) colour_type;
619 AVIF_CHECKRES(avifRWStreamWriteU16(dedupStream, imageMetadata->colorPrimaries)); // unsigned int(16) colour_primaries;
620 AVIF_CHECKRES(avifRWStreamWriteU16(dedupStream, imageMetadata->transferCharacteristics)); // unsigned int(16) transfer_characteristics;
621 AVIF_CHECKRES(avifRWStreamWriteU16(dedupStream, imageMetadata->matrixCoefficients)); // unsigned int(16) matrix_coefficients;
622 AVIF_CHECKRES(avifRWStreamWriteBits(dedupStream, (imageMetadata->yuvRange == AVIF_RANGE_FULL) ? 1 : 0, /*bitCount=*/1)); // unsigned int(1) full_range_flag;
623 AVIF_CHECKRES(avifRWStreamWriteBits(dedupStream, 0, /*bitCount=*/7)); // unsigned int(7) reserved = 0;
624 AVIF_CHECKRES(avifRWStreamFinishBox(dedupStream, colr));
625 if (dedup) {
626 AVIF_CHECKRES(avifItemPropertyDedupFinish(dedup, outputStream, associations, /*essential=*/AVIF_FALSE));
627 }
628 return AVIF_RESULT_OK;
629}
630
631static avifResult avifEncoderWritePaspProperty(avifRWStream * dedupStream,
632 avifRWStream * outputStream,

Callers 2

Calls 7

avifRWStreamWriteBoxFunction · 0.85
avifRWStreamWriteCharsFunction · 0.85
avifRWStreamWriteU16Function · 0.85
avifRWStreamWriteBitsFunction · 0.85
avifRWStreamFinishBoxFunction · 0.85

Tested by

no test coverage detected