]> git.sesse.net Git - vlc/blobdiff - modules/access/vcdx/vcdplayer.c
Initialize track_end variable.
[vlc] / modules / access / vcdx / vcdplayer.c
index fbeddad66abdf3d33e3668669c4dcdaac342b202..8374f28ed66690bb1e76a5d0f8c939a2350e30ca 100644 (file)
 #include <cdio/util.h>
 #include <libvcd/info.h>
 
-#ifdef WIN32
-#define sleep(A) Sleep((A)*1000)
-#endif
-
 extern void VCDSetOrigin ( access_t *p_access, lsn_t i_lsn, track_t i_track,
                           const vcdinfo_itemid_t * p_itemid );
 
@@ -346,6 +342,8 @@ vcdplayer_set_origin(access_t *p_access, lsn_t i_lsn, track_t i_track,
   p_vcdplayer->i_track        = i_track;
   p_vcdplayer->track_lsn      = vcdinfo_get_track_lsn(p_vcdplayer->vcd, 
                                                      i_track);
+  p_vcdplayer->track_end_lsn  = p_vcdplayer->track_lsn + 
+    vcdinfo_get_track_sect_count(p_vcdplayer->vcd, i_track);
 
   dbg_print((INPUT_DBG_CALL|INPUT_DBG_LSN), 
            "lsn %u, end LSN: %u item.num %d, item.type %d", 
@@ -550,7 +548,7 @@ vcdplayer_pbc_nav ( access_t * p_access, uint8_t *wait_time )
           return READ_BLOCK;
         } else if (p_vcdplayer->i_still) {
           /* Hack: Just go back and do still again */
-          sleep(1);
+          msleep(1000);
           return READ_STILL_FRAME;
         }
       }
@@ -695,6 +693,7 @@ vcdplayer_play_default( access_t * p_access )
       dbg_print(INPUT_DBG_PBC, "DEFAULT to %d", itemid.num);
     } else {
       dbg_print(INPUT_DBG_PBC, "no DEFAULT for LID %d", p_vcdplayer->i_lid);
+      return VLC_EGENERIC;
     }
 
 #else 
@@ -724,7 +723,7 @@ vcdplayer_play_default( access_t * p_access )
     /* PBC is not on. "default" selection beginning of current 
        selection . */
   
-    p_vcdplayer->play_item.num = p_vcdplayer->play_item.num;
+    itemid.num = p_vcdplayer->play_item.num;
     
   }
 
@@ -754,7 +753,7 @@ vcdplayer_play_next( access_t * p_access )
 
   p_vcdinfo = p_vcdplayer->vcd;
 
-  itemid.type = p_vcdplayer->play_item.type;
+  itemid = p_vcdplayer->play_item;
 
   if  (vcdplayer_pbc_is_on(p_vcdplayer)) {
 
@@ -848,7 +847,7 @@ vcdplayer_play_prev( access_t * p_access )
   dbg_print( (INPUT_DBG_CALL|INPUT_DBG_PBC), 
             "current: %d" , p_vcdplayer->play_item.num);
 
-  itemid.type = p_vcdplayer->play_item.type;
+  itemid = p_vcdplayer->play_item;
 
   if  (vcdplayer_pbc_is_on(p_vcdplayer)) {
 
@@ -914,7 +913,7 @@ vcdplayer_play_return( access_t * p_access )
   dbg_print( (INPUT_DBG_CALL|INPUT_DBG_PBC), 
             "current: %d" , p_vcdplayer->play_item.num);
 
-  itemid.type = p_vcdplayer->play_item.type;
+  itemid = p_vcdplayer->play_item;
 
   if  (vcdplayer_pbc_is_on(p_vcdplayer)) {