]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/motiondetect.c
Use var_InheritString for --decklink-video-connection.
[vlc] / modules / video_filter / motiondetect.c
index 04052251d9b7ed4fd170a77c618abc9aac0fc21c..a7062cfac662f7be0f0317b192c847acbc9cfd89 100644 (file)
@@ -32,9 +32,8 @@
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_sout.h>
-#include <vlc_vout.h>
 
-#include "vlc_filter.h"
+#include <vlc_filter.h>
 #include "filter_picture.h"
 
 /*****************************************************************************
@@ -104,7 +103,7 @@ static int Create( vlc_object_t *p_this )
             break;
 
         default:
-            msg_Err( p_filter, "Unsupported input chroma (%4s)",
+            msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
                      (char*)&(p_fmt->i_chroma) );
             return VLC_EGENERIC;
     }
@@ -115,8 +114,7 @@ static int Create( vlc_object_t *p_this )
         return VLC_ENOMEM;
 
     p_sys->b_old = false;
-    p_sys->p_old = picture_New( p_fmt->i_chroma,
-                                p_fmt->i_width, p_fmt->i_height, 0 );
+    p_sys->p_old = picture_NewFromFormat( p_fmt );
     p_sys->p_buf  = calloc( p_fmt->i_width * p_fmt->i_height, sizeof(*p_sys->p_buf) );
     p_sys->p_buf2 = calloc( p_fmt->i_width * p_fmt->i_height, sizeof(*p_sys->p_buf) );
 
@@ -170,13 +168,6 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_inpic )
     const uint8_t *p_inpix = p_inpic->p[Y_PLANE].p_pixels;
     const int i_src_pitch = p_inpic->p[Y_PLANE].i_pitch;
 
-    if( !p_sys->b_old )
-    {
-        picture_Copy( p_sys->p_old, p_inpic );
-        p_sys->b_old = true;
-        return p_inpic;
-    }
-
     p_outpic = filter_NewPicture( p_filter );
     if( !p_outpic )
     {
@@ -185,6 +176,14 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_inpic )
     }
     picture_Copy( p_outpic, p_inpic );
 
+    if( !p_sys->b_old )
+    {
+        picture_Copy( p_sys->p_old, p_inpic );
+        picture_Release( p_inpic );
+        p_sys->b_old = true;
+        return p_outpic;
+    }
+
     /**
      * Substract Y planes
      */
@@ -293,7 +292,7 @@ static picture_t *FilterPacked( filter_t *p_filter, picture_t *p_inpic )
     if( GetPackedYuvOffsets( p_fmt->i_chroma,
                              &i_y_offset, &i_u_offset, &i_v_offset ) )
     {
-        msg_Warn( p_filter, "Unsupported input chroma (%4s)",
+        msg_Warn( p_filter, "Unsupported input chroma (%4.4s)",
                   (char*)&p_fmt->i_chroma );
         return p_inpic;
     }