Same as 'avifEncoderWriteColorProperties' but for the colr nclx box only.
| 605 | |
| 606 | // Same as 'avifEncoderWriteColorProperties' but for the colr nclx box only. |
| 607 | static 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 | |
| 631 | static avifResult avifEncoderWritePaspProperty(avifRWStream * dedupStream, |
| 632 | avifRWStream * outputStream, |
no test coverage detected