Skip to content

Commit cc15c98

Browse files
committed
improve frame parsing
1 parent ee3e401 commit cc15c98

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/dicom-file.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,11 @@ static bool get_frame_offset(DcmError **error,
317317
const DcmDataSet *metadata,
318318
uint32_t *frame_offset)
319319
{
320+
(void) error;
321+
320322
// optional, defaults to 0
321323
int64_t value;
322-
if (!get_tag_int(error,
324+
if (!get_tag_int(NULL,
323325
metadata, "ConcatenationFrameOffsetNumber", &value)) {
324326
value = 0;
325327
}
@@ -749,12 +751,16 @@ static bool set_pixel_description(DcmError **error,
749751
}
750752
desc->pixel_representation = (uint16_t) value;
751753

752-
element = dcm_dataset_get(error, metadata, 0x00280006);
753-
if (element == NULL ||
754-
!dcm_element_get_value_integer(error, element, 0, &value)) {
755-
return false;
754+
// required if samples per pixel > 1, defaults to 0 (interleaved)
755+
desc->planar_configuration = 0;
756+
if (desc->samples_per_pixel > 1) {
757+
element = dcm_dataset_get(error, metadata, 0x00280006);
758+
if (element == NULL ||
759+
!dcm_element_get_value_integer(error, element, 0, &value)) {
760+
return false;
761+
}
762+
desc->planar_configuration = (uint16_t) value;
756763
}
757-
desc->planar_configuration = (uint16_t) value;
758764

759765
element = dcm_dataset_get(error, metadata, 0x00280004);
760766
if (element == NULL ||

0 commit comments

Comments
 (0)