Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
a3942592
Commit
a3942592
authored
Mar 08, 2008
by
Filippo Carone
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
JNA jvlc initial implementation
parent
c01aca41
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
440 additions
and
0 deletions
+440
-0
bindings/java/org/videolan/jvlc/internal/LibVlc.java
bindings/java/org/videolan/jvlc/internal/LibVlc.java
+276
-0
bindings/java/org/videolan/jvlc/internal/LibVlcEventType.java
...ings/java/org/videolan/jvlc/internal/LibVlcEventType.java
+40
-0
bindings/java/org/videolan/jvlc/internal/LibVlcImpl.java
bindings/java/org/videolan/jvlc/internal/LibVlcImpl.java
+124
-0
No files found.
bindings/java/org/videolan/jvlc/internal/LibVlc.java
0 → 100644
View file @
a3942592
This diff is collapsed.
Click to expand it.
bindings/java/org/videolan/jvlc/internal/LibVlcEventType.java
0 → 100644
View file @
a3942592
/*****************************************************************************
* LibVlcEventType.java: VLC Java Bindings event types enum
*****************************************************************************
* Copyright (C) 1998-2008 the VideoLAN team
*
* Authors: Filippo Carone <filippo@carone.org>
*
*
* $Id $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
package
org.videolan.jvlc.internal
;
public
enum
LibVlcEventType
{
libvlc_MediaDescriptorMetaChanged
,
libvlc_MediaDescriptorSubItemAdded
,
libvlc_MediaDescriptorDurationChanged
,
libvlc_MediaDescriptorPreparsedChanged
,
libvlc_MediaDescriptorFreed
,
libvlc_MediaDescriptorStateChanged
,
libvlc_MediaInstancePlayed
,
libvlc_MediaInstancePaused
,
libvlc_MediaInstanceReachedEnd
;
}
bindings/java/org/videolan/jvlc/internal/LibVlcImpl.java
0 → 100644
View file @
a3942592
/*****************************************************************************
* LibVlcImpl.java: VLC Java Bindings, sample LibVlc use.
*****************************************************************************
* Copyright (C) 1998-2007 the VideoLAN team
*
* Authors: Filippo Carone <filippo@carone.org>
*
*
* $Id $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
package
org.videolan.jvlc.internal
;
import
java.awt.Canvas
;
import
java.awt.Component
;
import
javax.swing.JFrame
;
import
javax.swing.JPanel
;
import
org.videolan.jvlc.internal.LibVlc.LibVlcCallback
;
import
org.videolan.jvlc.internal.LibVlc.LibVlcEventManager
;
import
org.videolan.jvlc.internal.LibVlc.LibVlcInstance
;
import
org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor
;
import
org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance
;
import
org.videolan.jvlc.internal.LibVlc.libvlc_exception_t
;
import
com.sun.jna.Pointer
;
public
class
LibVlcImpl
{
public
static
boolean
done
;
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
{
LibVlc
libVlc
=
LibVlc
.
INSTANCE
;
libvlc_exception_t
exception
=
new
libvlc_exception_t
();
libVlc
.
libvlc_exception_init
(
exception
);
final
Object
lock
=
new
Object
();
System
.
out
.
println
(
"Starting vlc"
);
LibVlcInstance
libvlc_instance_t
=
libVlc
.
libvlc_new
(
0
,
new
String
[]
{
"/usr/local/bin/vlc"
},
exception
);
LibVlcMediaDescriptor
mediaDescriptor
=
libVlc
.
libvlc_media_descriptor_new
(
libvlc_instance_t
,
"/home/carone/a.avi"
,
exception
);
LibVlcMediaInstance
mediaInstance
=
libVlc
.
libvlc_media_instance_new_from_media_descriptor
(
mediaDescriptor
,
exception
);
LibVlcEventManager
mediaInstanceEventManager
=
libVlc
.
libvlc_media_instance_event_manager
(
mediaInstance
,
exception
);
LibVlcCallback
played
=
new
LibVlcCallback
()
{
@Override
public
void
callback
(
int
libvlc_event_t
,
Pointer
pointer
)
{
System
.
out
.
println
(
"Playing started."
);
}
};
LibVlcCallback
endReached
=
new
LibVlcCallback
()
{
@Override
public
void
callback
(
int
libvlc_event_t
,
Pointer
pointer
)
{
synchronized
(
lock
)
{
System
.
out
.
println
(
"Playing finished."
);
LibVlcImpl
.
done
=
true
;
}
}
};
libVlc
.
libvlc_event_attach
(
mediaInstanceEventManager
,
LibVlcEventType
.
libvlc_MediaInstancePlayed
.
ordinal
(),
played
,
null
,
exception
);
libVlc
.
libvlc_event_attach
(
mediaInstanceEventManager
,
LibVlcEventType
.
libvlc_MediaInstanceReachedEnd
.
ordinal
(),
endReached
,
null
,
exception
);
JFrame
frame
=
new
JFrame
(
"title"
);
frame
.
setVisible
(
true
);
frame
.
setLocation
(
100
,
100
);
frame
.
setSize
(
500
,
500
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
JPanel
panel
=
new
JPanel
();
Canvas
canvas
=
new
Canvas
();
canvas
.
setSize
(
500
,
500
);
panel
.
add
(
canvas
);
frame
.
getContentPane
().
add
(
panel
);
frame
.
pack
();
long
drawable
=
com
.
sun
.
jna
.
Native
.
getComponentID
(
canvas
);
libVlc
.
libvlc_video_set_parent
(
libvlc_instance_t
,
drawable
,
exception
);
libVlc
.
libvlc_media_instance_play
(
mediaInstance
,
exception
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment