Commit 39511f2b authored by Filippo Carone's avatar Filippo Carone

jvlc: wait for correct player status before releasing libvlc

parent 38d49776
...@@ -106,6 +106,7 @@ public class LibVlcMediaPlayerTest extends AbstractVLCInternalTest ...@@ -106,6 +106,7 @@ public class LibVlcMediaPlayerTest extends AbstractVLCInternalTest
libvlc.libvlc_media_player_play(mi, exception); libvlc.libvlc_media_player_play(mi, exception);
Thread.sleep(100); Thread.sleep(100);
libvlc.libvlc_media_player_stop(mi, exception); libvlc.libvlc_media_player_stop(mi, exception);
Thread.sleep(500);
Assert.assertEquals(0, exception.raised); Assert.assertEquals(0, exception.raised);
} }
......
...@@ -27,6 +27,7 @@ package org.videolan.jvlc.internal; ...@@ -27,6 +27,7 @@ package org.videolan.jvlc.internal;
import junit.framework.Assert; import junit.framework.Assert;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance;
...@@ -38,6 +39,8 @@ import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; ...@@ -38,6 +39,8 @@ import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
public class MediaListPlayerTest extends AbstractVLCInternalTest public class MediaListPlayerTest extends AbstractVLCInternalTest
{ {
private LibVlcMediaListPlayer current;
@Test @Test
public void mediaListPlayerNewTest() public void mediaListPlayerNewTest()
{ {
...@@ -103,6 +106,7 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest ...@@ -103,6 +106,7 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest
{ {
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
current = mediaListPlayer;
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception); LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception); LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception); libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
...@@ -138,6 +142,11 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest ...@@ -138,6 +142,11 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest
Thread.sleep(150); Thread.sleep(150);
} }
libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception); 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_release(mediaDescriptor);
libvlc.libvlc_media_list_release(mediaList); libvlc.libvlc_media_list_release(mediaList);
libvlc.libvlc_media_list_player_release(mediaListPlayer); libvlc.libvlc_media_list_player_release(mediaListPlayer);
...@@ -298,4 +307,27 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest ...@@ -298,4 +307,27 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest
libvlc.libvlc_media_list_release(mediaList); 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();
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment