JFJochFrameSerializer: Using CBORImage for mask and calibration + writing calibration in HDF5 file
This commit is contained in:
@@ -441,19 +441,10 @@ void JFJochFrameDeserializer::ProcessPixelMaskElement(CborValue &value) {
|
||||
cborErr(cbor_value_enter_container(&value, &map_value));
|
||||
while (! cbor_value_at_end(&map_value)) {
|
||||
auto key = GetCBORString(map_value);
|
||||
CBORImage cbor_multidim_array;
|
||||
GetCBORMultidimTypedArray(cbor_multidim_array, map_value);
|
||||
|
||||
if (cbor_multidim_array.size != cbor_multidim_array.xpixel * cbor_multidim_array.ypixel
|
||||
* cbor_multidim_array.pixel_depth_bytes)
|
||||
throw JFJochException(JFJochExceptionCategory::CBORError, "Pixel mask size mismatch");
|
||||
|
||||
if (cbor_multidim_array.pixel_depth_bytes != sizeof(uint32_t))
|
||||
throw JFJochException(JFJochExceptionCategory::CBORError, "Pixel mask must be 32-bit");
|
||||
|
||||
std::vector<uint32_t> v(cbor_multidim_array.xpixel * cbor_multidim_array.ypixel);
|
||||
memcpy(v.data(), cbor_multidim_array.data, cbor_multidim_array.size);
|
||||
start_message.pixel_mask[key] = v;
|
||||
CBORImage image;
|
||||
image.channel = key;
|
||||
GetCBORMultidimTypedArray(image, map_value);
|
||||
start_message.pixel_mask.push_back(image);
|
||||
}
|
||||
cborErr(cbor_value_leave_container(&value, &map_value));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user