summaryrefslogtreecommitdiffstats
path: root/stream/stream_dvd.c
diff options
context:
space:
mode:
authorcehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-08-04 21:59:26 +0000
committercehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-08-04 21:59:26 +0000
commite5a6eae2cf10658e64c8ba0ba49a6d60f5d3a5f0 (patch)
tree2ed1bb8627bdfb89c95613050f2618f6f299025d /stream/stream_dvd.c
parent5acbb3c611036c5fb7f786c63460b69ab021b383 (diff)
downloadmpv-e5a6eae2cf10658e64c8ba0ba49a6d60f5d3a5f0.tar.bz2
mpv-e5a6eae2cf10658e64c8ba0ba49a6d60f5d3a5f0.tar.xz
Moved dvdtimetomsec to stream_dvd_common.c.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24013 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream/stream_dvd.c')
-rw-r--r--stream/stream_dvd.c28
1 files changed, 6 insertions, 22 deletions
diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c
index 0d1676d51f..aee0f33c78 100644
--- a/stream/stream_dvd.c
+++ b/stream/stream_dvd.c
@@ -34,6 +34,7 @@
#include "m_struct.h"
#include "stream_dvd.h"
+#include "stream_dvd_common.h"
#include "libmpdemux/demuxer.h"
extern int stream_cache_size;
@@ -512,23 +513,6 @@ static void stream_dvd_close(stream_t *s) {
dvd_close(s->priv);
}
-/**
-\brief Converts DVD time structure to milliseconds.
-\param *dev the DVD time structure to convert
-\return returns the time in milliseconds
-*/
-static int 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;
-}
-
static int mp_get_titleset_length(ifo_handle_t *vts_file, tt_srpt_t *tt_srpt, int title_no)
{
int vts_ttn; ///< title number within video title set
@@ -543,7 +527,7 @@ static int mp_get_titleset_length(ifo_handle_t *vts_file, tt_srpt_t *tt_srpt, in
{
vts_ttn = tt_srpt->title[title_no].vts_ttn - 1;
pgc_no = vts_file->vts_ptt_srpt->title[vts_ttn].ptt[0].pgcn - 1;
- msec = dvdtimetomsec(&vts_file->vts_pgcit->pgci_srp[pgc_no].pgc->playback_time);
+ msec = mp_dvdtimetomsec(&vts_file->vts_pgcit->pgci_srp[pgc_no].pgc->playback_time);
}
return msec;
}
@@ -618,7 +602,7 @@ static void list_chapters(pgc_t *pgc)
if(!(pgc->cell_playback[cell-1].block_type == BLOCK_TYPE_ANGLE_BLOCK &&
pgc->cell_playback[cell-1].block_mode != BLOCK_MODE_FIRST_CELL)
)
- t += dvdtimetomsec(&pgc->cell_playback[cell-1].playback_time);
+ t += mp_dvdtimetomsec(&pgc->cell_playback[cell-1].playback_time);
cell++;
}
}
@@ -639,7 +623,7 @@ static double dvd_get_current_time(stream_t *stream, int cell)
continue;
tm += d->cell_times_table[i];
}
- tm += dvdtimetomsec(&d->dsi_pack.dsi_gi.c_eltm);
+ tm += mp_dvdtimetomsec(&d->dsi_pack.dsi_gi.c_eltm);
return (double)tm/1000.0;
}
@@ -680,7 +664,7 @@ static int dvd_seek_to_time(stream_t *stream, ifo_handle_t *vts_file, double sec
stream_seek(stream, pos);
do {
stream_skip(stream, 2048);
- t = dvdtimetomsec(&d->dsi_pack.dsi_gi.c_eltm);
+ t = mp_dvdtimetomsec(&d->dsi_pack.dsi_gi.c_eltm);
} while(!t);
tm = dvd_get_current_time(stream, 0);
@@ -1099,7 +1083,7 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
if(d->cell_times_table == NULL)
return STREAM_UNSUPORTED;
for(k=0; k<d->cur_pgc->nr_of_cells; k++)
- d->cell_times_table[k] = dvdtimetomsec(&d->cur_pgc->cell_playback[k].playback_time);
+ d->cell_times_table[k] = mp_dvdtimetomsec(&d->cur_pgc->cell_playback[k].playback_time);
list_chapters(d->cur_pgc);
// ... (unimplemented)