diff --git a/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracterTest.java index 689042d6ef..995d4d317c 100644 --- a/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracterTest.java +++ b/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracterTest.java @@ -66,6 +66,8 @@ public class MP3MetadataExtracterTest extends TikaAudioMetadataExtracterTest public void testOggExtraction() throws Exception {} @Override public void testFlacExtraction() throws Exception {} + @Override + public void testMP4AudioExtraction() throws Exception {} /** * We don't have quite the usual metadata. Tests the descriptions one. diff --git a/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracter.java b/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracter.java index edd42519e3..9f4030286e 100644 --- a/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracter.java +++ b/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracter.java @@ -30,6 +30,7 @@ import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.XMPDM; import org.apache.tika.parser.CompositeParser; import org.apache.tika.parser.Parser; +import org.apache.tika.parser.mp4.MP4Parser; import org.gagravarr.tika.FlacParser; import org.gagravarr.tika.VorbisParser; @@ -60,13 +61,18 @@ public class TikaAudioMetadataExtracter extends TikaPoweredMetadataExtracter { protected static final String KEY_LYRICS = "lyrics"; + // The Audio related parsers we use private static Parser[] parsers = new Parser[] { new VorbisParser(), - new FlacParser() + new FlacParser(), + new MP4Parser() }; + // The explicit mimetypes we support (plus any others from the parsers) public static ArrayList SUPPORTED_MIMETYPES = buildSupportedMimetypes( - new String[] { MimetypeMap.MIMETYPE_VORBIS, MimetypeMap.MIMETYPE_FLAC }, - parsers + new String[] { + MimetypeMap.MIMETYPE_VORBIS, MimetypeMap.MIMETYPE_FLAC, + MimetypeMap.MIMETYPE_AUDIO_MP4, + }, parsers ); protected TikaConfig tikaConfig; diff --git a/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracterTest.java index b1efa55ef5..7e01f58f3f 100644 --- a/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracterTest.java +++ b/source/java/org/alfresco/repo/content/metadata/TikaAudioMetadataExtracterTest.java @@ -70,6 +70,10 @@ public class TikaAudioMetadataExtracterTest extends AbstractMetadataExtracterTes { testExtractFromMimetype(MimetypeMap.MIMETYPE_FLAC); } + public void testMP4AudioExtraction() throws Exception + { + testExtractFromMimetype(MimetypeMap.MIMETYPE_AUDIO_MP4); + } /** * We don't have quite the usual metadata. Tests the descriptions one. diff --git a/source/test-resources/quick/quick.m4a b/source/test-resources/quick/quick.m4a new file mode 100644 index 0000000000..bd58f267ea Binary files /dev/null and b/source/test-resources/quick/quick.m4a differ