You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2012/08/05 16:44:42 UTC

svn commit: r1369608 - in /tika/trunk/tika-core/src: main/resources/org/apache/tika/mime/tika-mimetypes.xml test/java/org/apache/tika/TikaDetectionTest.java

Author: jukka
Date: Sun Aug  5 14:44:42 2012
New Revision: 1369608

URL: http://svn.apache.org/viewvc?rev=1369608&view=rev
Log:
TIKA-970: Full identification of the JPEG 2000 family of formats

Contribution by Andrew Jackson based on information in https://github.com/bitsgalore/jp2kMagic

Modified:
    tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
    tika/trunk/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java

Modified: tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml?rev=1369608&r1=1369607&r2=1369608&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml (original)
+++ tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml Sun Aug  5 14:44:42 2012
@@ -3723,7 +3723,18 @@
   <mime-type type="image/ief">
     <glob pattern="*.ief"/>
   </mime-type>
-  <mime-type type="image/jp2"/>
+
+  <mime-type type="image/jp2">
+    <sub-class-of type="image/x-jp2-container" />
+    <acronym>JP2</acronym>
+    <_comment>JPEG 2000 Part 1 (JP2)</_comment>
+    <magic priority="50">
+      <match value="0x0000000C6A5020200D0A870A" type="string" offset="0">
+        <match value="0x6a703220" type="string" offset="20"/>
+      </match>
+    </magic>
+    <glob pattern="*.jp2"/>
+  </mime-type>
 
   <mime-type type="image/jpeg">
     <acronym>JPEG</acronym>
@@ -3741,8 +3752,32 @@
     <glob pattern="*.jfi"/>
   </mime-type>
 
-  <mime-type type="image/jpm"/>
-  <mime-type type="image/jpx"/>
+  <mime-type type="image/jpm">
+    <alias type="video/jpm"/>
+    <sub-class-of type="image/x-jp2-container" />
+    <acronym>JP2</acronym>
+    <_comment>JPEG 2000 Part 6 (JPM)</_comment>
+    <magic priority="50">
+      <match value="0x0000000C6A5020200D0A870A" type="string" offset="0">
+        <match value="0x6a706d20" type="string" offset="20"/>
+      </match>
+    </magic>
+    <glob pattern="*.jpm"/>
+    <glob pattern="*.jpgm"/>
+  </mime-type>
+
+  <mime-type type="image/jpx">
+    <sub-class-of type="image/x-jp2-container" />
+    <acronym>JP2</acronym>
+    <_comment>JPEG 2000 Part 2 (JPX)</_comment>
+    <magic priority="50">
+      <match value="0x0000000C6A5020200D0A870A" type="string" offset="0">
+        <match value="0x6a707820" type="string" offset="20"/>
+      </match>
+    </magic>
+    <glob pattern="*.jpf"/>
+  </mime-type>
+
   <mime-type type="image/naplps"/>
 
   <mime-type type="image/nitf">
@@ -3910,6 +3945,21 @@
     <glob pattern="*.ico"/>
   </mime-type>
 
+  <mime-type type="image/x-jp2-codestream">
+    <_comment>JPEG 2000 Codestream</_comment>
+    <magic priority="25">
+      <match value="0xff4fff51" type="string" offset="0"/>
+    </magic>
+    <glob pattern="*.j2c"/>
+  </mime-type>
+
+  <mime-type type="image/x-jp2-container">
+    <_comment>JPEG 2000 Container Format</_comment>
+    <magic priority="50">
+      <match value="0x0000000C6A5020200D0A870A" type="string" offset="0"/>
+    </magic>
+  </mime-type>
+
   <mime-type type="image/x-niff">
     <_comment>Navy Interchange File Format</_comment>
     <magic priority="50">
@@ -4973,14 +5023,20 @@
     <glob pattern="*.jpgv"/>
   </mime-type>
   <mime-type type="video/jpeg2000"/>
-  <mime-type type="video/jpm">
-    <glob pattern="*.jpm"/>
-    <glob pattern="*.jpgm"/>
-  </mime-type>
+
   <mime-type type="video/mj2">
+    <sub-class-of type="image/x-jp2-container" />
+    <acronym>MJ2</acronym>
+    <_comment>JPEG 2000 Part 3 (Motion JPEG, MJ2)</_comment>
+    <magic priority="50">
+      <match value="0x0000000C6A5020200D0A870A" type="string" offset="0">
+        <match value="0x6d6a7032" type="string" offset="20"/>
+      </match>
+    </magic>
     <glob pattern="*.mj2"/>
     <glob pattern="*.mjp2"/>
   </mime-type>
+
   <mime-type type="video/mp1s"/>
   <mime-type type="video/mp2p"/>
   <mime-type type="video/mp2t"/>

Modified: tika/trunk/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java?rev=1369608&r1=1369607&r2=1369608&view=diff
==============================================================================
--- tika/trunk/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java (original)
+++ tika/trunk/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java Sun Aug  5 14:44:42 2012
@@ -680,6 +680,8 @@ public class TikaDetectionTest extends T
         assertEquals("image/jpeg", tika.detect("x.jpeg"));
         assertEquals("image/jpeg", tika.detect("x.jpg"));
         assertEquals("image/jpeg", tika.detect("x.jpe"));
+        assertEquals("image/jpm", tika.detect("x.jpm"));
+        assertEquals("image/jpm", tika.detect("x.jpgm"));
         assertEquals("image/png", tika.detect("x.png"));
         assertEquals("image/prs.btif", tika.detect("x.btif"));
         assertEquals("image/svg+xml", tika.detect("x.svg"));
@@ -797,8 +799,6 @@ public class TikaDetectionTest extends T
         assertEquals("video/h263", tika.detect("x.h263"));
         assertEquals("video/h264", tika.detect("x.h264"));
         assertEquals("video/jpeg", tika.detect("x.jpgv"));
-        assertEquals("video/jpm", tika.detect("x.jpm"));
-        assertEquals("video/jpm", tika.detect("x.jpgm"));
         assertEquals("video/mj2", tika.detect("x.mj2"));
         assertEquals("video/mj2", tika.detect("x.mjp2"));
         assertEquals("video/mp4", tika.detect("x.mp4"));