[vlc-commits] commit: Calls directly the vout wrapper iof using function pointers. ( Laurent Aimar )
git at videolan.org
git at videolan.org
Sun Apr 18 15:03:14 CEST 2010
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sun Apr 18 02:58:25 2010 +0200| [6d2319a0c76a26965ba510dc561380c3b6f922a6] | committer: Laurent Aimar
Calls directly the vout wrapper iof using function pointers.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6d2319a0c76a26965ba510dc561380c3b6f922a6
---
include/vlc_vout.h | 9 ---------
src/video_output/video_output.c | 25 ++++++++++++-------------
src/video_output/vout_internal.h | 5 +++++
src/video_output/vout_wrapper.c | 21 +++++----------------
4 files changed, 22 insertions(+), 38 deletions(-)
diff --git a/include/vlc_vout.h b/include/vlc_vout.h
index 18f9e36..fdae82a 100644
--- a/include/vlc_vout.h
+++ b/include/vlc_vout.h
@@ -130,15 +130,6 @@ struct vout_thread_t
/**@}*/
- /** \name Plugin used and shortcuts to access its capabilities */
- /**@{*/
- int ( *pf_init ) ( vout_thread_t * );
- void ( *pf_end ) ( vout_thread_t * );
- int ( *pf_manage ) ( vout_thread_t * );
- void ( *pf_render ) ( vout_thread_t *, picture_t * );
- void ( *pf_display ) ( vout_thread_t *, picture_t * );
- /**@}*/
-
/** \name Video heap and translation tables */
/**@{*/
int i_heap_size; /**< heap size */
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 0b2f0dd..22b07d4 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -787,7 +787,7 @@ static int InitThread( vout_thread_t *p_vout )
int i;
/* Initialize output method, it allocates direct buffers for us */
- if( p_vout->pf_init( p_vout ) )
+ if( vout_InitWrapper( p_vout ) )
return VLC_EGENERIC;
p_vout->p->p_picture_displayed = NULL;
@@ -796,7 +796,7 @@ static int InitThread( vout_thread_t *p_vout )
{
msg_Err( p_vout, "plugin was unable to allocate at least "
"one direct buffer" );
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
return VLC_EGENERIC;
}
@@ -804,7 +804,7 @@ static int InitThread( vout_thread_t *p_vout )
{
msg_Err( p_vout, "plugin allocated too many direct buffers, "
"our internal buffers must have overflown." );
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
return VLC_EGENERIC;
}
@@ -907,7 +907,7 @@ static int InitThread( vout_thread_t *p_vout )
if( ChromaCreate( p_vout ) )
{
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
return VLC_EGENERIC;
}
@@ -1152,10 +1152,10 @@ static void* RunThread( void *p_this )
/*
* Call the plugin-specific rendering method if there is one
*/
- if( p_filtered_picture != NULL && p_directbuffer != NULL && p_vout->pf_render )
+ if( p_filtered_picture != NULL && p_directbuffer != NULL )
{
/* Render the direct buffer returned by vout_RenderPicture */
- p_vout->pf_render( p_vout, p_directbuffer );
+ vout_RenderWrapper( p_vout, p_directbuffer );
}
/*
@@ -1211,8 +1211,7 @@ static void* RunThread( void *p_this )
if( p_filtered_picture != NULL && p_directbuffer != NULL )
{
/* Display the direct buffer returned by vout_RenderPicture */
- if( p_vout->pf_display )
- p_vout->pf_display( p_vout, p_directbuffer );
+ vout_DisplayWrapper( p_vout, p_directbuffer );
/* Tell the vout this was the last picture and that it does not
* need to be forced anymore. */
@@ -1236,7 +1235,7 @@ static void* RunThread( void *p_this )
/*
* Check events and manage thread
*/
- if( p_vout->pf_manage && p_vout->pf_manage( p_vout ) )
+ if( vout_ManageWrapper( p_vout ) )
{
/* A fatal error occurred, and the thread must terminate
* immediately, without displaying anything - setting b_error to 1
@@ -1265,7 +1264,7 @@ static void* RunThread( void *p_this )
vlc_mutex_lock( &p_vout->picture_lock );
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
p_vout->p->p_picture_displayed = NULL;
for( i = 0; i < I_OUTPUTPICTURES; i++ )
@@ -1274,7 +1273,7 @@ static void* RunThread( void *p_this )
I_OUTPUTPICTURES = 0;
- if( p_vout->pf_init( p_vout ) )
+ if( vout_InitWrapper( p_vout ) )
{
msg_Err( p_vout, "cannot resize display" );
/* FIXME: pf_end will be called again in CleanThread()? */
@@ -1310,7 +1309,7 @@ static void* RunThread( void *p_this )
vlc_mutex_lock( &p_vout->picture_lock );
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
I_OUTPUTPICTURES = I_RENDERPICTURES = 0;
@@ -1427,7 +1426,7 @@ static void CleanThread( vout_thread_t *p_vout )
/* Destroy translation tables */
if( !p_vout->b_error )
- p_vout->pf_end( p_vout );
+ vout_EndWrapper( p_vout );
}
/*****************************************************************************
diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h
index edbf45d..21655f5 100644
--- a/src/video_output/vout_internal.h
+++ b/src/video_output/vout_internal.h
@@ -120,6 +120,11 @@ void vout_UsePictureLocked( vout_thread_t *p_vout, picture_t *p_pic );
/* */
int vout_OpenWrapper (vout_thread_t *, const char *);
void vout_CloseWrapper(vout_thread_t *);
+int vout_InitWrapper(vout_thread_t *);
+void vout_EndWrapper(vout_thread_t *);
+int vout_ManageWrapper(vout_thread_t *);
+void vout_RenderWrapper(vout_thread_t *, picture_t *);
+void vout_DisplayWrapper(vout_thread_t *, picture_t *);
#endif
diff --git a/src/video_output/vout_wrapper.c b/src/video_output/vout_wrapper.c
index 6fbd458..888d6f6 100644
--- a/src/video_output/vout_wrapper.c
+++ b/src/video_output/vout_wrapper.c
@@ -53,12 +53,6 @@ struct picture_sys_t {
/*****************************************************************************
* Local prototypes
*****************************************************************************/
-static int Init (vout_thread_t *);
-static void End (vout_thread_t *);
-static int Manage (vout_thread_t *);
-static void Render (vout_thread_t *, picture_t *);
-static void Display(vout_thread_t *, picture_t *);
-
static void VoutGetDisplayCfg(vout_thread_t *,
vout_display_cfg_t *, const char *title);
#ifdef WIN32
@@ -120,11 +114,6 @@ int vout_OpenWrapper(vout_thread_t *vout, const char *name)
#endif
/* */
- vout->pf_init = Init;
- vout->pf_end = End;
- vout->pf_manage = Manage;
- vout->pf_render = Render;
- vout->pf_display = Display;
vout->p_sys = sys;
return VLC_SUCCESS;
@@ -149,7 +138,7 @@ void vout_CloseWrapper(vout_thread_t *vout)
/*****************************************************************************
*
*****************************************************************************/
-static int Init(vout_thread_t *vout)
+int vout_InitWrapper(vout_thread_t *vout)
{
vout_sys_t *sys = vout->p_sys;
vout_display_t *vd = sys->vd;
@@ -244,7 +233,7 @@ static int Init(vout_thread_t *vout)
/*****************************************************************************
*
*****************************************************************************/
-static void End(vout_thread_t *vout)
+void vout_EndWrapper(vout_thread_t *vout)
{
vout_sys_t *sys = vout->p_sys;
@@ -269,7 +258,7 @@ static void End(vout_thread_t *vout)
/*****************************************************************************
*
*****************************************************************************/
-static int Manage(vout_thread_t *vout)
+int vout_ManageWrapper(vout_thread_t *vout)
{
vout_sys_t *sys = vout->p_sys;
vout_display_t *vd = sys->vd;
@@ -363,7 +352,7 @@ static int Manage(vout_thread_t *vout)
/*****************************************************************************
* Render
*****************************************************************************/
-static void Render(vout_thread_t *vout, picture_t *picture)
+void vout_RenderWrapper(vout_thread_t *vout, picture_t *picture)
{
vout_sys_t *sys = vout->p_sys;
vout_display_t *vd = sys->vd;
@@ -385,7 +374,7 @@ static void Render(vout_thread_t *vout, picture_t *picture)
/*****************************************************************************
*
*****************************************************************************/
-static void Display(vout_thread_t *vout, picture_t *picture)
+void vout_DisplayWrapper(vout_thread_t *vout, picture_t *picture)
{
vout_sys_t *sys = vout->p_sys;
vout_display_t *vd = sys->vd;
More information about the vlc-commits
mailing list