Commit 05761f84 authored by Stéphane Borel's avatar Stéphane Borel

*Removed a lock that caused late frames in DVDRead.

parent 44abaa7c
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,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.74 2001/06/14 02:47:45 sam Exp $ * $Id: input_dvd.c,v 1.75 2001/06/15 01:22:58 stef Exp $
* *
* Author: Stphane Borel <stef@via.ecp.fr> * Author: Stphane Borel <stef@via.ecp.fr>
* *
...@@ -460,7 +460,6 @@ static int DVDSetArea( input_thread_t * p_input, input_area_t * p_area ) ...@@ -460,7 +460,6 @@ static int DVDSetArea( input_thread_t * p_input, input_area_t * p_area )
p_dvd->i_sector = 0; p_dvd->i_sector = 0;
p_dvd->i_size = vts.cell_inf.p_cell_map[p_dvd->i_cell].i_end_sector; p_dvd->i_size = vts.cell_inf.p_cell_map[p_dvd->i_cell].i_end_sector;
intf_WarnMsg( 2, "dvd info: stream size 1: %d", p_dvd->i_size );
if( DVDChapterSelect( p_dvd, 1 ) < 0 ) if( DVDChapterSelect( p_dvd, 1 ) < 0 )
{ {
...@@ -759,13 +758,14 @@ static int DVDRead( input_thread_t * p_input, ...@@ -759,13 +758,14 @@ static int DVDRead( input_thread_t * p_input,
int i_packet; int i_packet;
int i_pos; int i_pos;
int i_read_blocks; int i_read_blocks;
off_t i_off; int i_sector;
boolean_t b_eof; boolean_t b_eof;
boolean_t b_eot; boolean_t b_eot;
p_dvd = (thread_dvd_data_t *)p_input->p_plugin_data; p_dvd = (thread_dvd_data_t *)p_input->p_plugin_data;
p_netlist = (dvd_netlist_t *)p_input->p_method_data; p_netlist = (dvd_netlist_t *)p_input->p_method_data;
i_sector = p_dvd->i_title_start + p_dvd->i_sector;
i_block_once = p_dvd->i_end_sector - p_dvd->i_sector + 1; i_block_once = p_dvd->i_end_sector - p_dvd->i_sector + 1;
/* Get the position of the next cell if we're at cell end */ /* Get the position of the next cell if we're at cell end */
...@@ -785,8 +785,8 @@ static int DVDRead( input_thread_t * p_input, ...@@ -785,8 +785,8 @@ static int DVDRead( input_thread_t * p_input,
} }
/* Position the fd pointer on the right address */ /* Position the fd pointer on the right address */
i_off = LB2OFF( dvdcss_seek( p_dvd->dvdhandle, i_sector = dvdcss_seek( p_dvd->dvdhandle,
p_dvd->i_title_start + p_dvd->i_sector ) ); p_dvd->i_title_start + p_dvd->i_sector );
/* update chapter : it will be easier when we have navigation /* update chapter : it will be easier when we have navigation
* ES support */ * ES support */
...@@ -807,14 +807,6 @@ static int DVDRead( input_thread_t * p_input, ...@@ -807,14 +807,6 @@ static int DVDRead( input_thread_t * p_input,
} }
} }
vlc_mutex_lock( &p_input->stream.stream_lock );
p_input->stream.p_selected_area->i_tell = i_off -
p_input->stream.p_selected_area->i_start;
p_input->stream.p_selected_area->i_part = p_dvd->i_chapter;
vlc_mutex_unlock( &p_input->stream.stream_lock );
i_block_once = p_dvd->i_end_sector - p_dvd->i_sector + 1; i_block_once = p_dvd->i_end_sector - p_dvd->i_sector + 1;
} }
...@@ -911,9 +903,13 @@ static int DVDRead( input_thread_t * p_input, ...@@ -911,9 +903,13 @@ static int DVDRead( input_thread_t * p_input,
vlc_mutex_lock( &p_input->stream.stream_lock ); vlc_mutex_lock( &p_input->stream.stream_lock );
p_input->stream.p_selected_area->i_tell += LB2OFF( i_read_blocks ); p_input->stream.p_selected_area->i_tell =
LB2OFF( i_sector + i_read_blocks ) -
p_input->stream.p_selected_area->i_start;
p_input->stream.p_selected_area->i_part = p_dvd->i_chapter;
b_eot = !( p_input->stream.p_selected_area->i_tell b_eot = !( p_input->stream.p_selected_area->i_tell
< LB2OFF( p_dvd->i_size ) ); < p_input->stream.p_selected_area->i_size );
b_eof = b_eot && ( ( p_dvd->i_title + 1 ) >= p_input->stream.i_area_nb ); b_eof = b_eot && ( ( p_dvd->i_title + 1 ) >= p_input->stream.i_area_nb );
vlc_mutex_unlock( &p_input->stream.stream_lock ); vlc_mutex_unlock( &p_input->stream.stream_lock );
......
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