Permalink
Browse files

jvlc: video_set_parent does not exist anymore, use media_player_set_(…

…hwnd|xwindow)
  • Loading branch information...
1 parent 097ba5d commit 0dedb23704b49806c2ae4a50a72fed2fbfada4c2 Filippo Carone committed Sep 20, 2009
@@ -35,43 +35,29 @@
import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
-import com.sun.jna.Native;
-
public class JVLC
{
private final LibVlcInstance instance;
private final LibVlc libvlc = LibVlc.SYNC_INSTANCE;
- private MediaList mediaList;
-
private VLM vlm;
private Audio audio;
private volatile boolean released;
- private MediaListPlayer mediaListPlayer;
+ private Canvas canvas;
public JVLC()
{
- String[] args = new String[] {};
- instance = createInstance(args);
- init();
+ this(new String[] {});
}
public JVLC(String[] args)
{
instance = createInstance(args);
- init();
- }
-
- private void init()
- {
- mediaList = new MediaList(this);
- mediaListPlayer = new MediaListPlayer(this);
- mediaListPlayer.setMediaList(mediaList);
audio = new Audio(this);
}
@@ -93,31 +79,24 @@ public MediaPlayer play(String media)
{
MediaDescriptor mediaDescriptor = new MediaDescriptor(this, media);
MediaPlayer mediaPlayer = new MediaPlayer(mediaDescriptor);
+ if (canvas != null)
+ {
+ mediaPlayer.setParent(canvas);
+ }
mediaPlayer.play();
mediaDescriptor.release();
return mediaPlayer;
}
public void setVideoOutput(Canvas canvas)
{
- long drawable = Native.getComponentID(canvas);
- libvlc_exception_t exception = new libvlc_exception_t();
- libvlc.libvlc_video_set_parent(instance, drawable, exception );
+ this.canvas = canvas;
}
public Logger getLogger()
{
return new Logger(this);
}
-
- /**
- * Returns the mediaList.
- * @return the mediaList
- */
- public MediaList getMediaList()
- {
- return mediaList;
- }
public VLM getVLM()
{
@@ -176,8 +155,6 @@ public void release()
vlm.release();
vlm = null;
}
- mediaList.release();
- mediaListPlayer.release();
libvlc.libvlc_release(instance);
}
@@ -193,16 +170,6 @@ protected void finalize() throws Throwable
super.finalize();
}
-
- /**
- * Returns the mediaListPlayer.
- * @return the mediaListPlayer
- */
- public MediaListPlayer getMediaListPlayer()
- {
- return mediaListPlayer;
- }
-
/**
* @return
*/
@@ -25,6 +25,7 @@
package org.videolan.jvlc;
+import java.awt.Canvas;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
@@ -37,6 +38,9 @@
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
+import com.sun.jna.Native;
+import com.sun.jna.Platform;
+
public class MediaPlayer
{
@@ -152,11 +156,11 @@ public float getFPS()
libvlc_exception_t exception = new libvlc_exception_t();
return libvlc.libvlc_media_player_get_fps(instance, exception);
}
-
+
public boolean isPlaying()
{
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)
@@ -172,6 +176,20 @@ public void addListener(final MediaPlayerListener listener)
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}
*/
@@ -191,7 +209,7 @@ public void release()
released = true;
libvlc_exception_t exception = new libvlc_exception_t();
- for (MediaPlayerCallback callback : callbacks)
+ for (MediaPlayerCallback callback : callbacks)
{
for (LibVlcEventType event : EnumSet.range(
LibVlcEventType.libvlc_MediaPlayerPlaying,
@@ -201,9 +219,9 @@ public void release()
}
}
libvlc.libvlc_media_player_release(instance);
-
+
}
-
+
/**
* Returns the instance.
* @return the instance
@@ -338,8 +338,14 @@
String libvlc_get_changeset();
// 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);
@@ -38,6 +38,7 @@
import org.videolan.jvlc.internal.LibVlc.libvlc_event_t;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
+import com.sun.jna.Platform;
import com.sun.jna.Pointer;
@@ -119,7 +120,14 @@ public void callback(libvlc_event_t libvlc_event_t, Pointer pointer)
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);
}
}
@@ -39,7 +39,7 @@
public void jvlcNew()
{
JVLC jvlc = new JVLC();
- Assert.assertNotNull(jvlc.getMediaList());
+ Assert.assertNotNull(jvlc.getAudio());
}
@Test
@@ -83,6 +83,7 @@ public void windowClosing(WindowEvent ev)
for (int i = 0; i < videosNumber; i++)
{
jvlcArray[i].play(filename);
+ jvlcArray[i].setVideoOutput(videoCanvasesArray[i]);
Thread.sleep(500);
}
}

0 comments on commit 0dedb23

Please sign in to comment.