[vlc-devel] commit: jvlc: wait for correct player status before releasing libvlc ( Filippo Carone )

git version control git at videolan.org
Thu Jul 31 23:49:42 CEST 2008


vlc | branch: master | Filippo Carone <littlejohn at videolan.org> | Thu Jul 31 23:51:33 2008 +0200| [39511f2b9c05cbefde171b0fc70ac2f45db5e972]

jvlc: wait for correct player status before releasing libvlc

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=39511f2b9c05cbefde171b0fc70ac2f45db5e972
---

 .../jvlc/internal/LibVlcMediaPlayerTest.java       |    1 +
 .../jvlc/internal/MediaListPlayerTest.java         |   32 ++++++++++++++++++++
 2 files changed, 33 insertions(+), 0 deletions(-)

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 bb66411..0f43356 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 8a6b0f3..bad8138 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();
+    }
+
 }




More information about the vlc-devel mailing list