You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2014/07/30 13:25:51 UTC

svn commit: r1614618 - in /tika/trunk/tika-parsers/src: main/java/org/apache/tika/parser/mp4/MP4Parser.java test/java/org/apache/tika/parser/mp4/MP4ParserTest.java

Author: nick
Date: Wed Jul 30 11:25:50 2014
New Revision: 1614618

URL: http://svn.apache.org/r1614618
Log:
Partial TIKA-1377 patch from Dan Becker, with changes - Extract more XMPDM data from MP4, with tests

Modified:
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java?rev=1614618&r1=1614617&r2=1614618&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java Wed Jul 30 11:25:50 2014
@@ -55,7 +55,10 @@ import com.coremedia.iso.boxes.apple.App
 import com.coremedia.iso.boxes.sampleentry.AudioSampleEntry;
 import com.googlecode.mp4parser.boxes.apple.AppleAlbumBox;
 import com.googlecode.mp4parser.boxes.apple.AppleArtistBox;
+import com.googlecode.mp4parser.boxes.apple.AppleArtist2Box;
 import com.googlecode.mp4parser.boxes.apple.AppleCommentBox;
+import com.googlecode.mp4parser.boxes.apple.AppleCompilationBox;
+import com.googlecode.mp4parser.boxes.apple.AppleDiskNumberBox;
 import com.googlecode.mp4parser.boxes.apple.AppleEncoderBox;
 import com.googlecode.mp4parser.boxes.apple.AppleGenreBox;
 import com.googlecode.mp4parser.boxes.apple.AppleNameBox;
@@ -217,6 +220,10 @@ public class MP4Parser extends AbstractP
                   addMetadata(TikaCoreProperties.CREATOR, metadata, artist);
                   addMetadata(XMPDM.ARTIST, metadata, artist);
 
+                  // Album Artist
+                  AppleArtist2Box artist2 = getOrNull(apple, AppleArtist2Box.class);
+                  addMetadata(XMPDM.ALBUM_ARTIST, metadata, artist2);
+
                   // Album
                   AppleAlbumBox album = getOrNull(apple, AppleAlbumBox.class);
                   addMetadata(XMPDM.ALBUM, metadata, album);
@@ -242,6 +249,18 @@ public class MP4Parser extends AbstractP
                      //metadata.set(XMPDM.NUMBER_OF_TRACKS, trackNum.getB()); // TODO
                   }
 
+                  // Disc number
+                  AppleDiskNumberBox discNum = getOrNull(apple, AppleDiskNumberBox.class);
+                  if (discNum != null) {
+                     metadata.set(XMPDM.DISC_NUMBER, discNum.getA());
+                  }
+
+                  // Compilation
+                  AppleCompilationBox compilation = getOrNull(apple, AppleCompilationBox.class);
+                  if (compilation != null) {
+                      metadata.set(XMPDM.COMPILATION, (int)compilation.getValue());
+                  }
+
                   // Comment
                   AppleCommentBox comment = getOrNull(apple, AppleCommentBox.class);
                   addMetadata(XMPDM.LOG_COMMENT, metadata, comment);

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java?rev=1614618&r1=1614617&r2=1614618&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java Wed Jul 30 11:25:50 2014
@@ -81,6 +81,10 @@ public class MP4ParserTest {
         assertEquals("Test Genre", metadata.get(XMPDM.GENRE));
         assertEquals("Test Comments", metadata.get(XMPDM.LOG_COMMENT.getName()));
         assertEquals("1", metadata.get(XMPDM.TRACK_NUMBER));
+        assertEquals("Test Album Artist", metadata.get(XMPDM.ALBUM_ARTIST));
+        assertEquals("6", metadata.get(XMPDM.DISC_NUMBER));
+        assertEquals("0", metadata.get(XMPDM.COMPILATION));
+        
         
         assertEquals("44100", metadata.get(XMPDM.AUDIO_SAMPLE_RATE));
         //assertEquals("Stereo", metadata.get(XMPDM.AUDIO_CHANNEL_TYPE)); // TODO Extract