From 39511f2b9c05cbefde171b0fc70ac2f45db5e972 Mon Sep 17 00:00:00 2001 From: Filippo Carone Date: Thu, 31 Jul 2008 23:51:33 +0200 Subject: [PATCH] jvlc: wait for correct player status before releasing libvlc --- .../jvlc/internal/LibVlcMediaPlayerTest.java | 1 + .../jvlc/internal/MediaListPlayerTest.java | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerTest.java b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerTest.java index bb66411528..0f43356c1f 100644 --- a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerTest.java +++ b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerTest.java @@ -106,6 +106,7 @@ public class LibVlcMediaPlayerTest extends AbstractVLCInternalTest libvlc.libvlc_media_player_play(mi, exception); Thread.sleep(100); libvlc.libvlc_media_player_stop(mi, exception); + Thread.sleep(500); Assert.assertEquals(0, exception.raised); } diff --git a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java index 8a6b0f3330..bad81380fc 100644 --- a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java +++ b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java @@ -27,6 +27,7 @@ package org.videolan.jvlc.internal; import junit.framework.Assert; +import org.junit.After; import org.junit.Test; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance; @@ -38,6 +39,8 @@ import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; public class MediaListPlayerTest extends AbstractVLCInternalTest { + private LibVlcMediaListPlayer current; + @Test public void mediaListPlayerNewTest() { @@ -103,6 +106,7 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest { 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); @@ -138,6 +142,11 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest 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); @@ -298,4 +307,27 @@ public class MediaListPlayerTest extends AbstractVLCInternalTest 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(); + } + } -- 2.39.2