[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