Search in sources :

Example 11 with Format

use of net.pms.formats.Format in project UniversalMediaServer by UniversalMediaServer.

the class StartStopListenerDelegate method start.

// technically, these don't need to be synchronized as there should be
// one thread per request/response, but it doesn't hurt to enforce the contract
public synchronized void start(DLNAResource dlna) {
    assert this.dlna == null;
    this.dlna = dlna;
    Format ext = dlna.getFormat();
    // only trigger the start/stop events for audio and video
    if (!started && ext != null && (ext.isVideo() || ext.isAudio())) {
        dlna.startPlaying(rendererId, renderer);
        started = true;
        PMS.get().getSleepManager().startPlaying();
    } else {
        PMS.get().getSleepManager().postponeSleep();
    }
}
Also used : Format(net.pms.formats.Format)

Example 12 with Format

use of net.pms.formats.Format 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 13 with Format

use of net.pms.formats.Format 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 14 with Format

use of net.pms.formats.Format 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)

Example 15 with Format

use of net.pms.formats.Format in project UniversalMediaServer by UniversalMediaServer.

the class FormatFactoryTest method testSingleFormat.

/**
 * Verify if a filename is recognized as a given format. Use
 * <code>null</code> as formatName when no match is expected.
 *
 * @param filename
 *            The filename to verify.
 * @param formatName
 *            The name of the expected format.
 */
private void testSingleFormat(final String filename, final String formatName, final int type) {
    Format result = FormatFactory.getAssociatedFormat(filename);
    if (result != null) {
        assertEquals("\"" + filename + "\" is expected to match", formatName, result.toString());
        assertEquals("\"" + filename + "\" is expected to be of type " + type, type, result.getType());
    } else {
        assertNull("\"" + filename + "\" is expected to match nothing", formatName);
    }
}
Also used : Format(net.pms.formats.Format)

Aggregations

Format (net.pms.formats.Format)17 Test (org.junit.Test)6 ArrayList (java.util.ArrayList)5 DLNAMediaInfo (net.pms.dlna.DLNAMediaInfo)5 RendererConfiguration (net.pms.configuration.RendererConfiguration)4 DLNAMediaAudio (net.pms.dlna.DLNAMediaAudio)4 MPG (net.pms.formats.MPG)4 SimpleDateFormat (java.text.SimpleDateFormat)3 OutputParams (net.pms.io.OutputParams)3 File (java.io.File)2 IOException (java.io.IOException)2 PmsConfiguration (net.pms.configuration.PmsConfiguration)2 DLNAMediaSubtitle (net.pms.dlna.DLNAMediaSubtitle)2 MP3 (net.pms.formats.audio.MP3)2 ImageFormat (net.pms.image.ImageFormat)2 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 MalformedURLException (java.net.MalformedURLException)1 Socket (java.net.Socket)1