vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | Wed Apr 9 15:17:33 2014 +0200| [76c0e0f70f3871ad31a9cd18fe1ce9fc5c8145ab] | committer: Jean-Baptiste Kempf
When the current title fail, try the next one Arccos FTW Ref #6649 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=76c0e0f70f3871ad31a9cd18fe1ce9fc5c8145ab --- modules/access/dvdread.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c index db37a12..bab7217 100644 --- a/modules/access/dvdread.c +++ b/modules/access/dvdread.c @@ -475,12 +475,15 @@ static int Demux( demux_t *p_demux ) /* End of title */ if( p_sys->i_cur_cell >= p_sys->p_cur_pgc->nr_of_cells ) { - if( p_sys->i_title + 1 >= p_sys->i_titles ) + int k = p_sys->i_title; + + /* Looking for a not broken title */ + while( k < p_sys->i_titles && DvdReadSetArea( p_demux, ++k, 0, -1 ) != VLC_SUCCESS ) { - return 0; /* EOF */ + msg_Err(p_demux, "Failed next title, trying another: %i", k ); + if( k >= p_sys->i_titles ) + return 0; // EOF } - - DvdReadSetArea( p_demux, p_sys->i_title + 1, 0, -1 ); } if( p_sys->i_pack_len >= 1024 ) @@ -500,12 +503,15 @@ static int Demux( demux_t *p_demux ) if( p_sys->i_cur_cell >= p_sys->p_cur_pgc->nr_of_cells ) { - if( p_sys->i_title + 1 >= p_sys->i_titles ) + int k = p_sys->i_title; + + /* Looking for a not broken title */ + while( k < p_sys->i_titles && DvdReadSetArea( p_demux, ++k, 0, -1 ) != VLC_SUCCESS ) { - return 0; /* EOF */ + msg_Err(p_demux, "Failed next title, trying another: %i", k ); + if( k >= p_sys->i_titles ) + return 0; // EOF } - - DvdReadSetArea( p_demux, p_sys->i_title + 1, 0, -1 ); } /* _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
