]> git.sesse.net Git - vlc/blobdiff - modules/video_output/vmem.c
Let swscale handle video conversion when available (close #1695)
[vlc] / modules / video_output / vmem.c
index 80eb9cc352217c0a920fe7d0d81fce37754bc4d1..5de7f09af0a5966bd513bf8bba27db8899fb77b5 100644 (file)
@@ -29,7 +29,8 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <vlc_vout.h>
 
 /*****************************************************************************
@@ -39,6 +40,7 @@ static int  Create    ( vlc_object_t * );
 static void Destroy   ( vlc_object_t * );
 
 static int  Init          ( vout_thread_t * );
+static void End           ( vout_thread_t * );
 static int  LockPicture   ( vout_thread_t *, picture_t * );
 static int  UnlockPicture ( vout_thread_t *, picture_t * );
 
@@ -70,20 +72,20 @@ static int  UnlockPicture ( vout_thread_t *, picture_t * );
 #define LT_DATA N_( "Data for the locking and unlocking functions" )
 
 vlc_module_begin( );
-    set_description( _( "Video memory module" ) );
-    set_shortname( _("Video memory") );
+    set_description( N_( "Video memory module" ) );
+    set_shortname( N_("Video memory") );
 
     set_category( CAT_VIDEO );
     set_subcategory( SUBCAT_VIDEO_VOUT );
     set_capability( "video output", 0 );
 
-    add_integer( "vmem-width", 320, NULL, T_WIDTH, LT_WIDTH, VLC_FALSE );
-    add_integer( "vmem-height", 200, NULL, T_HEIGHT, LT_HEIGHT, VLC_FALSE );
-    add_integer( "vmem-pitch", 640, NULL, T_PITCH, LT_PITCH, VLC_FALSE );
-    add_string( "vmem-chroma", "RV16", NULL, T_CHROMA, LT_CHROMA, VLC_TRUE );
-    add_string( "vmem-lock", "0", NULL, T_LOCK, LT_LOCK, VLC_TRUE );
-    add_string( "vmem-unlock", "0", NULL, T_UNLOCK, LT_UNLOCK, VLC_TRUE );
-    add_string( "vmem-data", "0", NULL, T_DATA, LT_DATA, VLC_TRUE );
+    add_integer( "vmem-width", 320, NULL, T_WIDTH, LT_WIDTH, false );
+    add_integer( "vmem-height", 200, NULL, T_HEIGHT, LT_HEIGHT, false );
+    add_integer( "vmem-pitch", 640, NULL, T_PITCH, LT_PITCH, false );
+    add_string( "vmem-chroma", "RV16", NULL, T_CHROMA, LT_CHROMA, true );
+    add_string( "vmem-lock", "0", NULL, T_LOCK, LT_LOCK, true );
+    add_string( "vmem-unlock", "0", NULL, T_UNLOCK, LT_UNLOCK, true );
+    add_string( "vmem-data", "0", NULL, T_DATA, LT_DATA, true );
 
     set_callbacks( Create, Destroy );
 vlc_module_end();
@@ -115,7 +117,7 @@ static int Create( vlc_object_t *p_this )
         return VLC_ENOMEM;
 
     p_vout->pf_init = Init;
-    p_vout->pf_end = NULL;
+    p_vout->pf_end = End;
     p_vout->pf_manage = NULL;
     p_vout->pf_render = NULL;
     p_vout->pf_display = NULL;
@@ -143,6 +145,7 @@ static int Init( vout_thread_t *p_vout )
         if( strlen( psz_chroma ) < 4 )
         {
             msg_Err( p_vout, "vmem-chroma should be 4 characters long" );
+            free( psz_chroma );
             return VLC_EGENERIC;
         }
         i_chroma = VLC_FOURCC( psz_chroma[0], psz_chroma[1],
@@ -249,6 +252,14 @@ static int Init( vout_thread_t *p_vout )
     return VLC_SUCCESS;
 }
 
+/*****************************************************************************
+ * End: terminate video thread output method
+ *****************************************************************************/
+static void End( vout_thread_t *p_vout )
+{
+    (void)p_vout;
+}
+
 /*****************************************************************************
  * Destroy: destroy video thread
  *****************************************************************************