Commit 9ecb59ab authored by Christophe Massiot's avatar Christophe Massiot

Fixed many bugs experienced by our users today.

parent afc46709
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* -dvd_udf to find files * -dvd_udf to find files
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * 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: Stphane Borel <stef@via.ecp.fr> * Author: Stphane 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 ...@@ -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 ); p_input->pf_delete_packet( p_input->p_method_data, p_data );
if( i_packet != 0 ) if( i_packet != 0 )
{ {
(*pp_data)->p_next = NULL; *pp_data = NULL;
} }
vlc_mutex_lock( &p_input->stream.stream_lock ); vlc_mutex_lock( &p_input->stream.stream_lock );
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* It depends on: libdvdread for ifo files and block reading. * It depends on: libdvdread for ifo files and block reading.
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * 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: Stphane Borel <stef@via.ecp.fr> * Author: Stphane Borel <stef@via.ecp.fr>
* *
...@@ -210,8 +210,6 @@ static void DvdReadInit( input_thread_t * p_input ) ...@@ -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 /* We read DVD_BLOCK_READ_ONCE in each loop, so the input will receive
* DVD_DATA_READ_ONCE at most */ * DVD_DATA_READ_ONCE at most */
p_dvd->i_block_once = DVD_BLOCK_READ_ONCE; 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 */ /* Ifo allocation & initialisation */
if( ! ( p_dvd->p_vmg_file = ifoOpen( p_dvd->p_dvdread, 0 ) ) ) 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 ) ...@@ -782,7 +780,7 @@ static int DvdReadSetArea( input_thread_t * p_input, input_area_t * p_area )
* EOF. * EOF.
*****************************************************************************/ *****************************************************************************/
static int DvdReadRead( input_thread_t * p_input, static int DvdReadRead( input_thread_t * p_input,
data_packet_t ** pp_packets ) data_packet_t ** pp_data )
{ {
thread_dvd_data_t * p_dvd; thread_dvd_data_t * p_dvd;
u8 p_data[DVD_VIDEO_LB_LEN]; u8 p_data[DVD_VIDEO_LB_LEN];
...@@ -798,6 +796,8 @@ static int DvdReadRead( input_thread_t * p_input, ...@@ -798,6 +796,8 @@ static int DvdReadRead( input_thread_t * p_input,
p_dvd = (thread_dvd_data_t *)p_input->p_plugin_data; 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. * 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, ...@@ -848,8 +848,8 @@ static int DvdReadRead( input_thread_t * p_input,
p_dvd->i_pack_len -= i_blocks; p_dvd->i_pack_len -= i_blocks;
/* Get iovecs */ /* Get iovecs */
p_data_p = input_BuffersToIO( p_input->p_method_data, p_vec, *pp_data = p_data_p = input_BuffersToIO( p_input->p_method_data, p_vec,
DVD_DATA_READ_ONCE ); DVD_DATA_READ_ONCE );
if ( p_data_p == NULL ) if ( p_data_p == NULL )
{ {
...@@ -895,34 +895,33 @@ static int DvdReadRead( input_thread_t * p_input, ...@@ -895,34 +895,33 @@ static int DvdReadRead( input_thread_t * p_input,
} }
if( i_pos != 0 ) if( i_pos != 0 )
{ {
pp_packets[i_packet] = input_ShareBuffer( *pp_data = input_ShareBuffer( p_input->p_method_data,
p_input->p_method_data, p_current ); p_current );
} }
else else
{ {
pp_packets[i_packet] = p_data_p; *pp_data = p_data_p;
p_data_p = p_data_p->p_next; p_data_p = p_data_p->p_next;
} }
pp_packets[i_packet]->p_payload_start = (*pp_data)->p_payload_start = (*pp_data)->p_demux_start =
pp_packets[i_packet]->p_demux_start = (*pp_data)->p_demux_start + i_pos;
pp_packets[i_packet]->p_demux_start + i_pos;
pp_packets[i_packet]->p_payload_end = (*pp_data)->p_payload_end =
pp_packets[i_packet]->p_payload_start + i_packet_size + 6; (*pp_data)->p_payload_start + i_packet_size + 6;
pp_packets[i_packet]->p_next = NULL;
pp_packets[i_packet]->b_discard_payload = 0;
i_packet++; i_packet++;
i_pos += i_packet_size + 6; 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 ); 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 ); vlc_mutex_lock( &p_input->stream.stream_lock );
......
...@@ -134,7 +134,6 @@ int VCDReadSector( struct thread_vcd_data_s * p_vcd, byte_t * p_buffer ) ...@@ -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->minute = i_dummy / (CD_FRAMES * CD_SECS);
p_msf->second = ( i_dummy % (CD_FRAMES * CD_SECS) ) / CD_FRAMES; p_msf->second = ( i_dummy % (CD_FRAMES * CD_SECS) ) / CD_FRAMES;
p_msf->frame = ( i_dummy % (CD_FRAMES * CD_SECS) ) % CD_FRAMES; p_msf->frame = ( i_dummy % (CD_FRAMES * CD_SECS) ) % CD_FRAMES;
#undef p_msf
#ifdef DEBUG #ifdef DEBUG
intf_DbgMsg( "vcd debug: playing frame %d:%d-%d", 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 ) ...@@ -158,5 +157,7 @@ int VCDReadSector( struct thread_vcd_data_s * p_vcd, byte_t * p_buffer )
} }
return 1; return 1;
#undef p_msf
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout_xvideo.c: Xvideo video output display method * vout_xvideo.c: Xvideo video output display method
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * 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> * Authors: Shane Harper <shanegh@optusnet.com.au>
* Vincent Seguin <seguin@via.ecp.fr> * Vincent Seguin <seguin@via.ecp.fr>
...@@ -208,7 +208,7 @@ static int vout_Create( vout_thread_t *p_vout ) ...@@ -208,7 +208,7 @@ static int vout_Create( vout_thread_t *p_vout )
free( p_vout->p_sys ); free( p_vout->p_sys );
return 1; 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) */ /* Create blank cursor (for mouse cursor autohiding) */
p_vout->p_sys->b_mouse_pointer_visible = 1; p_vout->p_sys->b_mouse_pointer_visible = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment