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
484b0aa1
Commit
484b0aa1
authored
Jan 24, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libvlc_InternalWait, libvlc_Quit: wait and signal libvlc exit
parent
73ec91d4
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
0 deletions
+35
-0
include/vlc_interface.h
include/vlc_interface.h
+2
-0
src/control/libvlc_internal.h
src/control/libvlc_internal.h
+1
-0
src/libvlc.c
src/libvlc.c
+29
-0
src/libvlc.h
src/libvlc.h
+1
-0
src/libvlccore.sym
src/libvlccore.sym
+2
-0
No files found.
include/vlc_interface.h
View file @
484b0aa1
...
@@ -106,6 +106,8 @@ VLC_EXPORT( void, intf_StopThread, ( intf_thread_t * ) );
...
@@ -106,6 +106,8 @@ VLC_EXPORT( void, intf_StopThread, ( intf_thread_t * ) );
#define intf_Eject(a,b) __intf_Eject(VLC_OBJECT(a),b)
#define intf_Eject(a,b) __intf_Eject(VLC_OBJECT(a),b)
VLC_EXPORT
(
int
,
__intf_Eject
,
(
vlc_object_t
*
,
const
char
*
)
);
VLC_EXPORT
(
int
,
__intf_Eject
,
(
vlc_object_t
*
,
const
char
*
)
);
VLC_EXPORT
(
void
,
libvlc_Quit
,
(
libvlc_int_t
*
)
);
VLC_EXPORT
(
int
,
interaction_Register
,
(
intf_thread_t
*
)
);
VLC_EXPORT
(
int
,
interaction_Register
,
(
intf_thread_t
*
)
);
VLC_EXPORT
(
int
,
interaction_Unregister
,
(
intf_thread_t
*
)
);
VLC_EXPORT
(
int
,
interaction_Unregister
,
(
intf_thread_t
*
)
);
...
...
src/control/libvlc_internal.h
View file @
484b0aa1
...
@@ -45,6 +45,7 @@ VLC_EXPORT (void, libvlc_InternalCleanup, ( libvlc_int_t * ) );
...
@@ -45,6 +45,7 @@ VLC_EXPORT (void, libvlc_InternalCleanup, ( libvlc_int_t * ) );
VLC_EXPORT
(
void
,
libvlc_InternalDestroy
,
(
libvlc_int_t
*
)
);
VLC_EXPORT
(
void
,
libvlc_InternalDestroy
,
(
libvlc_int_t
*
)
);
VLC_EXPORT
(
int
,
libvlc_InternalAddIntf
,
(
libvlc_int_t
*
,
const
char
*
)
);
VLC_EXPORT
(
int
,
libvlc_InternalAddIntf
,
(
libvlc_int_t
*
,
const
char
*
)
);
VLC_EXPORT
(
void
,
libvlc_InternalWait
,
(
libvlc_int_t
*
)
);
/***************************************************************************
/***************************************************************************
* Opaque structures for libvlc API
* Opaque structures for libvlc API
...
...
src/libvlc.c
View file @
484b0aa1
...
@@ -283,6 +283,7 @@ libvlc_int_t * libvlc_InternalCreate( void )
...
@@ -283,6 +283,7 @@ libvlc_int_t * libvlc_InternalCreate( void )
/* Initialize mutexes */
/* Initialize mutexes */
vlc_mutex_init
(
&
priv
->
timer_lock
);
vlc_mutex_init
(
&
priv
->
timer_lock
);
vlc_mutex_init
(
&
priv
->
config_lock
);
vlc_mutex_init
(
&
priv
->
config_lock
);
vlc_cond_init
(
&
priv
->
exiting
);
return
p_libvlc
;
return
p_libvlc
;
}
}
...
@@ -1135,6 +1136,7 @@ void libvlc_InternalDestroy( libvlc_int_t *p_libvlc )
...
@@ -1135,6 +1136,7 @@ void libvlc_InternalDestroy( libvlc_int_t *p_libvlc )
msg_Destroy
(
p_libvlc
);
msg_Destroy
(
p_libvlc
);
/* Destroy mutexes */
/* Destroy mutexes */
vlc_cond_destroy
(
&
priv
->
exiting
);
vlc_mutex_destroy
(
&
priv
->
config_lock
);
vlc_mutex_destroy
(
&
priv
->
config_lock
);
vlc_mutex_destroy
(
&
priv
->
timer_lock
);
vlc_mutex_destroy
(
&
priv
->
timer_lock
);
...
@@ -1190,6 +1192,33 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module )
...
@@ -1190,6 +1192,33 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module )
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
};
};
/**
* Waits until the LibVLC instance gets an exit signal. Normally, this happens
* when the user "exits" an interface plugin.
*/
void
libvlc_InternalWait
(
libvlc_int_t
*
p_libvlc
)
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_libvlc
);
vlc_object_internals_t
*
internals
=
vlc_internals
(
p_libvlc
);
vlc_object_lock
(
p_libvlc
);
while
(
vlc_object_alive
(
p_libvlc
)
)
vlc_cond_wait
(
&
priv
->
exiting
,
&
internals
->
lock
);
vlc_object_unlock
(
p_libvlc
);
}
/**
* Posts an exit signal to LibVLC instance. This will normally initiate the
* cleanup and destroy process. It should only be called on behalf of the user.
*/
void
libvlc_Quit
(
libvlc_int_t
*
p_libvlc
)
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_libvlc
);
vlc_object_kill
(
p_libvlc
);
vlc_cond_signal
(
&
priv
->
exiting
);
/* OK, kill took care of the lock */
}
#if defined( ENABLE_NLS ) && (defined (__APPLE__) || defined (WIN32)) && \
#if defined( ENABLE_NLS ) && (defined (__APPLE__) || defined (WIN32)) && \
( defined( HAVE_GETTEXT ) || defined( HAVE_INCLUDED_GETTEXT ) )
( defined( HAVE_GETTEXT ) || defined( HAVE_INCLUDED_GETTEXT ) )
/*****************************************************************************
/*****************************************************************************
...
...
src/libvlc.h
View file @
484b0aa1
...
@@ -198,6 +198,7 @@ typedef struct sap_handler_t sap_handler_t;
...
@@ -198,6 +198,7 @@ typedef struct sap_handler_t sap_handler_t;
typedef
struct
libvlc_priv_t
typedef
struct
libvlc_priv_t
{
{
libvlc_int_t
public_data
;
libvlc_int_t
public_data
;
vlc_cond_t
exiting
;
///< signaled when VLC wants to exit
/* Configuration */
/* Configuration */
vlc_mutex_t
config_lock
;
///< config file lock
vlc_mutex_t
config_lock
;
///< config file lock
...
...
src/libvlccore.sym
View file @
484b0aa1
...
@@ -208,6 +208,8 @@ libvlc_InternalCleanup
...
@@ -208,6 +208,8 @@ libvlc_InternalCleanup
libvlc_InternalCreate
libvlc_InternalCreate
libvlc_InternalDestroy
libvlc_InternalDestroy
libvlc_InternalInit
libvlc_InternalInit
libvlc_InternalWait
libvlc_Quit
LocaleFree
LocaleFree
mdate
mdate
module_config_free
module_config_free
...
...
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