]> git.sesse.net Git - vlc/commitdiff
Factorize some code in the filters.
authorAntoine Cellerier <dionoea@videolan.org>
Wed, 4 Jun 2008 18:19:05 +0000 (20:19 +0200)
committerAntoine Cellerier <dionoea@videolan.org>
Wed, 4 Jun 2008 20:05:08 +0000 (22:05 +0200)
18 files changed:
modules/video_filter/adjust.c
modules/video_filter/colorthres.c
modules/video_filter/croppadd.c
modules/video_filter/erase.c
modules/video_filter/extract.c
modules/video_filter/filter_picture.h
modules/video_filter/gaussianblur.c
modules/video_filter/gradient.c
modules/video_filter/grain.c
modules/video_filter/invert.c
modules/video_filter/motionblur.c
modules/video_filter/noise.c
modules/video_filter/psychedelic.c
modules/video_filter/ripple.c
modules/video_filter/rotate.c
modules/video_filter/seamcarving.c
modules/video_filter/sharpen.c
modules/video_filter/wave.c

index a15dbcaae36b7853078077c1c706acacf2bec541..01c7af788e009dd0507b261caac578e1d4ab0a63 100644 (file)
@@ -410,16 +410,7 @@ static picture_t *FilterPlanar( filter_t *p_filter, picture_t *p_pic )
 #undef WRITE_UV
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
@@ -652,16 +643,7 @@ static picture_t *FilterPacked( filter_t *p_filter, picture_t *p_pic )
 #undef WRITE_UV
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 static int AdjustCallback( vlc_object_t *p_this, char const *psz_var,
index 0d0d89080f2d63eaefda711c9f3b9ca118570e3f..67ddf2429b83aca4c26a0c88c25ec6588218c448 100644 (file)
@@ -228,14 +228,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         p_out_v++;
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 3bf236ed835ad9683c06a1166e2912b475fa0555..9f5bc64059f9ccb62c31e9d92e7dbea211fcff42 100644 (file)
@@ -32,6 +32,7 @@
 #include <vlc_plugin.h>
 #include <vlc_vout.h>
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 /****************************************************************************
  * Local prototypes
@@ -187,13 +188,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
                  ( i_outheight - i_ypadd - i_height ) * p_outplane->i_pitch );
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 370c68d3ef8c44eb47eb91ebed11f700b3edfa5f..19d1dbafd7aaebe45483021b0fe05d80efcc10b4 100644 (file)
@@ -36,6 +36,7 @@
 #include "vlc_image.h"
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -216,16 +217,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
     /* Here */
     FilterErase( p_filter, p_pic, p_outpic );
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
index 0aae4f3f1d933a80aeeffe51ce753bec364de8bc..f08477f3fed1993bdc23ff4b967fa9c26e836208 100644 (file)
@@ -250,16 +250,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
             return NULL;
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 static inline uint8_t crop( int a )
index 97ac7b32a154279e6b19fd9e8f40faa3575dbb17..df5b33fed2c295e0d65671cf47ebe4639b0f5192 100644 (file)
@@ -86,7 +86,7 @@ static inline int GetPackedYuvOffsets( vlc_fourcc_t i_chroma,
 /*****************************************************************************
  *
  *****************************************************************************/
-static inline picture_t *CopyMetaAndRelease( picture_t *p_outpic, picture_t *p_inpic )
+static inline picture_t *CopyInfoAndRelease( picture_t *p_outpic, picture_t *p_inpic )
 {
     p_outpic->date = p_inpic->date;
     p_outpic->b_force = p_inpic->b_force;
index 8a6536d6b748d4d7eca23c16e7a1b32b05e532f5..e42832f5adb5df86b2dba4b848acde019600aab5 100644 (file)
@@ -34,6 +34,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 #include <math.h>                                          /* exp(), sqrt() */
 
@@ -377,14 +378,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 8a32c3934b64185ccfb694bf5ca8d09ed61b3d53..c989023bfa10279e5dbe9c937f9156f791adcae1 100644 (file)
@@ -263,16 +263,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
             break;
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
index 64654dee448b6dacf60d8225c58c9ffb10421b0c..7029ac7ed10489b2fff8d8ed7fc08f5ee7027e79 100644 (file)
@@ -203,14 +203,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
 
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 39b7e707df6ced1582fca049214ddccf19251c38..b6a566905fc78581a2948a9beeb525881275d9e6 100644 (file)
@@ -34,6 +34,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -181,14 +182,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 971f8f01f68c91e5c12bcc9a59e286ff8489a402..cc45b5c6ab64dab5b29be84c76ffc416eb11b3b4 100644 (file)
@@ -35,6 +35,7 @@
 #include <vlc_sout.h>
 #include <vlc_vout.h>
 #include <vlc_filter.h>
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local protypes
@@ -129,17 +130,6 @@ static void Destroy( vlc_object_t *p_this )
     free( p_filter->p_sys );
 }
 
-#define RELEASE( pic ) \
-        if( pic ->pf_release ) \
-            pic ->pf_release( pic );
-
-#define INITPIC( dst, src ) \
-    dst ->date = src ->date; \
-    dst ->b_force = src ->b_force; \
-    dst ->i_nb_fields = src ->i_nb_fields; \
-    dst ->b_progressive = src->b_progressive; \
-    dst ->b_top_field_first = src ->b_top_field_first;
-
 /*****************************************************************************
  * Filter
  *****************************************************************************/
@@ -154,10 +144,10 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
     if( !p_outpic )
     {
         msg_Warn( p_filter, "can't get output picture" );
-        RELEASE( p_pic );
+        if( p_pic->pf_release )
+            p_pic->pf_release( p_pic );
         return NULL;
     }
-    INITPIC( p_outpic, p_pic );
 
     if( !p_sys->pp_planes )
     {
@@ -178,8 +168,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
     RenderBlur( p_sys, p_pic, p_outpic );
     Copy( p_filter, p_outpic );
 
-    RELEASE( p_pic );
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
index 06fb31ac05a15892e5cef7f3397b386e8215819a..eb26d3b4946adafd625c75b47333670334698a59 100644 (file)
@@ -34,6 +34,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -171,14 +172,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 374c3e29d2aa507d60e2b612217ff8f0963e42d4..2620d3c731fd91724a1638aa3c8d5281e2b7d730 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "vlc_filter.h"
 #include "vlc_image.h"
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -252,14 +253,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
             p_filter->p_sys->v += 1;
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index 6963ba3da9faceb3d332107837f1da6a4a26ac5a..3099dfd2998dcc8d68b9cd24885186740bc497b9 100644 (file)
@@ -36,6 +36,7 @@
 #include <vlc_plugin.h>
 #include <vlc_vout.h>
 #include <vlc_filter.h>
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -203,14 +204,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
index af73f8a270e35438798bae20eeb86d7f86e27ed7..7e87b40afc047729b4f79be3b574f80d0f7f746d 100644 (file)
@@ -283,7 +283,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    return CopyMetaAndRelease( p_outpic, p_pic );
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
@@ -385,7 +385,7 @@ static picture_t *FilterPacked( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    return CopyMetaAndRelease( p_outpic, p_pic );
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 /*****************************************************************************
index a22294ed661d98154b3b1457896477907863958f..edaf74284bdc947b496feddb23eb8f3b10d77ecb 100644 (file)
@@ -36,6 +36,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 #include <assert.h>
 
@@ -126,16 +127,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
 
     FilterSeamCarving( p_filter, p_pic, p_outpic );
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 static inline int my_min3( int a, int b, int c );
index 2aa3b3470c865e1b556704dae3b57249911304b2..a1a62210b8527f12f154461a418a6410af55789d 100644 (file)
@@ -42,6 +42,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 #define SIG_TEXT N_("Sharpen strength (0-2)")
 #define SIG_LONGTEXT N_("Set the Sharpen strength, between 0 and 2. Defaults to 0.05.")
@@ -101,7 +102,7 @@ inline static int32_t clip( int32_t a )
 static void init_precalc_table(filter_sys_t *p_filter)
 {
     float sigma = p_filter->f_sigma;
+
     for(int i = 0; i < 512; ++i)
     {
         p_filter->tab_precalc[i] = (i - 256) * sigma;
@@ -237,16 +238,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
                 p_outpic->p[V_PLANE].i_lines * p_outpic->p[V_PLANE].i_pitch );
 
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }
 
 static int SharpenCallback( vlc_object_t *p_this, char const *psz_var,
index 5abf08d2f8cb3588fb95d7ce51f53f9696789573..1e6236a1c7831f6368137daa5c47fff919bbf121 100644 (file)
@@ -37,6 +37,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_filter.h"
+#include "filter_picture.h"
 
 /*****************************************************************************
  * Local prototypes
@@ -193,14 +194,5 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
         }
     }
 
-    p_outpic->date = p_pic->date;
-    p_outpic->b_force = p_pic->b_force;
-    p_outpic->i_nb_fields = p_pic->i_nb_fields;
-    p_outpic->b_progressive = p_pic->b_progressive;
-    p_outpic->b_top_field_first = p_pic->b_top_field_first;
-
-    if( p_pic->pf_release )
-        p_pic->pf_release( p_pic );
-
-    return p_outpic;
+    return CopyInfoAndRelease( p_outpic, p_pic );
 }