vlm.release();
vlm = null;
}
+ mediaList.release();
+ mediaListPlayer.release();
+
libvlc.libvlc_release(instance);
}
private LibVlcMedia instance;
private LibVlc libvlc;
private LibVlcEventManager eventManager;
- private boolean released;
+ private volatile boolean released;
private MediaPlayer mediaPlayer;
package org.videolan.jvlc;
import java.util.ArrayList;
-import java.util.LinkedHashSet;
import java.util.List;
import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
private final LibVlcMediaList instance;
- private final LibVlcEventManager eventManager;
-
private List<String> items = new ArrayList<String>();
+ private LibVlcEventManager eventManager;
+
+ private volatile boolean released;
+
public MediaList(JVLC jvlc)
{
this.jvlc = jvlc;
@Override
protected void finalize() throws Throwable
{
- jvlc.getLibvlc().libvlc_media_list_release(instance);
+ release();
super.finalize();
}
return instance;
}
+ /**
+ *
+ */
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+
+ jvlc.getLibvlc().libvlc_media_list_release(instance);
+ }
+
}
private final LibVlcMediaListPlayer instance;
private final JVLC jvlc;
+
+ private volatile boolean released;
public MediaListPlayer(JVLC jvlc)
{
@Override
protected void finalize() throws Throwable
{
- jvlc.getLibvlc().libvlc_media_list_player_release(instance);
+ release();
super.finalize();
}
+ /**
+ *
+ */
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+ jvlc.getLibvlc().libvlc_media_list_player_release(instance);
+
+ }
+
}
private MediaDescriptor mediaDescriptor;
+ private volatile boolean released;
+
MediaPlayer(JVLC jvlc, LibVlcMediaPlayer instance)
{
libvlc_exception_t exception = new libvlc_exception_t();
@Override
protected void finalize() throws Throwable
{
+ release();
+ super.finalize();
+ }
+
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+
libvlc_exception_t exception = new libvlc_exception_t();
for (MediaPlayerCallback callback : callbacks)
{
}
}
libvlc.libvlc_media_player_release(instance);
- super.finalize();
+
}
-
+
/**
* Returns the instance.
* @return the instance