view stream/stream_dvd_common.c @ 28698:c7a1f29c98c2

r27390 Fix a misleading section in the libavcodec options manual r27407 Add video driver for Nintendo Wii/GameCube. r27454 Mention IVTV, S3 and SH_VEU drivers within VIDIX section of manpage. r27466 Document -lavcopts o, aka libavcodec AVOption. r27542 'mp3lame' audio output codec was wrongly listed as 'lame'. r27606 Make -heartbeat-cmd and -stop-xscreensaver sections reference each other. r27638 add lavfopts matroska suboption r27639 document lavc/lavf avoption o suboption r27650 add outdir sub-option to vo png r27690 whitespace cosmetics r27691 vo_fbdev now supports -geometry. r27768 update x264's section with r999 of x264 r27800 improve documentation of latest x264's options r27801 Clarify screenw/screenh options
author kraymer
date Wed, 25 Feb 2009 14:23:07 +0000
parents 83266d299072
children 0f1b5b68af32
line wrap: on
line source

#include "config.h"
#include <inttypes.h>
#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;
}