diff options
-rw-r--r-- | src/post/deinterlace/deinterlace.h | 2 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/double.c | 11 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/greedy.c | 17 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/greedy2frame.c | 11 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/kdetv_greedyh.c | 17 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/kdetv_tomsmocomp.c | 16 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/linear.c | 16 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/linearblend.c | 30 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/scalerbob.c | 16 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/vfir.c | 16 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/weave.c | 11 | ||||
-rw-r--r-- | src/post/deinterlace/xine_plugin.c | 26 |
12 files changed, 60 insertions, 129 deletions
diff --git a/src/post/deinterlace/deinterlace.h b/src/post/deinterlace/deinterlace.h index 3db336b47..0e4ab49b5 100644 --- a/src/post/deinterlace/deinterlace.h +++ b/src/post/deinterlace/deinterlace.h @@ -130,7 +130,7 @@ struct deinterlace_method_s deinterlace_copy_scanline_t copy_scanline; deinterlace_frame_t deinterlace_frame; int delaysfield; /* xine: this method delays output by one field relative to input */ - const char *description[ 10 ]; + const char *description; }; /** diff --git a/src/post/deinterlace/plugins/double.c b/src/post/deinterlace/plugins/double.c index 86f2e5210..5cc13f5e9 100644 --- a/src/post/deinterlace/plugins/double.c +++ b/src/post/deinterlace/plugins/double.c @@ -61,16 +61,7 @@ static deinterlace_method_t doublemethod = copy_scanline, 0, 0, - { "", - "", - "", - "", - "", - "", - "", - "", - "", - "" } + NULL }; deinterlace_method_t *double_get_method( void ) diff --git a/src/post/deinterlace/plugins/greedy.c b/src/post/deinterlace/plugins/greedy.c index fa157258f..b5fcad3e5 100644 --- a/src/post/deinterlace/plugins/greedy.c +++ b/src/post/deinterlace/plugins/greedy.c @@ -188,16 +188,13 @@ static deinterlace_method_t greedymethod = deinterlace_greedy_packed422_scanline_mmxext, 0, 1, - { "Uses heuristics to detect motion in the input", - "frames and reconstruct image detail where", - "possible. Use this for high quality output", - "even on monitors set to an arbitrary refresh", - "rate.", - "", - "Simple detection uses linear interpolation", - "where motion is detected, using a two-field", - "buffer. This is the Greedy: Low Motion", - "deinterlacer from DScaler." } + "Uses heuristics to detect motion in the input frames and reconstruct " + "image detail where possible. Use this for high quality output even " + "on monitors set to an arbitrary refresh rate.\n" + "\n" + "Simple detection uses linear interpolation where motion is detected, " + "using a two-field buffer. This is the Greedy: Low Motion deinterlacer " + "from DScaler." }; deinterlace_method_t *greedy_get_method( void ) diff --git a/src/post/deinterlace/plugins/greedy2frame.c b/src/post/deinterlace/plugins/greedy2frame.c index 3b400ef1c..b2f929c8a 100644 --- a/src/post/deinterlace/plugins/greedy2frame.c +++ b/src/post/deinterlace/plugins/greedy2frame.c @@ -63,16 +63,7 @@ static deinterlace_method_t greedy2framemethod = 0, DeinterlaceGreedy2Frame_SSE, 1, - { "", - "", - "", - "", - "", - "", - "", - "", - "", - "" } + NULL }; deinterlace_method_t *greedy2frame_get_method( void ) diff --git a/src/post/deinterlace/plugins/kdetv_greedyh.c b/src/post/deinterlace/plugins/kdetv_greedyh.c index b45917e0d..5ec48e4a2 100644 --- a/src/post/deinterlace/plugins/kdetv_greedyh.c +++ b/src/post/deinterlace/plugins/kdetv_greedyh.c @@ -116,16 +116,13 @@ static deinterlace_method_t greedymethod = 0, deinterlace_frame_di_greedyh, 0, - { "Uses heuristics to detect motion in the input", - "frames and reconstruct image detail where", - "possible. Use this for high quality output", - "even on monitors set to an arbitrary refresh", - "rate.", - "", - "Advanced detection uses linear interpolation", - "where motion is detected, using a four-field", - "buffer. This is the Greedy: High Motion", - "deinterlacer from DScaler." } + "Uses heuristics to detect motion in the input frames and reconstruct " + "image detail where possible. Use this for high quality output even " + "on monitors set to an arbitrary refresh rate.\n" + "\n" + "Advanced detection uses linear interpolation where motion is " + "detected, using a four-field buffer. This is the Greedy: High Motion " + "deinterlacer from DScaler." }; deinterlace_method_t *dscaler_greedyh_get_method( void ) diff --git a/src/post/deinterlace/plugins/kdetv_tomsmocomp.c b/src/post/deinterlace/plugins/kdetv_tomsmocomp.c index 3b1665e3c..ae0fa0363 100644 --- a/src/post/deinterlace/plugins/kdetv_tomsmocomp.c +++ b/src/post/deinterlace/plugins/kdetv_tomsmocomp.c @@ -132,16 +132,12 @@ static deinterlace_method_t tomsmocompmethod = 0, deinterlace_frame_di_tomsmocomp, 0, - { "Uses heuristics to detect motion in the input", - "frames and reconstruct image detail where", - "possible. Use this for high quality output", - "even on monitors set to an arbitrary refresh", - "rate.", - "", - "Motion search mode finds and follows motion", - "vectors for accurate interpolation. This is", - "the TomsMoComp deinterlacer from DScaler.", - "" } + "Uses heuristics to detect motion in the input frames and reconstruct " + "image detail where possible. Use this for high quality output even " + "on monitors set to an arbitrary refresh rate.\n" + "\n" + "Motion search mode finds and follows motion vectors for accurate " + "interpolation. This is the TomsMoComp deinterlacer from DScaler." }; deinterlace_method_t *dscaler_tomsmocomp_get_method( void ) diff --git a/src/post/deinterlace/plugins/linear.c b/src/post/deinterlace/plugins/linear.c index 4733cfbc8..1aca743eb 100644 --- a/src/post/deinterlace/plugins/linear.c +++ b/src/post/deinterlace/plugins/linear.c @@ -64,16 +64,12 @@ static deinterlace_method_t linearmethod = copy_scanline, 0, 0, - { "Expands each field independently without", - "blurring or copying in time. Use this if you", - "want TV-quality with low CPU, and you have", - "configured your monitor to run at the refresh", - "rate of the video signal.", - "", - "Full resolution mode expands each field", - "to full size for high quality fullscreen use.", - "", - "" } + "Expands each field independently without blurring or copying in time. " + "Use this if you want TV-quality with low CPU, and you have configured " + "your monitor to run at the refresh rate of the video signal.\n" + "\n" + "Full resolution mode expands each field to full size for high quality " + "fullscreen use." }; deinterlace_method_t *linear_get_method( void ) diff --git a/src/post/deinterlace/plugins/linearblend.c b/src/post/deinterlace/plugins/linearblend.c index 3b65e381c..448307b6d 100644 --- a/src/post/deinterlace/plugins/linearblend.c +++ b/src/post/deinterlace/plugins/linearblend.c @@ -302,6 +302,14 @@ static void deinterlace_scanline_linear_blend2_mmxext( uint8_t *output, emms(); } +static const char linearblendmethod_help[] = + "Avoids flicker by blurring consecutive frames of input. Use this if " + "you want to run your monitor at an arbitrary refresh rate and not use " + "much CPU, and are willing to sacrifice detail.\n" + "\n" + "Temporal mode evenly blurs content for least flicker, but with visible " + "trails on fast motion. From the linear blend deinterlacer in mplayer."; + static deinterlace_method_t linearblendmethod_mmxext = { "Linear Blend (mplayer)", @@ -314,16 +322,7 @@ static deinterlace_method_t linearblendmethod_mmxext = deinterlace_scanline_linear_blend2_mmxext, 0, 0, - { "Avoids flicker by blurring consecutive frames", - "of input. Use this if you want to run your", - "monitor at an arbitrary refresh rate and not", - "use much CPU, and are willing to sacrifice", - "detail.", - "", - "Temporal mode evenly blurs content for least", - "flicker, but with visible trails on fast motion.", - "From the linear blend deinterlacer in mplayer.", - "" } + linearblendmethod_help }; #endif @@ -348,16 +347,7 @@ static deinterlace_method_t linearblendmethod = deinterlace_scanline_linear_blend2, 0, 0, - { "Avoids flicker by blurring consecutive frames", - "of input. Use this if you want to run your", - "monitor at an arbitrary refresh rate and not", - "use much CPU, and are willing to sacrifice", - "detail.", - "", - "Temporal mode evenly blurs content for least", - "flicker, but with visible trails on fast motion.", - "From the linear blend deinterlacer in mplayer.", - "" } + linearblendmethod_help }; deinterlace_method_t *linearblend_get_method( void ) diff --git a/src/post/deinterlace/plugins/scalerbob.c b/src/post/deinterlace/plugins/scalerbob.c index e20dfd8ae..4850abe25 100644 --- a/src/post/deinterlace/plugins/scalerbob.c +++ b/src/post/deinterlace/plugins/scalerbob.c @@ -52,16 +52,12 @@ static deinterlace_method_t scalerbobmethod = 0, 0, 0, - { "Expands each field independently without", - "blurring or copying in time. Use this if you", - "want TV-quality with low CPU, and you have", - "configured your monitor to run at the refresh", - "rate of the video signal.", - "", - "Half resolution is poor quality but low CPU", - "requirements for watching in a small window.", - "", - "" } + "Expands each field independently without blurring or copying in time. " + "Use this if you want TV-quality with low CPU, and you have configured " + "your monitor to run at the refresh rate of the video signal.\n" + "\n" + "Half resolution is poor quality but low CPU requirements for watching " + "in a small window." }; deinterlace_method_t *scalerbob_get_method( void ) diff --git a/src/post/deinterlace/plugins/vfir.c b/src/post/deinterlace/plugins/vfir.c index 3bf03a4a0..e66d7c789 100644 --- a/src/post/deinterlace/plugins/vfir.c +++ b/src/post/deinterlace/plugins/vfir.c @@ -148,16 +148,12 @@ static deinterlace_method_t vfirmethod = copy_scanline, 0, 0, - { "Avoids flicker by blurring consecutive frames", - "of input. Use this if you want to run your", - "monitor at an arbitrary refresh rate and not", - "use much CPU, and are willing to sacrifice", - "detail.", - "", - "Vertical mode blurs favouring the most recent", - "field for less visible trails. From the", - "deinterlacer filter in ffmpeg.", - "" } + "Avoids flicker by blurring consecutive frames of input. Use this if you " + "want to run your monitor at an arbitrary refresh rate and not use much " + "CPU, and are willing to sacrifice detail.\n" + "\n" + "Vertical mode blurs favouring the most recent field for less visible " + "trails. From the deinterlacer filter in ffmpeg." }; deinterlace_method_t *vfir_get_method( void ) diff --git a/src/post/deinterlace/plugins/weave.c b/src/post/deinterlace/plugins/weave.c index 77fe4bfa2..13d922781 100644 --- a/src/post/deinterlace/plugins/weave.c +++ b/src/post/deinterlace/plugins/weave.c @@ -62,16 +62,7 @@ static deinterlace_method_t weavemethod = copy_scanline, 0, 0, - { "Only updates the most recent field", - "", - "", - "", - "", - "", - "", - "", - "", - "" } + "Only updates the most recent field." }; deinterlace_method_t *weave_get_method( void ) diff --git a/src/post/deinterlace/xine_plugin.c b/src/post/deinterlace/xine_plugin.c index 64b7a02cf..26f8fe1df 100644 --- a/src/post/deinterlace/xine_plugin.c +++ b/src/post/deinterlace/xine_plugin.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_plugin.c,v 1.51 2006/07/10 22:08:44 dgp85 Exp $ + * $Id: xine_plugin.c,v 1.52 2006/07/12 21:08:46 dsalt Exp $ * * advanced video deinterlacer plugin * Jun/2003 by Miguel Freitas @@ -57,7 +57,7 @@ const plugin_info_t xine_plugin_info[] EXPORTED = { typedef struct post_plugin_deinterlace_s post_plugin_deinterlace_t; #define MAX_NUM_METHODS 30 -static char *enum_methods[MAX_NUM_METHODS]; +static const char *enum_methods[MAX_NUM_METHODS]; static char *enum_pulldown[] = { "none", "vektor", NULL }; static char *enum_framerate[] = { "full", "half_top", "half_bottom", NULL }; @@ -331,29 +331,19 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data) enum_methods[0] = "use_vo_driver"; for(i = 0; i < get_num_deinterlace_methods(); i++ ) { - int j, desc_len; deinterlace_method_t *method; method = get_deinterlace_method(i); - enum_methods[i+1] = (char *)method->short_name; + enum_methods[i+1] = method->short_name; xine_buffer_strcat( help_string, "[" ); - xine_buffer_strcat( help_string, (char *)method->short_name ); + xine_buffer_strcat( help_string, method->short_name ); xine_buffer_strcat( help_string, "] " ); - xine_buffer_strcat( help_string, (char *)method->name ); + xine_buffer_strcat( help_string, method->name ); xine_buffer_strcat( help_string, ":\n" ); - - desc_len = 0; - for(j = 0; j < sizeof(method->description)/sizeof(method->description[0]); j++ ) { - if( strlen(method->description[j]) ) - desc_len = j+1; - } - - for(j = 0; j < desc_len; j++ ) { - xine_buffer_strcat( help_string, (char *)method->description[j] ); - xine_buffer_strcat( help_string, "\n" ); - } - xine_buffer_strcat( help_string, "---\n" ); + if (method->description) + xine_buffer_strcat( help_string, method->description ); + xine_buffer_strcat( help_string, "\n---\n" ); } enum_methods[i+1] = NULL; |