import junit.framework.Assert;
import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
-import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaList;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
-public class MediaListPlayerTest
+public class MediaListPlayerTest extends AbstractVLCInternalTest
{
- private LibVlc libvlc = LibVlc.SYNC_INSTANCE;
-
- private LibVlcInstance libvlcInstance;
-
- private String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-
- @Before
- public void testSetup() throws Exception
- {
- libvlc_exception_t exception = new libvlc_exception_t();
- libvlcInstance = libvlc.libvlc_new(0, new String[]{"-vvv","-I","dummy","--aout=dummy","--vout=dummy"}, exception);
- // use the following line to use your audio card.
- // libvlcInstance = libvlc.libvlc_new(0, new String[]{}, exception);
- }
-
- @After
- public void tearDown()
- {
- libvlc.libvlc_release(libvlcInstance);
- }
+ private LibVlcMediaListPlayer current;
@Test
public void mediaListPlayerNewTest()
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
Assert.assertNotNull(mediaListPlayer);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
int result = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
Assert.assertEquals(0, result);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
Assert.assertEquals(1, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
/**
* this fails: see https://trac.videolan.org/vlc/ticket/1527
*/
-// @Test
+ @Test
public void mediaListPlayerPlay()
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ current = mediaListPlayer;
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
Assert.assertEquals("Exception message: " + exception.message + ".\n", 0, exception.raised);
+ libvlc.libvlc_media_release(mediaDescriptor);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
Thread.sleep(150);
}
libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
-
+ while (libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception) != LibVlcState.libvlc_Ended
+ .ordinal())
+ {
+ Thread.sleep(100);
+ }
+ libvlc.libvlc_media_release(mediaDescriptor);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
}
Thread.sleep(150);
}
- // FIXME give stats the time to run... there's probably a race condition in misc/stats.c:259 that
- // needs to be fixed
Thread.sleep(400);
libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ libvlc.libvlc_media_list_release(mediaList);
libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
- public void mediaListPlayerGetStateStopped()
+ public void mediaListPlayerGetStateEnded()
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
- Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), state);
+ Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), state);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
- public void mediaListPlayerPause() throws Exception
+ public void mediaLtistPlayerPause() throws Exception
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
if (exception.raised == 1)
{
throw new RuntimeException("Native exception thrown");
- }
+ }
if (playing == 1)
{
break;
Thread.sleep(150);
}
libvlc.libvlc_media_list_player_pause(mediaListPlayer, exception);
- Assert.assertEquals(0, exception.raised);
- while (true)
- {
- int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
- if (exception.raised == 1)
- {
- throw new RuntimeException("Native exception thrown");
- }
- if (playing == 0)
- {
- break;
- }
- Thread.sleep(150);
- }
+
int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
- Assert.assertEquals("Expected state: " + LibVlcState.libvlc_Paused +".\n", LibVlcState.libvlc_Paused.ordinal(), state);
+ Assert.assertEquals(exception.message, 0, exception.raised);
+ Assert.assertEquals(
+ "Expected state: " + LibVlcState.libvlc_Paused + ".\n",
+ LibVlcState.libvlc_Paused.ordinal(),
+ state);
libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ libvlc.libvlc_media_list_release(mediaList);
libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
@Test
public void mediaListPlayerSetMediaInstance()
{
libvlc.libvlc_media_list_player_set_media_player(mediaListPlayer, mi, exception);
Assert.assertEquals(0, exception.raised);
}
-
+
@Test
public void mediaListPlayerNextNoItems()
{
libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
Assert.assertEquals(1, exception.raised);
}
-
+
/**
* fails, see https://trac.videolan.org/vlc/ticket/1535
*/
-// @Test
+ // @Test
public void mediaListPlayerNext() throws Exception
{
libvlc_exception_t exception = new libvlc_exception_t();
Thread.sleep(150);
libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
}
@Test
while (true)
{
- int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
+ int playing = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
Assert.assertEquals(0, exception.raised);
- if (playing == 1)
+ if (playing == LibVlcState.libvlc_Playing.ordinal())
{
break;
}
Thread.sleep(150);
}
- Assert.assertEquals("Expected state: " + LibVlcState.libvlc_Playing +".\n", LibVlcState.libvlc_Playing.ordinal(), libvlc.libvlc_media_list_player_get_state(
- mediaListPlayer,
- exception));
-
+
libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
while (true)
{
}
Thread.sleep(150);
}
- Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), libvlc.libvlc_media_list_player_get_state(
+ Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), libvlc.libvlc_media_list_player_get_state(
mediaListPlayer,
exception));
+ libvlc.libvlc_media_list_release(mediaList);
}
-
+ @Override
+ @After
+ public void tearDown()
+ {
+ if (current != null)
+ {
+ libvlc.libvlc_media_list_player_stop(current, exception);
+ while (libvlc.libvlc_media_list_player_get_state(current, exception) != LibVlcState.libvlc_Ended.ordinal())
+ {
+ try
+ {
+ Thread.sleep(100);
+ }
+ catch (InterruptedException e)
+ {
+ //
+ }
+ }
+ }
+ current = null;
+ super.tearDown();
+ }
}