1
mirror of https://code.videolan.org/videolan/vlc synced 2024-10-03 01:31:53 +02:00

* 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 :)
This commit is contained in:
Xavier Marchesini 2002-03-03 17:34:27 +00:00
parent 69ff2d310d
commit 669c712a73
3 changed files with 40 additions and 7 deletions

View File

@ -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

View 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 );

View 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;