changeset 33515:c80d57ec577b

Fix dvd_get_current_time so the cell argument actually has a purpose.
author reimar
date Sun, 12 Jun 2011 11:10:13 +0000
parents 30e54bd66d39
children 88cd23eb505d
files stream/stream_dvd.c
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/stream/stream_dvd.c	Sun Jun 12 10:56:03 2011 +0000
+++ b/stream/stream_dvd.c	Sun Jun 12 11:10:13 2011 +0000
@@ -578,8 +578,8 @@
     dvd_priv_t *d = stream->priv;
 
     tm=0;
-    if(!cell) cell=d->cur_cell;
-    for(i=0; i<d->cur_cell; i++) {
+    if(cell < 0) cell=d->cur_cell;
+    for(i=0; i<cell; i++) {
         if(d->cur_pgc->cell_playback[i].block_type == BLOCK_TYPE_ANGLE_BLOCK &&
            d->cur_pgc->cell_playback[i].block_mode != BLOCK_MODE_FIRST_CELL
         )
@@ -629,7 +629,7 @@
       stream_skip(stream, 2048);
       t = mp_dvdtimetomsec(&d->dsi_pack.dsi_gi.c_eltm);
     } while(!t);
-    tm = dvd_get_current_time(stream, 0);
+    tm = dvd_get_current_time(stream, -1);
 
     pos = ((off_t)tmap_sector)<<11;
     stream_seek(stream, pos);
@@ -638,7 +638,7 @@
     while(tm <= sec) {
         if(!stream_skip(stream, 2048))
           break;
-        tm = dvd_get_current_time(stream, 0);
+        tm = dvd_get_current_time(stream, -1);
     };
     tmap_sector = stream->pos >> 11;
 
@@ -689,7 +689,7 @@
         case STREAM_CTRL_GET_CURRENT_TIME:
         {
             double tm;
-            tm = dvd_get_current_time(stream, 0);
+            tm = dvd_get_current_time(stream, -1);
             if(tm != -1) {
               *((double *)arg) = tm;
               return 1;