/** Test the compatibility of the Playstation 3 with the MPG format. */ @Test public void testPlaystationVideoMpgCompatibility() { // This test is only useful if the MediaInfo library is available assumeTrue(mediaInfoParserIsValid); RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3"); assertNotNull("No renderer named \"Playstation 3\" found.", conf); // Construct regular two channel MPG information DLNAMediaInfo info = new DLNAMediaInfo(); info.setContainer("avi"); DLNAMediaAudio audio = new DLNAMediaAudio(); audio.setCodecA("ac3"); audio.setNrAudioChannels(5); ArrayList<DLNAMediaAudio> audioCodes = new ArrayList<DLNAMediaAudio>(); audioCodes.add(audio); info.setAudioCodes(audioCodes); info.setCodecV("mp4"); Format format = new MPG(); format.match("test.avi"); assertEquals( "PS3 is reported to be incompatible with MPG", true, conf.isCompatible(info, format)); // Construct MPG with wmv codec that the PS3 does not support natively info.setCodecV("wmv"); assertEquals( "PS3 is reported to be compatible with MPG with wmv codec", false, conf.isCompatible(info, format)); }
/** Test the compatibility of the Playstation 3 with the MP3 format. */ @Test public void testPlaystationAudioMp3Compatibility() { // This test is only useful if the MediaInfo library is available assumeTrue(mediaInfoParserIsValid); RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3"); assertNotNull("No renderer named \"Playstation 3\" found.", conf); // Construct regular two channel MP3 information DLNAMediaInfo info = new DLNAMediaInfo(); info.setContainer("mp3"); info.setMimeType(HTTPResource.AUDIO_MP3_TYPEMIME); DLNAMediaAudio audio = new DLNAMediaAudio(); audio.setNrAudioChannels(2); ArrayList<DLNAMediaAudio> audioCodes = new ArrayList<DLNAMediaAudio>(); audioCodes.add(audio); info.setAudioCodes(audioCodes); Format format = new MP3(); format.match("test.mp3"); assertEquals( "PS3 is reported to be incompatible with MP3", true, conf.isCompatible(info, format)); // Construct five channel MP3 that the PS3 does not support natively audio.setNrAudioChannels(5); assertEquals( "PS3 is reported to be incompatible with MP3", false, conf.isCompatible(info, format)); }
/** Test the compatibility of the Playstation 3 with the GIF format. */ @Test public void testPlaystationImageGifCompatibility() { // This test is only useful if the MediaInfo library is available assumeTrue(mediaInfoParserIsValid); RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3"); assertNotNull("No renderer named \"Playstation 3\" found.", conf); // Construct GIF information DLNAMediaInfo info = new DLNAMediaInfo(); info.setContainer("gif"); Format format = new GIF(); format.match("test.gif"); assertEquals( "PS3 is reported to be incompatible with GIF", true, conf.isCompatible(info, format)); }
/** {@inheritDoc} */ @Override public boolean isCompatible(DLNAResource resource) { if (resource == null || resource.getFormat().getType() != Format.VIDEO) { return false; } Format format = resource.getFormat(); if (format != null) { Format.Identifier id = format.getIdentifier(); if (id.equals(Format.Identifier.WEB)) { return true; } } return false; }
/** * Returns the player that matches the given class and format. * * @param profileClass The class to match. * @param ext The format to match. * @return The player if a match could be found, <code>null</code> otherwise. */ public static Player getPlayer(final Class<? extends Player> profileClass, final Format ext) { for (Player player : players) { if (player.getClass().equals(profileClass) && player.type() == ext.getType() && !player.excludeFormat(ext)) { return player; } } return null; }
/** * Test the backwards compatibility of {@link Format#isCompatible(DLNAMediaInfo, * RendererConfiguration)} and {@link Format#ps3compatible()}. */ @SuppressWarnings("deprecation") @Test public void testBackwardsCompatibility() { // This test is only useful if the MediaInfo library is available assumeTrue(mediaInfoParserIsValid); // Testing ps3compatible(), so use renderer Playstation 3 RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3"); assertNotNull("No renderer named \"Playstation 3\" found.", conf); // DVRMS: false DLNAMediaInfo info = new DLNAMediaInfo(); info.setContainer("dvr"); Format format = new DVRMS(); format.match("test.dvr"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for DVRMS", format.ps3compatible(), conf.isCompatible(info, format)); // ISO: false info = new DLNAMediaInfo(); info.setContainer("iso"); format = new ISO(); format.match("test.iso"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for ISO", format.ps3compatible(), conf.isCompatible(info, format)); // JPG: true info = new DLNAMediaInfo(); info.setContainer("jpg"); format = new JPG(); format.match("test.jpeg"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for JPG", format.ps3compatible(), conf.isCompatible(info, format)); // M4A: false info = new DLNAMediaInfo(); info.setContainer("m4a"); format = new M4A(); format.match("test.m4a"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for M4A", format.ps3compatible(), conf.isCompatible(info, format)); // MKV: false info = new DLNAMediaInfo(); info.setContainer("mkv"); format = new MKV(); format.match("test.mkv"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for MKV", format.ps3compatible(), conf.isCompatible(info, format)); // MP3: true info = new DLNAMediaInfo(); info.setContainer("mp3"); format = new MP3(); format.match("test.mp3"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for MP3", format.ps3compatible(), conf.isCompatible(info, format)); // MPG: true info = new DLNAMediaInfo(); info.setContainer("avi"); format = new MPG(); format.match("test.mpg"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for MPG", format.ps3compatible(), conf.isCompatible(info, format)); // OGG: false info = new DLNAMediaInfo(); info.setContainer("ogg"); format = new OGG(); format.match("test.ogg"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for OGG", format.ps3compatible(), conf.isCompatible(info, format)); // RAW: false info = new DLNAMediaInfo(); info.setContainer("raw"); format = new RAW(); format.match("test.arw"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for RAW", format.ps3compatible(), conf.isCompatible(info, format)); // WAV: true info = new DLNAMediaInfo(); info.setContainer("wav"); format = new WAV(); format.match("test.wav"); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for WAV", format.ps3compatible(), conf.isCompatible(info, format)); // WEB: type=IMAGE info = new DLNAMediaInfo(); info.setContainer("jpg"); format = new WEB(); format.match("http://test.org/"); format.setType(Format.IMAGE); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for WEB image", format.ps3compatible(), conf.isCompatible(info, format)); // WEB: type=VIDEO info = new DLNAMediaInfo(); info.setContainer("avi"); format.setType(Format.VIDEO); assertEquals( "isCompatible() reporting different outcome than ps3compatible() for WEB video", format.ps3compatible(), conf.isCompatible(info, format)); }