summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/post/deinterlace/deinterlace.h2
-rw-r--r--src/post/deinterlace/plugins/double.c11
-rw-r--r--src/post/deinterlace/plugins/greedy.c17
-rw-r--r--src/post/deinterlace/plugins/greedy2frame.c11
-rw-r--r--src/post/deinterlace/plugins/kdetv_greedyh.c17
-rw-r--r--src/post/deinterlace/plugins/kdetv_tomsmocomp.c16
-rw-r--r--src/post/deinterlace/plugins/linear.c16
-rw-r--r--src/post/deinterlace/plugins/linearblend.c30
-rw-r--r--src/post/deinterlace/plugins/scalerbob.c16
-rw-r--r--src/post/deinterlace/plugins/vfir.c16
-rw-r--r--src/post/deinterlace/plugins/weave.c11
-rw-r--r--src/post/deinterlace/xine_plugin.c26
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;