Skip to content

Commit

Permalink
Downgrading errors that don't prevent further processing to NON_FATAL
Browse files Browse the repository at this point in the history
  • Loading branch information
fschleich committed Aug 15, 2024
1 parent f711967 commit 10a7f63
Showing 1 changed file with 22 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -291,15 +291,15 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.xosiz != 0 || p.yosiz != 0 || p.xtosiz != 0 || p.ytosiz != 0) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid XOsiz, YOsiz, XTOsiz or YTOsiz");
isValid = false;
}

if (p.xtsiz < p.xsiz || p.ytsiz < p.ysiz) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid XTsiz or XYsiz");
isValid = false;
}
Expand All @@ -309,7 +309,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.csiz.length <= 0 || p.csiz.length > 4) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: Invalid number (%d) of components", p.csiz.length));
isValid = false;
}
Expand All @@ -318,29 +318,29 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.csiz[0].xrsiz != 1) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: invalid horizontal sub-sampling for component 1");
isValid = false;
}
if (p.csiz.length > 1 && p.csiz[1].xrsiz != 1 &&
(p.csiz.length <= 2 || p.csiz[1].xrsiz != 2 || p.csiz[2].xrsiz != 2)) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: invalid horizontal sub-sampling for component 2");
isValid = false;
}
if (p.csiz.length > 2 && p.csiz[2].xrsiz != 1 && (p.csiz[1].xrsiz != 2 || p.csiz[2].xrsiz != 2)) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: invalid horizontal sub-sampling for component 3");
isValid = false;
}
if (p.csiz.length > 3 && p.csiz[3].xrsiz != 1) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: invalid horizontal sub-sampling for component 4");
isValid = false;
}
Expand All @@ -349,22 +349,22 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.csiz[0].ssiz > 15 || p.csiz[0].ssiz < 7) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: Invalid bit depth (%d)", p.csiz[0].ssiz + 1));
isValid = false;
}
for (int i = 0; i < p.csiz.length; i++) {
if (p.csiz[i].yrsiz != 1) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: invalid vertical sub-sampling for component %d", i));
isValid = false;
}
if (p.csiz[i].ssiz != p.csiz[0].ssiz) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: all components must have the same bit depth");
isValid = false;
}
Expand All @@ -376,7 +376,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
/* codestream shall require only Part 15 capabilities */
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: missing or invalid CAP marker");
return false;
}
Expand All @@ -385,7 +385,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
/* Bits 12-15 of Ccap15 shall be 0 */
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Bits 12-15 of Ccap15 shall be 0");
isValid = false;
}
Expand All @@ -409,7 +409,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
/* bad code-block style */
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid default code-block style");
isValid = false;
}
Expand All @@ -425,7 +425,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.cod.numDecompLevels == 0) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Number of decomposition levels must be greater than 0");
isValid = false;
}
Expand All @@ -437,7 +437,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
(maxSz <= 8192 && p.cod.numDecompLevels > 7)) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid number of decomposition levels");
isValid = false;
}
Expand All @@ -447,7 +447,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.cod.numLayers != 1) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: Number of layers (%d) is not 1", p.cod.numLayers));
isValid = false;
}
Expand All @@ -457,15 +457,15 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.cod.ycb < 5 || p.cod.ycb > 6) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: Invalid vertical code-block size (ycb = %d)", p.cod.ycb));
isValid = false;
}

if (p.cod.xcb < 5 || p.cod.xcb > 7) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
String.format("APP2.HT: Invalid horizontal code-block size (xcb = %d)", p.cod.xcb));
isValid = false;
}
Expand All @@ -478,7 +478,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (isHTREV && !isReversibleFilter) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: 9-7 irreversible filter is used but HTREV is signaled in CAP");
isValid = false;
}
Expand All @@ -488,7 +488,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.cod.precinctSizes.length == 0 || p.cod.precinctSizes[0] != 0x77) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid precinct sizes");
isValid = false;
}
Expand All @@ -497,7 +497,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (p.cod.precinctSizes[i] != 0x88) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Invalid precinct sizes");
isValid = false;
break;
Expand Down Expand Up @@ -527,7 +527,7 @@ private static boolean validateHT(CompositionImageEssenceDescriptorModel imageDe
if (codestreamB > 24) {
logger.addError(
IMFErrorLogger.IMFErrors.ErrorCodes.APPLICATION_COMPOSITION_ERROR,
IMFErrorLogger.IMFErrors.ErrorLevels.FATAL,
IMFErrorLogger.IMFErrors.ErrorLevels.NON_FATAL,
"APP2.HT: Parameter B has exceeded its limit to an extend that decoder issues are to be expected");
isValid = false;
} else if (codestreamB > maxB) {
Expand Down

0 comments on commit 10a7f63

Please sign in to comment.