From 669c712a7389c9f63d8a762bdb4d5ce836e5b39d Mon Sep 17 00:00:00 2001 From: Xavier Marchesini Date: Sun, 3 Mar 2002 17:34:27 +0000 Subject: [PATCH] * Fixed DVD input under Win32. * Fixed input parser under win32, chich couldn't understand that c:\windows\bureau is a valid file and doesn't need to be accessed with the plugin 'C' :-) * BTW, I added myself in the AUTHORS file :) --- AUTHORS | 5 +++++ plugins/dvd/input_dvd.c | 8 +++++--- src/input/input.c | 34 ++++++++++++++++++++++++++++++---- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/AUTHORS b/AUTHORS index 527d5da161..6e1b85fa6f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -218,6 +218,11 @@ N: Wade Majors E: guru@startrek.com D: BeOS testing, icon integration, debugging and fixes +N: Xavier Marchesini +E: xav@alarue.net +C: xav +D: Win32 fixes + N: Christophe Massiot E: massiot@via.ecp.fr C: massiot diff --git a/plugins/dvd/input_dvd.c b/plugins/dvd/input_dvd.c index 9441f6b732..9185331a6e 100644 --- a/plugins/dvd/input_dvd.c +++ b/plugins/dvd/input_dvd.c @@ -1,5 +1,4 @@ -/***************************************************************************** - * input_dvd.c: DVD raw reading plugin. +/* input_dvd.c: DVD raw reading plugin. ***************************************************************************** * This plugins should handle all the known specificities of the DVD format, * especially the 2048 bytes logical block size. @@ -9,7 +8,7 @@ * -dvd_udf to find files ***************************************************************************** * Copyright (C) 1998-2001 VideoLAN - * $Id: input_dvd.c,v 1.125 2002/03/02 03:29:13 stef Exp $ + * $Id: input_dvd.c,v 1.126 2002/03/03 17:34:27 xav Exp $ * * Author: Stéphane Borel * @@ -280,12 +279,15 @@ static int DVDOpen( struct input_thread_s *p_input ) psz_device, strerror(errno)); return( -1 ); } + +#ifndef WIN32 if( !S_ISBLK(stat_info.st_mode) && !S_ISCHR(stat_info.st_mode) ) { intf_WarnMsg( 3, "input : DVD plugin discarded" " (not a valid block device)" ); return -1; } +#endif intf_WarnMsg( 2, "input: dvd=%s raw=%s", psz_device, psz_parser ); diff --git a/src/input/input.c b/src/input/input.c index 3d1a6a6c80..a2e368a60d 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -4,7 +4,7 @@ * decoders. ***************************************************************************** * Copyright (C) 1998-2001 VideoLAN - * $Id: input.c,v 1.183 2002/03/02 03:51:23 sam Exp $ + * $Id: input.c,v 1.184 2002/03/03 17:34:27 xav Exp $ * * Authors: Christophe Massiot * Alexis Guillard @@ -433,7 +433,10 @@ static int InitThread( input_thread_t * p_input ) { /* Parse source string. Syntax : [[][/]:][] */ char * psz_parser = p_input->psz_source; - +#ifdef WIN32 + struct stat stat_info ; + int i_Win32_Access = 0 ; +#endif /* Skip the plug-in names */ while( *psz_parser && *psz_parser != ':' ) { @@ -447,13 +450,33 @@ static int InitThread( input_thread_t * p_input ) } else { +#ifdef WIN32 + if ( ( psz_parser-p_input->psz_source == 1) && + ( stat( p_input->psz_source, &stat_info ) != -1 ) ) + { + intf_WarnMsg (2, "Okay, found a valid device in p_input->psz_source") ; + psz_parser = p_input->psz_source ; + p_input->psz_access = NULL ; + p_input->psz_demux = NULL ; + i_Win32_Access = 1 ; + } + else + { + *psz_parser++ = '\0'; + } +#else *psz_parser++ = '\0'; +#endif p_input->psz_name = psz_parser; /* Come back to parse the access and demux plug-ins */ psz_parser = p_input->psz_source; - if( !*psz_parser ) +#ifdef WIN32 + if( (!*psz_parser) || (i_Win32_Access == 1)) +#else + if (!*psz_parser) +#endif { /* No access */ p_input->psz_access = NULL; @@ -478,8 +501,11 @@ static int InitThread( input_thread_t * p_input ) *psz_parser++ = '\0'; } } - +#ifndef WIN32 if( !*psz_parser ) +#else + if( (!*psz_parser) || (i_Win32_Access == 1)) +#endif { /* No demux */ p_input->psz_demux = NULL; -- 2.39.2