summaryrefslogtreecommitdiff
path: root/src/dxr3
diff options
context:
space:
mode:
Diffstat (limited to 'src/dxr3')
-rw-r--r--src/dxr3/dxr3_decoder.c20
-rw-r--r--src/dxr3/dxr3_video_out.c8
2 files changed, 20 insertions, 8 deletions
diff --git a/src/dxr3/dxr3_decoder.c b/src/dxr3/dxr3_decoder.c
index bbe0260d7..54d61cb0c 100644
--- a/src/dxr3/dxr3_decoder.c
+++ b/src/dxr3/dxr3_decoder.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: dxr3_decoder.c,v 1.56 2002/01/07 23:36:37 jcdutton Exp $
+ * $Id: dxr3_decoder.c,v 1.57 2002/01/09 22:33:03 jcdutton Exp $
*
* dxr3 video and spu decoder plugin. Accepts the video and spu data
* from XINE and sends it directly to the corresponding dxr3 devices.
@@ -137,16 +137,22 @@ static int dxr3_check_vo(config_values_t* cfg)
static int dxr3_tested = 0;
static int dxr3_ok;
-static void dxr3_presence_test()
+static void dxr3_presence_test( xine_t* xine)
{
int fd, val;
+ vo_info_t *info;
if (dxr3_tested)
return;
dxr3_tested = 1;
dxr3_ok = 0;
-
+ if (xine && xine->video_driver ) {
+ info = xine->video_driver->get_info();
+ if ((strncmp (info->id, "dxr3", 4)) != 0) {
+ return;
+ }
+ }
if ((fd = open(devname, O_WRONLY))<0) {
printf("dxr3: not detected (%s: %s)\n",
devname, strerror(errno));
@@ -734,7 +740,7 @@ video_decoder_t *init_video_decoder_plugin (int iface_version,
cfg = xine->config;
devname = cfg->register_string (cfg, LOOKUP_DEV, DEFAULT_DEV, "Dxr3: Device Name",NULL,NULL,NULL);
- dxr3_presence_test ();
+ dxr3_presence_test ( xine );
if (!dxr3_ok) return NULL;
this = (dxr3_decoder_t *) malloc (sizeof (dxr3_decoder_t));
@@ -1047,8 +1053,10 @@ spu_decoder_t *init_spu_decoder_plugin (int iface_version, xine_t *xine)
cfg = xine->config;
devname = cfg->register_string (cfg, LOOKUP_DEV, DEFAULT_DEV, NULL,NULL,NULL,NULL);
- dxr3_presence_test ();
- if (!dxr3_ok) return NULL;
+ dxr3_presence_test ( xine );
+ if (!dxr3_ok) {
+ return NULL;
+ }
this = (spudec_decoder_t *) malloc (sizeof (spudec_decoder_t));
diff --git a/src/dxr3/dxr3_video_out.c b/src/dxr3/dxr3_video_out.c
index 6084bcb96..e1197d6e2 100644
--- a/src/dxr3/dxr3_video_out.c
+++ b/src/dxr3/dxr3_video_out.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: dxr3_video_out.c,v 1.4 2001/12/24 19:31:13 hrm Exp $
+ * $Id: dxr3_video_out.c,v 1.5 2002/01/09 22:33:04 jcdutton Exp $
*
* mpeg1 encoding video out plugin for the dxr3.
*
@@ -162,6 +162,8 @@ int dxr3_fame_init(dxr3_driver_t *);
#define MV_COMMAND 0
+vo_info_t *get_video_out_plugin_info();
+
/* some helper stuff so that the decoder plugin can test for the
* presence of the dxr3 vo driver */
/* to be called by dxr3 video out init and exit handlers */
@@ -510,6 +512,7 @@ vo_driver_t *init_video_out_plugin (config_values_t *config, void *visual_gen)
/*
* allocate plugin struct
*/
+printf("dxr3_video_out:init_plugin\n");
this = malloc (sizeof (dxr3_driver_t));
@@ -530,6 +533,7 @@ vo_driver_t *init_video_out_plugin (config_values_t *config, void *visual_gen)
this->vo_driver.get_property_min_max = dxr3_get_property_min_max;
this->vo_driver.gui_data_exchange = dxr3_gui_data_exchange;
this->vo_driver.exit = dxr3_exit;
+ this->vo_driver.get_info = get_video_out_plugin_info;
this->config=config;
this->mpeg_source = 0; /* set by update_frame, by checking the flag */
@@ -632,7 +636,7 @@ vo_driver_t *init_video_out_plugin (config_values_t *config, void *visual_gen)
}
static vo_info_t vo_info_dxr3 = {
- 2, /* api version */
+ 3, /* api version */
"dxr3",
"xine video output plugin for dxr3 cards",
VISUAL_TYPE_X11,