]> git.sesse.net Git - vlc/commitdiff
Fixed many bugs experienced by our users today.
authorChristophe Massiot <massiot@videolan.org>
Sat, 29 Dec 2001 00:39:49 +0000 (00:39 +0000)
committerChristophe Massiot <massiot@videolan.org>
Sat, 29 Dec 2001 00:39:49 +0000 (00:39 +0000)
plugins/dvd/input_dvd.c
plugins/dvdread/input_dvdread.c
plugins/vcd/linux_cdrom_tools.c
plugins/x11/vout_xvideo.c

index e571563aadaaff27220c9c55bbc34d8d150af30b..f8f4b992d6ba73a4e98548bbb987c8508538fe0a 100644 (file)
@@ -9,7 +9,7 @@
  *  -dvd_udf to find files
  *****************************************************************************
  * Copyright (C) 1998-2001 VideoLAN
- * $Id: input_dvd.c,v 1.111 2001/12/27 03:47:08 massiot Exp $
+ * $Id: input_dvd.c,v 1.112 2001/12/29 00:39:49 massiot Exp $
  *
  * Author: Stéphane Borel <stef@via.ecp.fr>
  *
@@ -979,7 +979,7 @@ intf_WarnMsg( 2, "Sector: 0x%x Read: %d Chapter: %d", p_dvd->i_sector, i_block_o
     p_input->pf_delete_packet( p_input->p_method_data, p_data );
     if( i_packet != 0 )
     {
-        (*pp_data)->p_next = NULL;
+        *pp_data = NULL;
     }
 
     vlc_mutex_lock( &p_input->stream.stream_lock );
index 45c127c79369e32f6c3804d6130adcb4d16c0bfa..d8e016c193b2b2c823530197ca377513d4cb064f 100644 (file)
@@ -6,7 +6,7 @@
  * It depends on: libdvdread for ifo files and block reading.
  *****************************************************************************
  * Copyright (C) 2001 VideoLAN
- * $Id: input_dvdread.c,v 1.6 2001/12/27 01:49:34 massiot Exp $
+ * $Id: input_dvdread.c,v 1.7 2001/12/29 00:39:49 massiot Exp $
  *
  * Author: Stéphane Borel <stef@via.ecp.fr>
  *
@@ -210,8 +210,6 @@ static void DvdReadInit( input_thread_t * p_input )
     /* We read DVD_BLOCK_READ_ONCE in each loop, so the input will receive
      * DVD_DATA_READ_ONCE at most */
     p_dvd->i_block_once = DVD_BLOCK_READ_ONCE;
-    /* this value mustn't be modifed */
-    p_input->i_read_once = DVD_DATA_READ_ONCE;
 
     /* Ifo allocation & initialisation */
     if( ! ( p_dvd->p_vmg_file = ifoOpen( p_dvd->p_dvdread, 0 ) ) )
@@ -782,7 +780,7 @@ static int DvdReadSetArea( input_thread_t * p_input, input_area_t * p_area )
  * EOF.
  *****************************************************************************/
 static int DvdReadRead( input_thread_t * p_input,
-                        data_packet_t ** pp_packets )
+                        data_packet_t ** pp_data )
 {
     thread_dvd_data_t *     p_dvd;
     u8                      p_data[DVD_VIDEO_LB_LEN];
@@ -798,6 +796,8 @@ static int DvdReadRead( input_thread_t * p_input,
 
     p_dvd = (thread_dvd_data_t *)p_input->p_plugin_data;
 
+    *pp_data = NULL;
+
     /*
      * Playback by cell in this pgc, starting at the cell for our chapter.
      */
@@ -848,8 +848,8 @@ static int DvdReadRead( input_thread_t * p_input,
     p_dvd->i_pack_len -= i_blocks;
 
     /* Get iovecs */
-    p_data_p = input_BuffersToIO( p_input->p_method_data, p_vec,
-                                DVD_DATA_READ_ONCE );
+    *pp_data = p_data_p = input_BuffersToIO( p_input->p_method_data, p_vec,
+                                             DVD_DATA_READ_ONCE );
 
     if ( p_data_p == NULL )
     {
@@ -895,34 +895,33 @@ static int DvdReadRead( input_thread_t * p_input,
             }
             if( i_pos != 0 )
             {
-                pp_packets[i_packet] = input_ShareBuffer(
-                        p_input->p_method_data, p_current );
+                *pp_data = input_ShareBuffer( p_input->p_method_data,
+                                              p_current );
             }
             else
             {
-                pp_packets[i_packet] = p_data_p;
+                *pp_data = p_data_p;
                 p_data_p = p_data_p->p_next;
             }
 
-            pp_packets[i_packet]->p_payload_start =
-                pp_packets[i_packet]->p_demux_start =
-                pp_packets[i_packet]->p_demux_start + i_pos;
+            (*pp_data)->p_payload_start = (*pp_data)->p_demux_start =
+                    (*pp_data)->p_demux_start + i_pos;
             
 
-            pp_packets[i_packet]->p_payload_end =
-                    pp_packets[i_packet]->p_payload_start + i_packet_size + 6;
-
-            pp_packets[i_packet]->p_next = NULL;
-            pp_packets[i_packet]->b_discard_payload = 0;
+            (*pp_data)->p_payload_end =
+                    (*pp_data)->p_payload_start + i_packet_size + 6;
 
             i_packet++;
             i_pos += i_packet_size + 6;
+            pp_data = &(*pp_data)->p_next;
         }
     }
 
-    pp_packets[i_packet] = NULL;
-
     p_input->pf_delete_packet( p_input->p_method_data, p_data_p );
+    if( i_packet != 0 )
+    {
+        *pp_data = NULL;
+    }
 
     vlc_mutex_lock( &p_input->stream.stream_lock );
 
index 5007bf98fc6d94c78e5642355f819af720a76dee..c22c296cd0a3dc033f2bbfdd5accdd7593fa5ac9 100644 (file)
@@ -134,7 +134,6 @@ int VCDReadSector( struct thread_vcd_data_s * p_vcd, byte_t * p_buffer )
     p_msf->minute =   i_dummy / (CD_FRAMES * CD_SECS);
     p_msf->second = ( i_dummy % (CD_FRAMES * CD_SECS) ) / CD_FRAMES;
     p_msf->frame =  ( i_dummy % (CD_FRAMES * CD_SECS) ) % CD_FRAMES;
-#undef p_msf
 
 #ifdef DEBUG
     intf_DbgMsg( "vcd debug: playing frame %d:%d-%d",
@@ -158,5 +157,7 @@ int VCDReadSector( struct thread_vcd_data_s * p_vcd, byte_t * p_buffer )
     }
 
     return 1;
+
+#undef p_msf
 }
 
index 8f12a60df1041655a2fdff8060f1868f832c4b62..d13b10795343a35f0a00ede8cef74d145c56e3b0 100644 (file)
@@ -2,7 +2,7 @@
  * vout_xvideo.c: Xvideo video output display method
  *****************************************************************************
  * Copyright (C) 1998-2001 VideoLAN
- * $Id: vout_xvideo.c,v 1.42 2001/12/19 18:14:23 sam Exp $
+ * $Id: vout_xvideo.c,v 1.43 2001/12/29 00:39:49 massiot Exp $
  *
  * Authors: Shane Harper <shanegh@optusnet.com.au>
  *          Vincent Seguin <seguin@via.ecp.fr>
@@ -208,7 +208,7 @@ static int vout_Create( vout_thread_t *p_vout )
         free( p_vout->p_sys );
         return 1;
     }
-    intf_DbgMsg( "Using xv port %d" , p_vout->p_sys->xv_port );
+    intf_DbgMsg( "Using xv port %d" , p_vout->p_sys->i_xvport );
 
     /* Create blank cursor (for mouse cursor autohiding) */
     p_vout->p_sys->b_mouse_pointer_visible = 1;