diff stream/stream_dvd_common.c @ 23993:2107f38b6ca1

Moved dvdtimetomsec to stream_dvd_common.c.
author cehoyos
date Sat, 04 Aug 2007 21:59:26 +0000
parents stream/stream_dvd.c@cfdea6a164da
children de28f9e8cb00
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stream/stream_dvd_common.c	Sat Aug 04 21:59:26 2007 +0000
@@ -0,0 +1,19 @@
+#include <dvdread/ifo_types.h>
+#include "stream_dvd_common.h"
+
+/** 
+\brief Converts DVD time structure to milliseconds.
+\param *dev the DVD time structure to convert
+\return returns the time in milliseconds
+*/
+int mp_dvdtimetomsec(dvd_time_t *dt)
+{
+  static int framerates[4] = {0, 2500, 0, 2997};
+  int framerate = framerates[(dt->frame_u & 0xc0) >> 6];
+  int msec = (((dt->hour & 0xf0) >> 3) * 5 + (dt->hour & 0x0f)) * 3600000;
+  msec += (((dt->minute & 0xf0) >> 3) * 5 + (dt->minute & 0x0f)) * 60000;
+  msec += (((dt->second & 0xf0) >> 3) * 5 + (dt->second & 0x0f)) * 1000;
+  if(framerate > 0)
+    msec += (((dt->frame_u & 0x30) >> 3) * 5 + (dt->frame_u & 0x0f)) * 100000 / framerate;
+  return msec;
+}