]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/bluescreen.c
rotate: use atomic variable instead of spin lock
[vlc] / modules / video_filter / bluescreen.c
index 41707d1813a02e64a7c1930838aaab5181121051..4d3d50b564f4e23d9bc3e8a9589b6e351bb86731 100644 (file)
@@ -31,8 +31,7 @@
 
 #include <vlc_common.h>
 #include <vlc_plugin.h>
-
-#include "vlc_filter.h"
+#include <vlc_filter.h>
 
 #define BLUESCREEN_HELP N_( \
     "This effect, also known as \"greenscreen\" or \"chroma key\" blends " \
@@ -84,14 +83,14 @@ vlc_module_begin ()
     add_shortcut( "bluescreen" )
     set_callbacks( Create, Destroy )
 
-    add_integer_with_range( CFG_PREFIX "u", 120, 0, 255, NULL,
+    add_integer_with_range( CFG_PREFIX "u", 120, 0, 255,
                             BLUESCREENU_TEXT, BLUESCREENU_LONGTEXT, false )
-    add_integer_with_range( CFG_PREFIX "v", 90, 0, 255, NULL,
+    add_integer_with_range( CFG_PREFIX "v", 90, 0, 255,
                             BLUESCREENV_TEXT, BLUESCREENV_LONGTEXT, false )
-    add_integer_with_range( CFG_PREFIX "ut", 17, 0, 255, NULL,
+    add_integer_with_range( CFG_PREFIX "ut", 17, 0, 255,
                             BLUESCREENUTOL_TEXT, BLUESCREENUTOL_LONGTEXT,
                             false )
-    add_integer_with_range( CFG_PREFIX "vt", 17, 0, 255, NULL,
+    add_integer_with_range( CFG_PREFIX "vt", 17, 0, 255,
                             BLUESCREENVTOL_TEXT, BLUESCREENVTOL_LONGTEXT,
                             false )
 vlc_module_end ()
@@ -115,7 +114,7 @@ static int Create( vlc_object_t *p_this )
     if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_YUVA )
     {
         msg_Err( p_filter,
-                 "Unsupported input chroma \"%4s\". "
+                 "Unsupported input chroma \"%4.4s\". "
                  "Bluescreen can only use \"YUVA\".",
                  (char*)&p_filter->fmt_in.video.i_chroma );
         return VLC_EGENERIC;
@@ -134,7 +133,7 @@ static int Create( vlc_object_t *p_this )
     vlc_mutex_init( &p_sys->lock );
 #define GET_VAR( name, min, max )                                           \
     val = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX #name );        \
-    p_sys->i_##name = __MIN( max, __MAX( min, val ) );                      \
+    p_sys->i_##name = VLC_CLIP( val, min, max );                                \
     var_AddCallback( p_filter, CFG_PREFIX #name, BluescreenCallback, p_sys );
 
     GET_VAR( u, 0x00, 0xff );
@@ -180,13 +179,14 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
     if( p_pic->format.i_chroma != VLC_CODEC_YUVA )
     {
         msg_Err( p_filter,
-                 "Unsupported input chroma \"%4s\". "
+                 "Unsupported input chroma \"%4.4s\". "
                  "Bluescreen can only use \"YUVA\".",
                  (char*)&p_pic->format.i_chroma );
         return NULL;
     }
 
-    p_sys->p_at = realloc( p_sys->p_at, i_lines * i_pitch * sizeof( uint8_t ) );
+    p_sys->p_at = xrealloc( p_sys->p_at,
+                            i_lines * i_pitch * sizeof( uint8_t ) );
     p_at = p_sys->p_at;
 
     vlc_mutex_lock( &p_sys->lock );
@@ -209,7 +209,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
     /* Gaussian convolution to make it look cleaner */
-    vlc_memset( p_a, 0, 2 * i_pitch );
+    memset( p_a, 0, 2 * i_pitch );
     for( i = 2; i < i_lines - 2; i++ )
     {
         p_a[i*i_pitch] = 0x00;
@@ -267,13 +267,13 @@ static int BluescreenCallback( vlc_object_t *p_this, char const *psz_var,
     vlc_mutex_lock( &p_sys->lock );
 #define VAR_IS( a ) !strcmp( psz_var, CFG_PREFIX a )
     if( VAR_IS( "u" ) )
-        p_sys->i_u = __MAX( 0, __MIN( 255, newval.i_int ) );
+        p_sys->i_u = VLC_CLIP( newval.i_int, 0, 255 );
     else if( VAR_IS( "v" ) )
-        p_sys->i_v = __MAX( 0, __MIN( 255, newval.i_int ) );
+        p_sys->i_v = VLC_CLIP( newval.i_int, 0, 255 );
     else if( VAR_IS( "ut" ) )
-        p_sys->i_ut = __MAX( 0, __MIN( 255, newval.i_int ) );
+        p_sys->i_ut = VLC_CLIP( newval.i_int, 0, 255 );
     else if( VAR_IS( "vt" ) )
-        p_sys->i_vt = __MAX( 0, __MIN( 255, newval.i_int ) );
+        p_sys->i_vt = VLC_CLIP( newval.i_int, 0, 255 );
     vlc_mutex_unlock( &p_sys->lock );
 
     return VLC_SUCCESS;