]> git.sesse.net Git - vlc/commitdiff
* Fixed DVD input under Win32.
authorXavier Marchesini <xav@videolan.org>
Sun, 3 Mar 2002 17:34:27 +0000 (17:34 +0000)
committerXavier Marchesini <xav@videolan.org>
Sun, 3 Mar 2002 17:34:27 +0000 (17:34 +0000)
 * 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
plugins/dvd/input_dvd.c
src/input/input.c

diff --git a/AUTHORS b/AUTHORS
index 527d5da1611b0ad1c9e3c589ecffe201140fe59d..6e1b85fa6f51eb042ece7d90d898f4a0bee6467f 100644 (file)
--- 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
index 9441f6b7320e596113a999dbca46b7b3b581d241..9185331a6e3ca93f824727835bf62496d2cf350e 100644 (file)
@@ -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 <stef@via.ecp.fr>
  *
@@ -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 );
     
index 3d1a6a6c805fe0c42561c8ab26b7764cf2c99cc8..a2e368a60d6619b028517829849491b53d1beb50 100644 (file)
@@ -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 <massiot@via.ecp.fr>
  *          Alexis Guillard <alexis.guillard@bt.com>
@@ -433,7 +433,10 @@ static int InitThread( input_thread_t * p_input )
 {
     /* Parse source string. Syntax : [[<access>][/<demux>]:][<source>] */
     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;