Commit 0dedb237 authored by Filippo Carone's avatar Filippo Carone

jvlc: video_set_parent does not exist anymore, use media_player_set_(hwnd|xwindow)

parent 097ba5d1
...@@ -35,8 +35,6 @@ import org.videolan.jvlc.internal.LibVlc; ...@@ -35,8 +35,6 @@ import org.videolan.jvlc.internal.LibVlc;
import org.videolan.jvlc.internal.LibVlc.LibVlcInstance; import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
import com.sun.jna.Native;
public class JVLC public class JVLC
{ {
...@@ -44,34 +42,22 @@ public class JVLC ...@@ -44,34 +42,22 @@ public class JVLC
private final LibVlc libvlc = LibVlc.SYNC_INSTANCE; private final LibVlc libvlc = LibVlc.SYNC_INSTANCE;
private MediaList mediaList;
private VLM vlm; private VLM vlm;
private Audio audio; private Audio audio;
private volatile boolean released; private volatile boolean released;
private MediaListPlayer mediaListPlayer; private Canvas canvas;
public JVLC() public JVLC()
{ {
String[] args = new String[] {}; this(new String[] {});
instance = createInstance(args);
init();
} }
public JVLC(String[] args) public JVLC(String[] args)
{ {
instance = createInstance(args); instance = createInstance(args);
init();
}
private void init()
{
mediaList = new MediaList(this);
mediaListPlayer = new MediaListPlayer(this);
mediaListPlayer.setMediaList(mediaList);
audio = new Audio(this); audio = new Audio(this);
} }
...@@ -93,6 +79,10 @@ public class JVLC ...@@ -93,6 +79,10 @@ public class JVLC
{ {
MediaDescriptor mediaDescriptor = new MediaDescriptor(this, media); MediaDescriptor mediaDescriptor = new MediaDescriptor(this, media);
MediaPlayer mediaPlayer = new MediaPlayer(mediaDescriptor); MediaPlayer mediaPlayer = new MediaPlayer(mediaDescriptor);
if (canvas != null)
{
mediaPlayer.setParent(canvas);
}
mediaPlayer.play(); mediaPlayer.play();
mediaDescriptor.release(); mediaDescriptor.release();
return mediaPlayer; return mediaPlayer;
...@@ -100,24 +90,13 @@ public class JVLC ...@@ -100,24 +90,13 @@ public class JVLC
public void setVideoOutput(Canvas canvas) public void setVideoOutput(Canvas canvas)
{ {
long drawable = Native.getComponentID(canvas); this.canvas = canvas;
libvlc_exception_t exception = new libvlc_exception_t();
libvlc.libvlc_video_set_parent(instance, drawable, exception );
} }
public Logger getLogger() public Logger getLogger()
{ {
return new Logger(this); return new Logger(this);
} }
/**
* Returns the mediaList.
* @return the mediaList
*/
public MediaList getMediaList()
{
return mediaList;
}
public VLM getVLM() public VLM getVLM()
{ {
...@@ -176,8 +155,6 @@ public class JVLC ...@@ -176,8 +155,6 @@ public class JVLC
vlm.release(); vlm.release();
vlm = null; vlm = null;
} }
mediaList.release();
mediaListPlayer.release();
libvlc.libvlc_release(instance); libvlc.libvlc_release(instance);
} }
...@@ -193,16 +170,6 @@ public class JVLC ...@@ -193,16 +170,6 @@ public class JVLC
super.finalize(); super.finalize();
} }
/**
* Returns the mediaListPlayer.
* @return the mediaListPlayer
*/
public MediaListPlayer getMediaListPlayer()
{
return mediaListPlayer;
}
/** /**
* @return * @return
*/ */
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package org.videolan.jvlc; package org.videolan.jvlc;
import java.awt.Canvas;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
...@@ -37,6 +38,9 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager; ...@@ -37,6 +38,9 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class MediaPlayer public class MediaPlayer
{ {
...@@ -152,11 +156,11 @@ public class MediaPlayer ...@@ -152,11 +156,11 @@ public class MediaPlayer
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
return libvlc.libvlc_media_player_get_fps(instance, exception); return libvlc.libvlc_media_player_get_fps(instance, exception);
} }
public boolean isPlaying() public boolean isPlaying()
{ {
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
return libvlc.libvlc_media_player_is_playing(instance, exception) == 1? true : false; return libvlc.libvlc_media_player_is_playing(instance, exception) == 1 ? true : false;
} }
public void addListener(final MediaPlayerListener listener) public void addListener(final MediaPlayerListener listener)
...@@ -172,6 +176,20 @@ public class MediaPlayer ...@@ -172,6 +176,20 @@ public class MediaPlayer
callbacks.add(callback); callbacks.add(callback);
} }
public void setParent(Canvas canvas)
{
long drawable = Native.getComponentID(canvas);
libvlc_exception_t exception = new libvlc_exception_t();
if (Platform.isWindows())
{
libvlc.libvlc_media_player_set_hwnd(instance, drawable, exception);
}
else
{
libvlc.libvlc_media_player_set_xwindow(instance, drawable, exception);
}
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
...@@ -191,7 +209,7 @@ public class MediaPlayer ...@@ -191,7 +209,7 @@ public class MediaPlayer
released = true; released = true;
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
for (MediaPlayerCallback callback : callbacks) for (MediaPlayerCallback callback : callbacks)
{ {
for (LibVlcEventType event : EnumSet.range( for (LibVlcEventType event : EnumSet.range(
LibVlcEventType.libvlc_MediaPlayerPlaying, LibVlcEventType.libvlc_MediaPlayerPlaying,
...@@ -201,9 +219,9 @@ public class MediaPlayer ...@@ -201,9 +219,9 @@ public class MediaPlayer
} }
} }
libvlc.libvlc_media_player_release(instance); libvlc.libvlc_media_player_release(instance);
} }
/** /**
* Returns the instance. * Returns the instance.
* @return the instance * @return the instance
......
...@@ -338,8 +338,14 @@ public interface LibVlc extends Library ...@@ -338,8 +338,14 @@ public interface LibVlc extends Library
String libvlc_get_changeset(); String libvlc_get_changeset();
// video // video
void libvlc_video_set_parent(LibVlcInstance libvlc_instance, long drawable, libvlc_exception_t exception); void libvlc_media_player_set_hwnd(LibVlcMediaPlayer mediaplayer_instance, long drawable, libvlc_exception_t exception);
long libvlc_media_player_get_hwnd(LibVlcMediaPlayer mediaplayer_instance);
void libvlc_media_player_set_xwindow(LibVlcMediaPlayer mediaplayer_instance, long drawable, libvlc_exception_t exception);
long libvlc_media_player_get_xwindow(LibVlcMediaPlayer mediaplayer_instance);
void libvlc_toggle_fullscreen(LibVlcMediaPlayer libvlc_instance); void libvlc_toggle_fullscreen(LibVlcMediaPlayer libvlc_instance);
......
...@@ -38,6 +38,7 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer; ...@@ -38,6 +38,7 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
import org.videolan.jvlc.internal.LibVlc.libvlc_event_t; import org.videolan.jvlc.internal.LibVlc.libvlc_event_t;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
import com.sun.jna.Platform;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
...@@ -119,7 +120,14 @@ public class LibVlcImpl ...@@ -119,7 +120,14 @@ public class LibVlcImpl
int drawable = (int) com.sun.jna.Native.getComponentID(canvas); int drawable = (int) com.sun.jna.Native.getComponentID(canvas);
libVlc.libvlc_video_set_parent(libvlc_instance_t, drawable, exception); if (Platform.isWindows())
{
libVlc.libvlc_media_player_set_hwnd(mediaPlayer, drawable, exception);
}
else
{
libVlc.libvlc_media_player_set_xwindow(mediaPlayer, drawable, exception);
}
libVlc.libvlc_media_player_play(mediaPlayer, exception); libVlc.libvlc_media_player_play(mediaPlayer, exception);
} }
} }
...@@ -39,7 +39,7 @@ public class JVLCTest extends AbstractJVLCTest ...@@ -39,7 +39,7 @@ public class JVLCTest extends AbstractJVLCTest
public void jvlcNew() public void jvlcNew()
{ {
JVLC jvlc = new JVLC(); JVLC jvlc = new JVLC();
Assert.assertNotNull(jvlc.getMediaList()); Assert.assertNotNull(jvlc.getAudio());
} }
@Test @Test
......
...@@ -83,6 +83,7 @@ public class MultipleVideosSample ...@@ -83,6 +83,7 @@ public class MultipleVideosSample
for (int i = 0; i < videosNumber; i++) for (int i = 0; i < videosNumber; i++)
{ {
jvlcArray[i].play(filename); jvlcArray[i].play(filename);
jvlcArray[i].setVideoOutput(videoCanvasesArray[i]);
Thread.sleep(500); Thread.sleep(500);
} }
} }
......
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