summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-16 01:39:02 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-16 01:39:02 +0000
commitef5a89dd68b4636e7a7d2cca8ac25dcb8359be5b (patch)
tree0c6d27135b9b68f531ce7118128ebfc6fdf35609 /src
parentf501530c0563b7b6f31481549d969bfbaae4da9e (diff)
downloadxine-lib-ef5a89dd68b4636e7a7d2cca8ac25dcb8359be5b.tar.gz
xine-lib-ef5a89dd68b4636e7a7d2cca8ac25dcb8359be5b.tar.bz2
i'm commiting some changes to both xine and tvtime cvs to bring them closer.
still just housekeeping. CVS patchset: 7547 CVS date: 2005/05/16 01:39:02
Diffstat (limited to 'src')
-rw-r--r--src/post/deinterlace/deinterlace.c2
-rw-r--r--src/post/deinterlace/deinterlace.h8
-rw-r--r--src/post/deinterlace/plugins/double.c9
-rw-r--r--src/post/deinterlace/plugins/greedy.c29
-rw-r--r--src/post/deinterlace/plugins/greedy2frame.c10
-rw-r--r--src/post/deinterlace/plugins/linear.c29
-rw-r--r--src/post/deinterlace/plugins/linearblend.c43
-rw-r--r--src/post/deinterlace/plugins/plugins.h46
-rw-r--r--src/post/deinterlace/plugins/scalerbob.c29
-rw-r--r--src/post/deinterlace/plugins/vfir.c29
-rw-r--r--src/post/deinterlace/plugins/weave.c29
-rw-r--r--src/post/deinterlace/xine_plugin.c26
12 files changed, 125 insertions, 164 deletions
diff --git a/src/post/deinterlace/deinterlace.c b/src/post/deinterlace/deinterlace.c
index 1f51adcc7..7928c1a64 100644
--- a/src/post/deinterlace/deinterlace.c
+++ b/src/post/deinterlace/deinterlace.c
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2002 Billy Biggs <vektor@dumbterm.net>.
+ * Copyright (c) 2002, 2005 Billy Biggs <vektor@dumbterm.net>.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/post/deinterlace/deinterlace.h b/src/post/deinterlace/deinterlace.h
index 71e595c0f..3db336b47 100644
--- a/src/post/deinterlace/deinterlace.h
+++ b/src/post/deinterlace/deinterlace.h
@@ -106,9 +106,13 @@ struct deinterlace_frame_data_s
uint8_t *f3;
};
+/**
+ * Note: second_field is used in xine. For tvtime it should be the same as bottom_field.
+ */
typedef void (*deinterlace_frame_t)( uint8_t *output, int outstride,
deinterlace_frame_data_t *data,
- int bottom_field, int second_field, int width, int height );
+ int bottom_field, int second_field,
+ int width, int height );
/**
@@ -125,7 +129,7 @@ struct deinterlace_method_s
deinterlace_interp_scanline_t interpolate_scanline;
deinterlace_copy_scanline_t copy_scanline;
deinterlace_frame_t deinterlace_frame;
- int delaysfield; /* delays output by one field relative to input */
+ int delaysfield; /* xine: this method delays output by one field relative to input */
const char *description[ 10 ];
};
diff --git a/src/post/deinterlace/plugins/double.c b/src/post/deinterlace/plugins/double.c
index 6d10fb270..86f2e5210 100644
--- a/src/post/deinterlace/plugins/double.c
+++ b/src/post/deinterlace/plugins/double.c
@@ -73,12 +73,7 @@ static deinterlace_method_t doublemethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void double_plugin_init( void )
-#endif
+deinterlace_method_t *double_get_method( void )
{
- register_deinterlace_method( &doublemethod );
+ return &doublemethod;
}
-
diff --git a/src/post/deinterlace/plugins/greedy.c b/src/post/deinterlace/plugins/greedy.c
index 503f8dd34..8acb12c09 100644
--- a/src/post/deinterlace/plugins/greedy.c
+++ b/src/post/deinterlace/plugins/greedy.c
@@ -4,19 +4,20 @@
*
* This code is ported from DScaler: http://deinterlace.sf.net/
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@@ -199,12 +200,8 @@ static deinterlace_method_t greedymethod =
"deinterlacer from DScaler." }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void greedy_plugin_init( void )
-#endif
+deinterlace_method_t *greedy_get_method( void )
{
- register_deinterlace_method( &greedymethod );
+ return &greedymethod;
}
diff --git a/src/post/deinterlace/plugins/greedy2frame.c b/src/post/deinterlace/plugins/greedy2frame.c
index dac7d488c..2e0f6eeb2 100644
--- a/src/post/deinterlace/plugins/greedy2frame.c
+++ b/src/post/deinterlace/plugins/greedy2frame.c
@@ -51,7 +51,7 @@ static int GreedyTwoFrameThreshold2 = 8;
#include "greedy2frame_template.c"
#undef IS_SSE
-static deinterlace_method_t greedymethod =
+static deinterlace_method_t greedy2framemethod =
{
"Greedy - 2-frame (DScaler)",
"Greedy2Frame",
@@ -75,12 +75,8 @@ static deinterlace_method_t greedymethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void greedy2frame_plugin_init( void )
-#endif
+deinterlace_method_t *greedy2frame_get_method( void )
{
- register_deinterlace_method( &greedymethod );
+ return &greedy2framemethod;
}
diff --git a/src/post/deinterlace/plugins/linear.c b/src/post/deinterlace/plugins/linear.c
index 8392cf185..4733cfbc8 100644
--- a/src/post/deinterlace/plugins/linear.c
+++ b/src/post/deinterlace/plugins/linear.c
@@ -1,19 +1,20 @@
/**
* Copyright (C) 2002 Billy Biggs <vektor@dumbterm.net>.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@@ -75,12 +76,8 @@ static deinterlace_method_t linearmethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void linear_plugin_init( void )
-#endif
+deinterlace_method_t *linear_get_method( void )
{
- register_deinterlace_method( &linearmethod );
+ return &linearmethod;
}
diff --git a/src/post/deinterlace/plugins/linearblend.c b/src/post/deinterlace/plugins/linearblend.c
index a0102fba4..10cd11c3a 100644
--- a/src/post/deinterlace/plugins/linearblend.c
+++ b/src/post/deinterlace/plugins/linearblend.c
@@ -1,24 +1,22 @@
/**
- * Linear blend deinterlacing plugin. The algorithm for this filter is based
- * on the mythtv sources, which took it from the mplayer sources.
+ * Linear blend deinterlacing plugin. The idea for this algorithm came
+ * from the linear blend deinterlacer which originated in the mplayer
+ * sources.
*
- * The file is postprocess_template.c in mplayer, and is
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * Copyright (C) 2001-2002 Michael Niedermayer (michaelni@gmx.at)
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@@ -362,16 +360,13 @@ static deinterlace_method_t linearblendmethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void linearblend_plugin_init( void )
-#endif
+deinterlace_method_t *linearblend_get_method( void )
{
#ifdef ARCH_X86
if( xine_mm_accel() & MM_ACCEL_X86_MMXEXT )
- register_deinterlace_method( &linearblendmethod_mmxext );
+ return &linearblendmethod_mmxext;
else
#endif
- register_deinterlace_method( &linearblendmethod );
+ return &linearblendmethod;
}
+
diff --git a/src/post/deinterlace/plugins/plugins.h b/src/post/deinterlace/plugins/plugins.h
index b39623bc1..b42c0cbc8 100644
--- a/src/post/deinterlace/plugins/plugins.h
+++ b/src/post/deinterlace/plugins/plugins.h
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2002 Billy Biggs <vektor@dumbterm.net>.
+ * Copyright (C) 2002, 2004 Billy Biggs <vektor@dumbterm.net>.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,33 +20,27 @@
#define TVTIME_PLUGINS_H_INCLUDED
/**
- * tvtime has a plugin system for deinterlacer plugins.
- * However, at this point it's a bit silly to bother using
- * them as 'dynamic' plugins. So, for the standard plugins,
- * we allow them to be built into the executable, and their
- * initializer methods go here.
+ * tvtime was going to have a plugin system, but there
+ * was never any interest in it outside of tvtime, so instead
+ * we include all deinterlacer methods right in the tvtime
+ * executable.
*/
-void greedy_plugin_init( void );
-void greedy2frame_plugin_init( void );
-void twoframe_plugin_init( void );
-void linear_plugin_init( void );
-void weave_plugin_init( void );
-void videobob_plugin_init( void );
-void double_plugin_init( void );
-void linearblend_plugin_init( void );
-void scalerbob_plugin_init( void );
-void simplemo_plugin_init( void );
-void gamedither_plugin_init( void );
-void vfir_plugin_init( void );
+#include <deinterlace.h>
-void dscaler_greedy2frame_plugin_init( void );
-void dscaler_twoframe_plugin_init( void );
-void dscaler_greedyh_plugin_init( void );
-void dscaler_greedy_plugin_init( void );
-void dscaler_videobob_plugin_init( void );
-void dscaler_videoweave_plugin_init( void );
-void dscaler_oldgame_plugin_init( void );
-void dscaler_tomsmocomp_plugin_init( void );
+deinterlace_method_t *greedy_get_method( void );
+deinterlace_method_t *greedy2frame_get_method( void );
+deinterlace_method_t *weave_get_method( void );
+deinterlace_method_t *double_get_method( void );
+deinterlace_method_t *linear_get_method( void );
+deinterlace_method_t *scalerbob_get_method( void );
+deinterlace_method_t *linearblend_get_method( void );
+deinterlace_method_t *vfir_get_method( void );
+deinterlace_method_t *dscaler_tomsmocomp_get_method( void );
+deinterlace_method_t *dscaler_greedyh_get_method( void );
+deinterlace_method_t *greedy_get_method( void );
+deinterlace_method_t *weave_get_method( void );
+deinterlace_method_t *weavetff_get_method( void );
+deinterlace_method_t *weavebff_get_method( void );
#endif /* TVTIME_PLUGINS_H_INCLUDED */
diff --git a/src/post/deinterlace/plugins/scalerbob.c b/src/post/deinterlace/plugins/scalerbob.c
index a5318b4ea..e20dfd8ae 100644
--- a/src/post/deinterlace/plugins/scalerbob.c
+++ b/src/post/deinterlace/plugins/scalerbob.c
@@ -3,19 +3,20 @@
*
* Copyright (C) 2002 Billy Biggs <vektor@dumbterm.net>.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
@@ -63,12 +64,8 @@ static deinterlace_method_t scalerbobmethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void scalerbob_plugin_init( void )
-#endif
+deinterlace_method_t *scalerbob_get_method( void )
{
- register_deinterlace_method( &scalerbobmethod );
+ return &scalerbobmethod;
}
diff --git a/src/post/deinterlace/plugins/vfir.c b/src/post/deinterlace/plugins/vfir.c
index f96111ce9..9274a5885 100644
--- a/src/post/deinterlace/plugins/vfir.c
+++ b/src/post/deinterlace/plugins/vfir.c
@@ -6,19 +6,20 @@
*
* tvtime port Copyright (C) 2003 Billy Biggs <vektor@dumbterm.net>.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@@ -159,12 +160,8 @@ static deinterlace_method_t vfirmethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void vfir_plugin_init( void )
-#endif
+deinterlace_method_t *vfir_get_method( void )
{
- register_deinterlace_method( &vfirmethod );
+ return &vfirmethod;
}
diff --git a/src/post/deinterlace/plugins/weave.c b/src/post/deinterlace/plugins/weave.c
index 06b34ad7a..77fe4bfa2 100644
--- a/src/post/deinterlace/plugins/weave.c
+++ b/src/post/deinterlace/plugins/weave.c
@@ -3,19 +3,20 @@
*
* Copyright (C) 2002 Billy Biggs <vektor@dumbterm.net>.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@@ -73,12 +74,8 @@ static deinterlace_method_t weavemethod =
"" }
};
-#ifdef BUILD_TVTIME_PLUGINS
-void deinterlace_plugin_init( void )
-#else
-void weave_plugin_init( void )
-#endif
+deinterlace_method_t *weave_get_method( void )
{
- register_deinterlace_method( &weavemethod );
+ return &weavemethod;
}
diff --git a/src/post/deinterlace/xine_plugin.c b/src/post/deinterlace/xine_plugin.c
index f35b5b127..a7999585a 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.38 2005/05/15 02:41:03 miguelfreitas Exp $
+ * $Id: xine_plugin.c,v 1.39 2005/05/16 01:39:02 miguelfreitas Exp $
*
* advanced video deinterlacer plugin
* Jun/2003 by Miguel Freitas
@@ -302,24 +302,16 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
setup_speedy_calls(xine_mm_accel(),0);
- linear_plugin_init();
- linearblend_plugin_init();
- greedy_plugin_init();
- greedy2frame_plugin_init();
- weave_plugin_init();
- double_plugin_init();
- vfir_plugin_init();
+ register_deinterlace_method( linear_get_method() );
+ register_deinterlace_method( linearblend_get_method() );
+ register_deinterlace_method( greedy_get_method() );
+ register_deinterlace_method( greedy2frame_get_method() );
+ register_deinterlace_method( weave_get_method() );
+ register_deinterlace_method( double_get_method() );
+ register_deinterlace_method( vfir_get_method() );
+ register_deinterlace_method( scalerbob_get_method() );
- scalerbob_plugin_init();
- /*
- dscaler_greedyh_plugin_init();
- dscaler_twoframe_plugin_init();
-
- dscaler_videobob_plugin_init();
- dscaler_videoweave_plugin_init();
- dscaler_tomsmocomp_plugin_init();
- */
filter_deinterlace_methods( config_flags, 5 /*fieldsavailable*/ );
if( !get_num_deinterlace_methods() ) {
xprintf(xine, XINE_VERBOSITY_LOG,