]> granicus.if.org Git - openjpeg/commitdiff
[trunk] manage correctly the case where meth value is not correct (thanks winfried)
authorMickael Savinaud <savmickael@users.noreply.github.com>
Sun, 17 Mar 2013 18:27:41 +0000 (18:27 +0000)
committerMickael Savinaud <savmickael@users.noreply.github.com>
Sun, 17 Mar 2013 18:27:41 +0000 (18:27 +0000)
src/lib/openjp2/jp2.c

index 5f2390f3d209f80108297276d0290ff8c7f3f60f..77df1529b89d22bd335171db5dfbddd0d8926e38 100644 (file)
@@ -1103,6 +1103,8 @@ OPJ_BOOL opj_jp2_read_colr( opj_jp2_t *jp2,
                }
 
                opj_read_bytes(p_colr_header_data,&jp2->enumcs ,4);                     /* EnumCS */
+        
+        jp2->color.jp2_has_colr = 1;
        }
        else if (jp2->meth == 2) {
                /* ICC profile */
@@ -1124,14 +1126,17 @@ OPJ_BOOL opj_jp2_read_colr( opj_jp2_t *jp2,
                        ++p_colr_header_data;
                        jp2->color.icc_profile_buf[it_icc_value] = (OPJ_BYTE) l_value;
                }
-
+           
+        jp2->color.jp2_has_colr = 1;
        }
-       else 
-               opj_event_msg(p_manager, EVT_INFO, "COLR BOX meth value is not a regular value (%d), so we will skip the fields following the approx field.\n", jp2->meth);
-
-       jp2->color.jp2_has_colr = 1;
-
-       return OPJ_TRUE;
+       else if (jp2->meth > 2)
+    {
+        /*     ISO/IEC 15444-1:2004 (E), Table I.9 ­ Legal METH values:
+        conforming JP2 reader shall ignore the entire Colour Specification box.*/
+        opj_event_msg(p_manager, EVT_INFO, "COLR BOX meth value is not a regular value (%d), " 
+            "so we will ignore the entire Colour Specification box. \n", jp2->meth);
+    }
+    return OPJ_TRUE;
 }
 
 OPJ_BOOL opj_jp2_decode(opj_jp2_t *jp2,