[MPlayer-cvslog] r19459 - in trunk/stream: stream_dvdnav.c stream_dvdnav.h

nicodvb subversion at mplayerhq.hu
Sat Aug 19 21:41:04 CEST 2006


Author: nicodvb
Date: Sat Aug 19 21:41:04 2006
New Revision: 19459

Modified:
   trunk/stream/stream_dvdnav.c
   trunk/stream/stream_dvdnav.h

Log:
implemented STREAM_CTRL_GET_TIME_LENGTH (duration of the pgc playing)

Modified: trunk/stream/stream_dvdnav.c
==============================================================================
--- trunk/stream/stream_dvdnav.c	(original)
+++ trunk/stream/stream_dvdnav.c	Sat Aug 19 21:41:04 2006
@@ -216,6 +216,12 @@
 
       break;
     }
+    case DVDNAV_CELL_CHANGE: {
+        dvdnav_cell_change_event_t *ev =  (dvdnav_cell_change_event_t*)buf;
+        if(ev->pgc_length)
+          dvdnav_priv->duration = ev->pgc_length/90;
+        break;
+    }
     case DVDNAV_WAIT:
         dvdnav_wait_skip(dvdnav_priv->dvdnav);
         break;
@@ -357,6 +363,14 @@
       *((unsigned int *)arg) = part - 1;
       return 1;
     }
+    case STREAM_CTRL_GET_TIME_LENGTH:
+    {
+        if(dvdnav_priv->duration)
+        {
+          *((unsigned int *)arg) = dvdnav_priv->duration;
+          return 1;
+        }
+    }
   }
 
   return STREAM_UNSUPORTED;

Modified: trunk/stream/stream_dvdnav.h
==============================================================================
--- trunk/stream/stream_dvdnav.h	(original)
+++ trunk/stream/stream_dvdnav.h	Sat Aug 19 21:41:04 2006
@@ -18,6 +18,7 @@
   int              started;             /* Has mplayer initialization finished? */
   unsigned char    prebuf[STREAM_BUFFER_SIZE]; /* prefill buffer */
   int              prelen;              /* length of prefill buffer */
+  unsigned int     duration;            /* in milliseconds */
 } dvdnav_priv_t;
 
 extern int dvd_nav_still;



More information about the MPlayer-cvslog mailing list