MagickBooleanType
explicit_file,
- use_explicit,
explicit_retry,
- polarity;
+ polarity,
+ sequence,
+ use_explicit;
MagickOffsetType
offset;
window_center,
y;
-
unsigned char
*data;
number_scenes=1;
samples_per_pixel=1;
scale=(Quantum *) NULL;
+ sequence=MagickFalse;
signed_data=(~0UL);
significant_bits=0;
use_explicit=MagickFalse;
width=0;
window_center=0;
window_width=0;
- for (group=0; (group != 0x7FE0) || (element != 0x0010); )
+ for (group=0; (group != 0x7FE0) || (element != 0x0010) ||\r
+ (sequence != MagickFalse); )
{
/*
Read a group.
Check for "explicitness", but meta-file headers always explicit.
*/
if ((explicit_file == MagickFalse) && (group != 0x0002))
- explicit_file=(isupper((int) *explicit_vr) != MagickFalse) &&
- (isupper((int) *(explicit_vr+1)) != MagickFalse) ? MagickTrue :
- MagickFalse;
+ explicit_file=(isupper((unsigned char) *explicit_vr) != MagickFalse) &&
+ (isupper((unsigned char) *(explicit_vr+1)) != MagickFalse) ?
+ MagickTrue : MagickFalse;
use_explicit=((group == 0x0002) && (explicit_retry == MagickFalse)) ||
(explicit_file != MagickFalse) ? MagickTrue : MagickFalse;
if ((use_explicit != MagickFalse) && (strcmp(implicit_vr,"xs") == 0))
(void) FormatLocaleFile(stdout," %s",dicom_info[i].description);
(void) FormatLocaleFile(stdout,": ");
}
- if ((group == 0x7FE0) && (element == 0x0010))
+ if ((sequence == MagickFalse) && (group == 0x7FE0) && (element == 0x0010))
{
if (image_info->verbose != MagickFalse)
(void) FormatLocaleFile(stdout,"\n");
"InsufficientImageDataInFile");
}
data[length*quantum]='\0';
- }
+ }\r
+ else\r
+ if (datum == 0xFFFFFFFF)\r
+ {\r
+ sequence=MagickTrue;\r
+ continue;\r
+ }\r
+\r
+ if (((group << 16) | element) == 0xFFFEE0DD)\r
+ {\r
+ sequence=MagickFalse;\r
+ continue;\r
+ }\r
+\r
+ if (sequence == MagickTrue)\r
+ continue;\r
+
switch (group)
{
case 0x0002: