Search in sources :

Example 6 with DLNAMediaInfo

use of net.pms.dlna.DLNAMediaInfo in project UniversalMediaServer by UniversalMediaServer.

the class FormatRecognitionTest method testPlaystationVideoMkvCompatibility.

/**
 * Test the compatibility of the Playstation 3 with the MPG format.
 */
@Test
public void testPlaystationVideoMkvCompatibility() {
    // This test is only useful if the MediaInfo library is available
    assumeTrue(mediaInfoParserIsValid);
    RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3");
    assertNotNull("Renderer named \"Playstation 3\" found.", conf);
    // Construct MKV information
    DLNAMediaInfo info = new DLNAMediaInfo();
    info.setContainer("mkv");
    DLNAMediaAudio audio = new DLNAMediaAudio();
    audio.setCodecA("ac3");
    audio.getAudioProperties().setNumberOfChannels(5);
    List<DLNAMediaAudio> audioCodes = new ArrayList<>();
    audioCodes.add(audio);
    info.setAudioTracksList(audioCodes);
    info.setCodecV("mp4");
    Format format = new MPG();
    format.match("test.mkv");
    assertEquals("PS3 is incompatible with MKV", false, conf.isCompatible(info, format, configuration));
}
Also used : DLNAMediaAudio(net.pms.dlna.DLNAMediaAudio) Format(net.pms.formats.Format) MPG(net.pms.formats.MPG) DLNAMediaInfo(net.pms.dlna.DLNAMediaInfo) RendererConfiguration(net.pms.configuration.RendererConfiguration) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 7 with DLNAMediaInfo

use of net.pms.dlna.DLNAMediaInfo in project UniversalMediaServer by UniversalMediaServer.

the class FormatRecognitionTest method testPlaystationVideoMpgCompatibility.

/**
 * 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("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.getAudioProperties().setNumberOfChannels(5);
    List<DLNAMediaAudio> audioCodes = new ArrayList<>();
    audioCodes.add(audio);
    info.setAudioTracksList(audioCodes);
    info.setCodecV("mp4");
    Format format = new MPG();
    format.match("test.avi");
    assertEquals("PS3 is compatible with MPG", true, conf.isCompatible(info, format, configuration));
    // Construct MPG with wmv codec that the PS3 does not support natively
    info.setCodecV("wmv");
    assertEquals("PS3 is incompatible with MPG with wmv codec", false, conf.isCompatible(info, format, configuration));
}
Also used : DLNAMediaAudio(net.pms.dlna.DLNAMediaAudio) Format(net.pms.formats.Format) MPG(net.pms.formats.MPG) DLNAMediaInfo(net.pms.dlna.DLNAMediaInfo) RendererConfiguration(net.pms.configuration.RendererConfiguration) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 8 with DLNAMediaInfo

use of net.pms.dlna.DLNAMediaInfo in project UniversalMediaServer by UniversalMediaServer.

the class FormatRecognitionTest method testPlaystationAudioMp3Compatibility.

/**
 * 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("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.getAudioProperties().setNumberOfChannels(2);
    List<DLNAMediaAudio> audioCodes = new ArrayList<>();
    audioCodes.add(audio);
    info.setAudioTracksList(audioCodes);
    Format format = new MP3();
    format.match("test.mp3");
    assertEquals("PS3 is compatible with MP3", true, conf.isCompatible(info, format, configuration));
    // Construct five channel MP3 that the PS3 does not support natively
    audio.getAudioProperties().setNumberOfChannels(5);
    assertEquals("PS3 is incompatible with five channel MP3", false, conf.isCompatible(info, format, configuration));
}
Also used : DLNAMediaAudio(net.pms.dlna.DLNAMediaAudio) MP3(net.pms.formats.audio.MP3) Format(net.pms.formats.Format) DLNAMediaInfo(net.pms.dlna.DLNAMediaInfo) RendererConfiguration(net.pms.configuration.RendererConfiguration) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 9 with DLNAMediaInfo

use of net.pms.dlna.DLNAMediaInfo in project UniversalMediaServer by UniversalMediaServer.

the class FormatRecognitionTest method testVirtualVideoActionInitializationCompatibility.

/**
 * When PMS is in the process of starting up, something particular happens.
 * The RootFolder is initialized and several VirtualVideoActions are added
 * as children. VirtualVideoActions use the MPG format and at the time of
 * initialization getDefaultRenderer() is used to determine whether or not
 * the format can be streamed.
 * <p>
 * Under these conditions Format.isCompatible() must return true, or
 * selecting the VirtualVideoAction will result in a "Corrupted data"
 * message.
 * <p>
 * This test verifies the case above.
 */
@Test
public void testVirtualVideoActionInitializationCompatibility() {
    boolean configurationLoaded = false;
    try {
        // Initialize PMS configuration like at initialization time, this
        // is relevant for RendererConfiguration.isCompatible().
        PMS.setConfiguration(new PmsConfiguration());
        configurationLoaded = true;
    } catch (ConfigurationException e) {
        e.printStackTrace();
    }
    // Continue the test if the configuration loaded, otherwise skip it.
    assumeTrue(configurationLoaded);
    // Continue the test if the LibMediaInfoParser can be loaded, otherwise skip it.
    assumeTrue(LibMediaInfoParser.isValid());
    // Construct media info exactly as VirtualVideoAction does
    DLNAMediaInfo info = new DLNAMediaInfo();
    info.setContainer("mpegps");
    List<DLNAMediaAudio> audioCodes = new ArrayList<>();
    info.setAudioTracksList(audioCodes);
    info.setMimeType("video/mpeg");
    info.setCodecV("mpeg2");
    info.setMediaparsed(true);
    Format format = new MPG();
    format.match("test.mpg");
    // Test without rendererConfiguration, as can happen when plugins
    // create virtual video actions under a folder.
    assertEquals("VirtualVideoAction is initialized as compatible with null configuration", true, format.isCompatible(info, null));
}
Also used : DLNAMediaAudio(net.pms.dlna.DLNAMediaAudio) Format(net.pms.formats.Format) PmsConfiguration(net.pms.configuration.PmsConfiguration) ConfigurationException(org.apache.commons.configuration.ConfigurationException) MPG(net.pms.formats.MPG) DLNAMediaInfo(net.pms.dlna.DLNAMediaInfo) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 10 with DLNAMediaInfo

use of net.pms.dlna.DLNAMediaInfo in project UniversalMediaServer by UniversalMediaServer.

the class FormatRecognitionTest method testPS3Compatibility.

/**
 * Test the compatibility of the
 * {@link Format#isCompatible(DLNAMediaInfo, RendererConfiguration)} for the
 * Playstation 3 renderer.
 */
@Test
public void testPS3Compatibility() {
    // This test is only useful if the MediaInfo library is available
    assumeTrue(mediaInfoParserIsValid);
    RendererConfiguration conf = RendererConfiguration.getRendererConfigurationByName("Playstation 3");
    assertNotNull("Renderer named \"Playstation 3\" found.", conf);
    // DVRMS: false
    DLNAMediaInfo info = new DLNAMediaInfo();
    info.setContainer("dvr");
    Format format = new DVRMS();
    format.match("test.dvr");
    assertFalse("isCompatible() gives the outcome false for DVRMS", conf.isCompatible(info, format, configuration));
    // ISO: false
    info = new DLNAMediaInfo();
    info.setContainer("iso");
    format = new ISO();
    format.match("test.iso");
    assertFalse("isCompatible() gives the outcome false for ISO", conf.isCompatible(info, format, configuration));
    // M4A: false
    info = new DLNAMediaInfo();
    info.setContainer("m4a");
    format = new M4A();
    format.match("test.m4a");
    assertTrue("isCompatible() gives the outcome true for M4A", conf.isCompatible(info, format, configuration));
    // MKV: false
    info = new DLNAMediaInfo();
    info.setContainer("mkv");
    format = new MKV();
    format.match("test.mkv");
    assertFalse("isCompatible() gives the outcome false for MKV", conf.isCompatible(info, format, configuration));
    // MP3: true
    info = new DLNAMediaInfo();
    info.setContainer("mp3");
    format = new MP3();
    format.match("test.mp3");
    assertTrue("isCompatible() gives the outcome true for MP3", conf.isCompatible(info, format, configuration));
    // MPG: true
    info = new DLNAMediaInfo();
    info.setContainer("avi");
    format = new MPG();
    format.match("test.mpg");
    assertTrue("isCompatible() gives the outcome true for MPG", conf.isCompatible(info, format, configuration));
    // OGG: false
    info = new DLNAMediaInfo();
    info.setContainer("ogg");
    format = new OGA();
    format.match("test.ogg");
    assertFalse("isCompatible() gives the outcome false for OGG", conf.isCompatible(info, format, configuration));
    // RAW: false
    info = new DLNAMediaInfo();
    info.setContainer("raw");
    format = new RAW();
    format.match("test.arw");
    assertFalse("isCompatible() gives the outcome false for RAW", conf.isCompatible(info, format, configuration));
    // WAV: true
    info = new DLNAMediaInfo();
    info.setContainer("wav");
    format = new WAV();
    format.match("test.wav");
    assertTrue("isCompatible() gives the outcome true for WAV", conf.isCompatible(info, format, configuration));
    // WEB: type=VIDEO
    info = new DLNAMediaInfo();
    info.setContainer("avi");
    format.setType(Format.VIDEO);
    assertTrue("isCompatible() gives the outcome true for WEB video", conf.isCompatible(info, format, configuration));
}
Also used : DVRMS(net.pms.formats.DVRMS) MP3(net.pms.formats.audio.MP3) Format(net.pms.formats.Format) ISO(net.pms.formats.ISO) MPG(net.pms.formats.MPG) DLNAMediaInfo(net.pms.dlna.DLNAMediaInfo) RendererConfiguration(net.pms.configuration.RendererConfiguration) OGA(net.pms.formats.audio.OGA) MKV(net.pms.formats.MKV) RAW(net.pms.formats.image.RAW) M4A(net.pms.formats.audio.M4A) WAV(net.pms.formats.audio.WAV) Test(org.junit.Test)

Aggregations

DLNAMediaInfo (net.pms.dlna.DLNAMediaInfo)10 Test (org.junit.Test)8 ArrayList (java.util.ArrayList)5 Format (net.pms.formats.Format)5 RendererConfiguration (net.pms.configuration.RendererConfiguration)4 DLNAMediaAudio (net.pms.dlna.DLNAMediaAudio)4 MPG (net.pms.formats.MPG)4 MP3 (net.pms.formats.audio.MP3)2 PmsConfiguration (net.pms.configuration.PmsConfiguration)1 FFMpegVideo (net.pms.encoders.FFMpegVideo)1 DVRMS (net.pms.formats.DVRMS)1 ISO (net.pms.formats.ISO)1 MKV (net.pms.formats.MKV)1 M4A (net.pms.formats.audio.M4A)1 OGA (net.pms.formats.audio.OGA)1 WAV (net.pms.formats.audio.WAV)1 RAW (net.pms.formats.image.RAW)1 OutputTextLogger (net.pms.io.OutputTextLogger)1 ConfigurationException (org.apache.commons.configuration.ConfigurationException)1