]> git.sesse.net Git - vlc/blobdiff - plugins/dvd/dvd_demux.c
* ./extras/MacOSX_dvdioctl: removed outdated files.
[vlc] / plugins / dvd / dvd_demux.c
index 35b5962fab70b404b46cf91019d8c03357d600aa..674906e4bf927a917c0041e09d4405fab5142774 100644 (file)
@@ -1,7 +1,7 @@
 /* dvd_demux.c: DVD demux functions.
  *****************************************************************************
  * Copyright (C) 1998-2001 VideoLAN
- * $Id: dvd_demux.c,v 1.2 2002/03/06 12:26:35 stef Exp $
+ * $Id: dvd_demux.c,v 1.4 2002/03/18 19:14:52 sam Exp $
  *
  * Author: Stéphane Borel <stef@via.ecp.fr>
  *
@@ -88,6 +88,11 @@ void _M( demux_getfunctions)( function_list_t * p_function_list )
  *****************************************************************************/
 static int DVDInit( input_thread_t * p_input )
 {
+    if( p_input->stream.i_method != INPUT_METHOD_DVD )
+    {
+        return -1;
+    }
+
     vlc_mutex_lock( &p_input->stream.stream_lock );
     
     DVDLaunchDecoders( p_input );
@@ -109,13 +114,17 @@ static void DVDEnd( input_thread_t * p_input )
  *****************************************************************************/
 static int DVDDemux( input_thread_t * p_input )
 {
-    int                 i;
     data_packet_t *     p_data;
+    ssize_t             i_result;
+    int                 i;
 
     /* Read headers to compute payload length */
     for( i = 0 ; i < DVD_READ_ONCE ; i++ )
     {
-        input_ReadPS( p_input, &p_data );
+        if( ( i_result = input_ReadPS( p_input, &p_data ) ) <= 0)
+        {
+            return i_result;
+        }
 
         input_DemuxPS( p_input, p_data );
     }