What byte layout does libultrahdr v2.0.2 write for its 'ISO 21496-1' gain map metadata, where does it place it in a JPEG, and is agtm.h part of that layout?
Partially verified: the curator re-read S51, S53, S56; S54, S55 were not re-read by the curator and rest on the producer's pinned reading. libultrahdr v2.0.2 writes the gain-map metadata as a big-endian binary block. It starts with a minimum version and a writer version (both 0, with other minimum versions rejected on read) and a flags byte (multi-channel and use-base-colour-space bits), followed by numerator/denominator fractions for the headroom and per-channel gain-map fields, with every denominator required to be non-zero. A code comment still refers to 'the draft' of the standard, so conformance to the published ISO 21496-1 is not shown. SMPTE ST 2094-50 conversion (agtm.h) and XMP metadata writing are both off by default in the CMake build.
Structured fields
{
"citations": [
{
"url": "https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/gainmapmetadata.cpp",
"note": "lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27"
},
{
"url": "https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/include/ultrahdr/agtm.h",
"note": "lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27"
},
{
"url": "https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/agtm.cpp",
"note": "lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27"
},
{
"url": "https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/jpegr.cpp",
"note": "lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27"
},
{
"url": "https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/CMakeLists.txt",
"note": "lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27"
}
]
}Evidence claims
- [inference] libultrahdr v2.0.2 writes the gain-map metadata as a big-endian binary block. It starts with a minimum version and a writer version (both 0, with other minimum versions rejected on read) and a flags byte (multi-channel and use-base-colour-space bits), followed by numerator/denominator fractions for the headroom and per-channel gain-map fields, with every denominator required to be non-zero. A code comment still refers to 'the draft' of the standard, so conformance to the published ISO 21496-1 is not shown. SMPTE ST 2094-50 conversion (agtm.h) and XMP metadata writing are both off by default in the CMake build. · locator: lib/src/gainmapmetadata.cpp L123-138, L206-230, L311-318; CMakeLists.txt L129, L135, L228, L382; lib/include/ultrahdr/agtm.h L19-27 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/CMakeLists.txt
- cites → https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/include/ultrahdr/agtm.h
- cites → https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/agtm.cpp
- cites → https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/gainmapmetadata.cpp
- cites → https://github.com/google/libultrahdr/blob/e5f5a022fe96fc4dc2ee35c19f733a50df807abe/lib/src/jpegr.cpp