]> git.sesse.net Git - vlc/commitdiff
* modules/access/dvdread.c: backport of #11298.
authorGildas Bazin <gbazin@videolan.org>
Sun, 5 Jun 2005 02:27:01 +0000 (02:27 +0000)
committerGildas Bazin <gbazin@videolan.org>
Sun, 5 Jun 2005 02:27:01 +0000 (02:27 +0000)
modules/access/dvdread.c

index 17e58d4382ce8aefaba67a657acea31c35641442..50f57ec08c465d4161e514b3014e07c21e690e00 100644 (file)
@@ -491,7 +491,7 @@ static int Demux( demux_t *p_demux )
         DvdReadHandleDSI( p_demux, p_buffer );
 
         /* End of title */
-        if( p_sys->i_next_vobu > p_sys->i_title_end_block )
+        if( p_sys->i_cur_cell >= p_sys->p_cur_pgc->nr_of_cells )
         {
             if( p_sys->i_title + 1 >= p_sys->i_titles )
             {
@@ -516,7 +516,7 @@ static int Demux( demux_t *p_demux )
         DemuxBlock( p_demux, p_buffer, DVD_VIDEO_LB_LEN );
     }
 
-    if( p_sys->i_cur_block > p_sys->i_title_end_block )
+    if( p_sys->i_cur_cell >= p_sys->p_cur_pgc->nr_of_cells )
     {
         if( p_sys->i_title + 1 >= p_sys->i_titles )
         {
@@ -1178,6 +1178,10 @@ static void DvdReadHandleDSI( demux_t *p_demux, uint8_t *p_data )
     else if( p_sys->dsi_pack.vobu_sri.next_vobu == SRI_END_OF_CELL )
     {
         p_sys->i_cur_cell = p_sys->i_next_cell;
+
+        /* End of title */
+        if( p_sys->i_cur_cell >= p_sys->p_cur_pgc->nr_of_cells ) return;
+
         DvdReadFindCell( p_demux );
 
         p_sys->i_next_vobu =