summaryrefslogtreecommitdiff
path: root/src/libxinevdec
diff options
context:
space:
mode:
Diffstat (limited to 'src/libxinevdec')
-rw-r--r--src/libxinevdec/cinepak.c3
-rw-r--r--src/libxinevdec/cyuv.c3
-rw-r--r--src/libxinevdec/fli.c8
-rw-r--r--src/libxinevdec/foovideo.c39
-rw-r--r--src/libxinevdec/idcinvideo.c37
-rw-r--r--src/libxinevdec/msrle.c8
-rw-r--r--src/libxinevdec/msvc.c3
-rw-r--r--src/libxinevdec/qtrpza.c42
-rw-r--r--src/libxinevdec/qtsmc.c43
-rw-r--r--src/libxinevdec/rgb.c3
-rw-r--r--src/libxinevdec/roqvideo.c7
-rw-r--r--src/libxinevdec/svq1.c3
-rw-r--r--src/libxinevdec/wc3video.c47
-rw-r--r--src/libxinevdec/yuv.c8
14 files changed, 98 insertions, 156 deletions
diff --git a/src/libxinevdec/cinepak.c b/src/libxinevdec/cinepak.c
index 441b464c0..14e931644 100644
--- a/src/libxinevdec/cinepak.c
+++ b/src/libxinevdec/cinepak.c
@@ -22,7 +22,7 @@
* based on overview of Cinepak algorithm and example decoder
* by Tim Ferguson: http://www.csse.monash.edu.au/~timf/
*
- * $Id: cinepak.c,v 1.13 2002/09/05 20:44:41 mroi Exp $
+ * $Id: cinepak.c,v 1.14 2002/09/05 22:19:02 mroi Exp $
*/
#include <stdlib.h>
@@ -454,7 +454,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = cvid_close;
this->video_decoder.get_identifier = cvid_get_id;
this->video_decoder.dispose = cvid_dispose;
- this->video_decoder.priority = 5;
return (video_decoder_t *) this;
}
diff --git a/src/libxinevdec/cyuv.c b/src/libxinevdec/cyuv.c
index 16aef6bc9..fd663e315 100644
--- a/src/libxinevdec/cyuv.c
+++ b/src/libxinevdec/cyuv.c
@@ -18,7 +18,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: cyuv.c,v 1.7 2002/09/05 20:44:41 mroi Exp $
+ * $Id: cyuv.c,v 1.8 2002/09/05 22:19:02 mroi Exp $
*/
/* And this is the header that came with the CYUV decoder: */
@@ -245,7 +245,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = cyuv_close;
this->video_decoder.get_identifier = cyuv_get_id;
this->video_decoder.dispose = cyuv_dispose;
- this->video_decoder.priority = 1;
return this;
}
diff --git a/src/libxinevdec/fli.c b/src/libxinevdec/fli.c
index 662aa4b35..238bc09ef 100644
--- a/src/libxinevdec/fli.c
+++ b/src/libxinevdec/fli.c
@@ -23,7 +23,7 @@
* avoid when implementing a FLI decoder, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: fli.c,v 1.5 2002/09/05 20:44:41 mroi Exp $
+ * $Id: fli.c,v 1.6 2002/09/05 22:19:02 mroi Exp $
*/
#include <stdio.h>
@@ -559,10 +559,7 @@ static void fli_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
static void *init_video_decoder_plugin (xine_t *xine, void *data) {
@@ -578,7 +575,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = fli_close;
this->video_decoder.get_identifier = fli_get_id;
this->video_decoder.dispose = fli_dispose;
- this->video_decoder.priority = 1;
return this;
}
diff --git a/src/libxinevdec/foovideo.c b/src/libxinevdec/foovideo.c
index e2cb23c52..3ddfea646 100644
--- a/src/libxinevdec/foovideo.c
+++ b/src/libxinevdec/foovideo.c
@@ -20,7 +20,7 @@
* General description and author credits go here...
*
* Leave the following line intact for when the decoder is committed to CVS:
- * $Id: foovideo.c,v 1.5 2002/09/05 20:44:41 mroi Exp $
+ * $Id: foovideo.c,v 1.6 2002/09/05 22:19:02 mroi Exp $
*/
#include <stdio.h>
@@ -67,6 +67,7 @@ typedef struct foovideo_decoder_s {
*************************************************************************/
/*
+ * FIXME: revise documentation, reflect api changes
* This function is called by xine to determine which buffer types this
* decoder knows how to handle.
* Parameters:
@@ -251,28 +252,15 @@ static void foovideo_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
-static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
+static void *init_video_decoder_plugin (xine_t *xine, void *data) {
foovideo_decoder_t *this ;
- if (iface_version != 10) {
- printf( "foovideo: plugin doesn't support plugin API version %d.\n"
- "foovideo: this means there's a version mismatch between xine and this "
- "foovideo: decoder plugin.\nInstalling current plugins should help.\n",
- iface_version);
- return NULL;
- }
-
this = (foovideo_decoder_t *) malloc (sizeof (foovideo_decoder_t));
memset(this, 0, sizeof (foovideo_decoder_t));
- this->video_decoder.interface_version = iface_version;
- this->video_decoder.can_handle = foovideo_can_handle;
this->video_decoder.init = foovideo_init;
this->video_decoder.decode_data = foovideo_decode_data;
this->video_decoder.flush = foovideo_flush;
@@ -280,8 +268,25 @@ static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
this->video_decoder.close = foovideo_close;
this->video_decoder.get_identifier = foovideo_get_id;
this->video_decoder.dispose = foovideo_dispose;
- this->video_decoder.priority = 1;
return (video_decoder_t *) this;
}
+/*
+ * exported plugin catalog entry
+ */
+static uint32_t video_types[] = {
+ /* BUF_VIDEO_FOOVIDEO, */
+ 0
+};
+
+static decoder_info_t dec_info_video = {
+ video_types, /* supported types */
+ 5 /* priority */
+};
+
+plugin_info_t xine_plugin_info[] = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 10, "foovideo", XINE_VERSION_CODE, &dec_info_video, init_video_decoder_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
diff --git a/src/libxinevdec/idcinvideo.c b/src/libxinevdec/idcinvideo.c
index 5273a1160..af763b015 100644
--- a/src/libxinevdec/idcinvideo.c
+++ b/src/libxinevdec/idcinvideo.c
@@ -21,7 +21,7 @@
* the Id CIN format, visit:
* http://www.csse.monash.edu.au/~timf/
*
- * $Id: idcinvideo.c,v 1.4 2002/09/05 20:44:41 mroi Exp $
+ * $Id: idcinvideo.c,v 1.5 2002/09/05 22:19:02 mroi Exp $
*/
#include <stdio.h>
@@ -195,11 +195,6 @@ void huff_build_tree(int prev) {
* xine video plugin functions
*************************************************************************/
-static int idcinvideo_can_handle (video_decoder_t *this_gen, int buf_type) {
-
- return (buf_type == BUF_VIDEO_IDCIN);
-}
-
/*
* This function is responsible is called to initialize the video decoder
* for use. Initialization usually involves setting up the fields in your
@@ -382,23 +377,12 @@ static void idcinvideo_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
-static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
+static void *init_video_decoder_plugin (xine_t *xine, void *data) {
idcinvideo_decoder_t *this ;
- if (iface_version != 10) {
- printf( "idcinvideo: plugin doesn't support plugin API version %d.\n"
- "idcinvideo: this means there's a version mismatch between xine and this "
- "idcinvideo: decoder plugin.\nInstalling current plugins should help.\n",
- iface_version);
- return NULL;
- }
-
this = (idcinvideo_decoder_t *) malloc (sizeof (idcinvideo_decoder_t));
memset(this, 0, sizeof (idcinvideo_decoder_t));
@@ -409,7 +393,20 @@ static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
this->video_decoder.close = idcinvideo_close;
this->video_decoder.get_identifier = idcinvideo_get_id;
this->video_decoder.dispose = idcinvideo_dispose;
- this->video_decoder.priority = 1;
return (video_decoder_t *) this;
}
+
+/* plugin catalog information */
+static uint32_t supported_types[] = { BUF_VIDEO_IDCIN, 0 };
+
+static decoder_info_t video_decoder_info = {
+ supported_types, /* supported types */
+ 1 /* priority */
+};
+
+plugin_info_t xine_plugin_info[] = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 10, "Id CIN Video", XINE_VERSION_CODE, &video_decoder_info, &init_video_decoder_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
diff --git a/src/libxinevdec/msrle.c b/src/libxinevdec/msrle.c
index 531cf0f1f..776157297 100644
--- a/src/libxinevdec/msrle.c
+++ b/src/libxinevdec/msrle.c
@@ -21,7 +21,7 @@
* For more information on the MS RLE format, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: msrle.c,v 1.6 2002/09/05 20:44:41 mroi Exp $
+ * $Id: msrle.c,v 1.7 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -335,10 +335,7 @@ static void msrle_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
static void *init_video_decoder_plugin (xine_t *xine, void *data) {
@@ -354,7 +351,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = msrle_close;
this->video_decoder.get_identifier = msrle_get_id;
this->video_decoder.dispose = msrle_dispose;
- this->video_decoder.priority = 1;
return this;
}
diff --git a/src/libxinevdec/msvc.c b/src/libxinevdec/msvc.c
index 5ba1d142b..352cb3ce6 100644
--- a/src/libxinevdec/msvc.c
+++ b/src/libxinevdec/msvc.c
@@ -22,7 +22,7 @@
* based on overview of Microsoft Video-1 algorithm
* by Mike Melanson: http://www.pcisys.net/~melanson/codecs/video1.txt
*
- * $Id: msvc.c,v 1.10 2002/09/05 20:44:41 mroi Exp $
+ * $Id: msvc.c,v 1.11 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdlib.h>
@@ -359,7 +359,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = msvc_close;
this->video_decoder.get_identifier = msvc_get_id;
this->video_decoder.dispose = msvc_dispose;
- this->video_decoder.priority = 5;
return this;
}
diff --git a/src/libxinevdec/qtrpza.c b/src/libxinevdec/qtrpza.c
index 05a0f04ee..4ccdd2c94 100644
--- a/src/libxinevdec/qtrpza.c
+++ b/src/libxinevdec/qtrpza.c
@@ -21,7 +21,7 @@
* For more information about the RPZA format, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: qtrpza.c,v 1.3 2002/09/05 20:44:42 mroi Exp $
+ * $Id: qtrpza.c,v 1.4 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -278,22 +278,6 @@ void decode_qtrpza(qtrpza_decoder_t *this) {
*************************************************************************/
/*
- * This function is called by xine to determine which buffer types this
- * decoder knows how to handle.
- * Parameters:
- * this_gen: A video decoder object
- * buf_type: The number of the buffer type that xine is querying for;
- * these buffer constants are defined in src/xine-engine/buffer.h.
- * Return:
- * 1 if the decoder is capable of handling buf_type
- * 0 if the decoder is not capable of handling buf_type
- */
-static int qtrpza_can_handle (video_decoder_t *this_gen, int buf_type) {
-
- return (buf_type == BUF_VIDEO_RPZA);
-}
-
-/*
* This function is responsible is called to initialize the video decoder
* for use. Initialization usually involves setting up the fields in your
* private video decoder object.
@@ -445,18 +429,10 @@ static void qtrpza_dispose (video_decoder_t *this_gen) {
free (this_gen);
}
-static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
+static void *init_video_decoder_plugin (xine_t *xine, void *data) {
qtrpza_decoder_t *this ;
- if (iface_version != 10) {
- printf( "qtrpza: plugin doesn't support plugin API version %d.\n"
- "qtrpza: this means there's a version mismatch between xine and this "
- "qtrpza: decoder plugin.\nInstalling current plugins should help.\n",
- iface_version);
- return NULL;
- }
-
this = (qtrpza_decoder_t *) malloc (sizeof (qtrpza_decoder_t));
memset(this, 0, sizeof (qtrpza_decoder_t));
@@ -467,8 +443,20 @@ static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
this->video_decoder.close = qtrpza_close;
this->video_decoder.get_identifier = qtrpza_get_id;
this->video_decoder.dispose = qtrpza_dispose;
- this->video_decoder.priority = 1;
return (video_decoder_t *) this;
}
+/* plugin catalog information */
+static uint32_t supported_types[] = { BUF_VIDEO_RPZA, 0 };
+
+static decoder_info_t video_decoder_info = {
+ supported_types, /* supported types */
+ 1 /* priority */
+};
+
+plugin_info_t xine_plugin_info[] = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 10, "QT RPZA", XINE_VERSION_CODE, &video_decoder_info, &init_video_decoder_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
diff --git a/src/libxinevdec/qtsmc.c b/src/libxinevdec/qtsmc.c
index 3dff56ee1..f145642e7 100644
--- a/src/libxinevdec/qtsmc.c
+++ b/src/libxinevdec/qtsmc.c
@@ -23,7 +23,7 @@
* For more information on the SMC format, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: qtsmc.c,v 1.3 2002/09/05 20:44:42 mroi Exp $
+ * $Id: qtsmc.c,v 1.4 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -495,22 +495,6 @@ void decode_qtsmc(qtsmc_decoder_t *this) {
*************************************************************************/
/*
- * This function is called by xine to determine which buffer types this
- * decoder knows how to handle.
- * Parameters:
- * this_gen: A video decoder object
- * buf_type: The number of the buffer type that xine is querying for;
- * these buffer constants are defined in src/xine-engine/buffer.h.
- * Return:
- * 1 if the decoder is capable of handling buf_type
- * 0 if the decoder is not capable of handling buf_type
- */
-static int qtsmc_can_handle (video_decoder_t *this_gen, int buf_type) {
-
- return (buf_type == BUF_VIDEO_SMC);
-}
-
-/*
* This function is responsible is called to initialize the video decoder
* for use. Initialization usually involves setting up the fields in your
* private video decoder object.
@@ -677,18 +661,10 @@ static void qtsmc_dispose (video_decoder_t *this_gen) {
free (this_gen);
}
-static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
+static void *init_video_decoder_plugin (xine_t *xine, void *data) {
qtsmc_decoder_t *this ;
- if (iface_version != 10) {
- printf( "qtsmc: plugin doesn't support plugin API version %d.\n"
- "qtsmc: this means there's a version mismatch between xine and this "
- "qtsmc: decoder plugin.\nInstalling current plugins should help.\n",
- iface_version);
- return NULL;
- }
-
this = (qtsmc_decoder_t *) malloc (sizeof (qtsmc_decoder_t));
memset(this, 0, sizeof (qtsmc_decoder_t));
@@ -699,8 +675,21 @@ static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
this->video_decoder.close = qtsmc_close;
this->video_decoder.get_identifier = qtsmc_get_id;
this->video_decoder.dispose = qtsmc_dispose;
- this->video_decoder.priority = 9;
return (video_decoder_t *) this;
}
+/* plugin catalog information */
+static uint32_t supported_types[] = { BUF_VIDEO_SMC, 0 };
+
+static decoder_info_t video_decoder_info = {
+ supported_types, /* supported types */
+ 9 /* priority */
+};
+
+plugin_info_t xine_plugin_info[] = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 10, "QT SMC", XINE_VERSION_CODE, &video_decoder_info, &init_video_decoder_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
+
diff --git a/src/libxinevdec/rgb.c b/src/libxinevdec/rgb.c
index 29b7d120a..0bb905f19 100644
--- a/src/libxinevdec/rgb.c
+++ b/src/libxinevdec/rgb.c
@@ -21,7 +21,7 @@
* Actually, this decoder just converts a raw RGB image to a YUY2 map
* suitable for display under xine.
*
- * $Id: rgb.c,v 1.6 2002/09/05 20:44:42 mroi Exp $
+ * $Id: rgb.c,v 1.7 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -289,7 +289,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = rgb_close;
this->video_decoder.get_identifier = rgb_get_id;
this->video_decoder.dispose = rgb_dispose;
- this->video_decoder.priority = 1;
return this;
}
diff --git a/src/libxinevdec/roqvideo.c b/src/libxinevdec/roqvideo.c
index ad0d21096..322b5d741 100644
--- a/src/libxinevdec/roqvideo.c
+++ b/src/libxinevdec/roqvideo.c
@@ -18,7 +18,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: roqvideo.c,v 1.8 2002/09/05 20:44:42 mroi Exp $
+ * $Id: roqvideo.c,v 1.9 2002/09/05 22:19:03 mroi Exp $
*/
/* And this is the header that came with the RoQ video decoder: */
@@ -367,10 +367,6 @@ static void roq_decode_frame(roq_decoder_t *ri, vo_frame_t *img) {
memcpy(img->base[2], ri->v[0], (ri->width * ri->height)/4);
}
-static int roq_can_handle (video_decoder_t *this_gen, int buf_type) {
- return (buf_type == BUF_VIDEO_ROQ);
-}
-
static void roq_init (video_decoder_t *this_gen, vo_instance_t *video_out) {
roq_decoder_t *this = (roq_decoder_t *) this_gen;
@@ -502,7 +498,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = roq_close;
this->video_decoder.get_identifier = roq_get_id;
this->video_decoder.dispose = roq_dispose;
- this->video_decoder.priority = 1;
return this;
}
diff --git a/src/libxinevdec/svq1.c b/src/libxinevdec/svq1.c
index 6f1d130e0..90f9c9bbb 100644
--- a/src/libxinevdec/svq1.c
+++ b/src/libxinevdec/svq1.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: svq1.c,v 1.8 2002/09/05 20:44:42 mroi Exp $
+ * $Id: svq1.c,v 1.9 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -1509,7 +1509,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = svq1dec_close;
this->video_decoder.get_identifier = svq1dec_get_id;
this->video_decoder.dispose = svq1dec_dispose;
- this->video_decoder.priority = 4;
return this;
}
diff --git a/src/libxinevdec/wc3video.c b/src/libxinevdec/wc3video.c
index a95262da5..f5628a9cc 100644
--- a/src/libxinevdec/wc3video.c
+++ b/src/libxinevdec/wc3video.c
@@ -22,7 +22,7 @@
* For more information on the WC3 Movie format, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: wc3video.c,v 1.3 2002/09/05 20:44:42 mroi Exp $
+ * $Id: wc3video.c,v 1.4 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -331,22 +331,6 @@ static void wc3_decode_frame (wc3video_decoder_t *this) {
*************************************************************************/
/*
- * This function is called by xine to determine which buffer types this
- * decoder knows how to handle.
- * Parameters:
- * this_gen: A video decoder object
- * buf_type: The number of the buffer type that xine is querying for;
- * these buffer constants are defined in src/xine-engine/buffer.h.
- * Return:
- * 1 if the decoder is capable of handling buf_type
- * 0 if the decoder is not capable of handling buf_type
- */
-static int wc3video_can_handle (video_decoder_t *this_gen, int buf_type) {
-
- return (buf_type == BUF_VIDEO_WC3);
-}
-
-/*
* This function is called to initialize the video decoder for use.
* Initialization usually involves setting up the fields in your
* private video decoder object.
@@ -525,23 +509,12 @@ static void wc3video_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
-static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
+static void *init_video_decoder_plugin (xine_t *xine, void *data) {
wc3video_decoder_t *this ;
- if (iface_version != 10) {
- printf( "wc3video: plugin doesn't support plugin API version %d.\n"
- "wc3video: this means there's a version mismatch between xine and this "
- "wc3video: decoder plugin.\nInstalling current plugins should help.\n",
- iface_version);
- return NULL;
- }
-
this = (wc3video_decoder_t *) malloc (sizeof (wc3video_decoder_t));
memset(this, 0, sizeof (wc3video_decoder_t));
@@ -552,8 +525,20 @@ static void *init_video_decoder_plugin (int iface_version, xine_t *xine) {
this->video_decoder.close = wc3video_close;
this->video_decoder.get_identifier = wc3video_get_id;
this->video_decoder.dispose = wc3video_dispose;
- this->video_decoder.priority = 9;
return (video_decoder_t *) this;
}
+/* plugin catalog information */
+static uint32_t supported_types[] = { BUF_VIDEO_WC3, 0 };
+
+static decoder_info_t video_decoder_info = {
+ supported_types, /* supported types */
+ 9 /* priority */
+};
+
+plugin_info_t xine_plugin_info[] = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 10, "WC3 Video", XINE_VERSION_CODE, &video_decoder_info, &init_video_decoder_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
diff --git a/src/libxinevdec/yuv.c b/src/libxinevdec/yuv.c
index b6976c367..7775f1884 100644
--- a/src/libxinevdec/yuv.c
+++ b/src/libxinevdec/yuv.c
@@ -21,7 +21,7 @@
* Actually, this decoder just reorganizes chunks of raw YUV data in such
* a way that xine can display them.
*
- * $Id: yuv.c,v 1.5 2002/09/05 20:44:42 mroi Exp $
+ * $Id: yuv.c,v 1.6 2002/09/05 22:19:03 mroi Exp $
*/
#include <stdio.h>
@@ -278,10 +278,7 @@ static void yuv_dispose (video_decoder_t *this_gen) {
/*
* This function should be the plugin's only advertised function to the
* outside world. It allows xine to query the plugin module for the addresses
- * to the necessary functions in the video decoder object. The video
- * decoder object also has a priority field which allows different decoder
- * plugins for the same buffer types to coexist peacefully. The higher the
- * priority number, the more precedence a decoder has. E.g., 9 beats 1.
+ * to the necessary functions in the video decoder object.
*/
static void *init_video_decoder_plugin (xine_t *xine, void *data) {
@@ -297,7 +294,6 @@ static void *init_video_decoder_plugin (xine_t *xine, void *data) {
this->video_decoder.close = yuv_close;
this->video_decoder.get_identifier = yuv_get_id;
this->video_decoder.dispose = yuv_dispose;
- this->video_decoder.priority = 1;
return this;
}