diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-07-27 18:47:44 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-07-27 18:47:44 +0000 |
commit | 63e8a30682450ba39eb94cff94f030d00d266e5e (patch) | |
tree | 7194e6fced4f1ff34ec111b2d4f123dc461886df /stream/vcd_read_fbsd.h | |
parent | fec1bd1a56ce53653dccce632e0e2092535d4c61 (diff) | |
download | mpv-63e8a30682450ba39eb94cff94f030d00d266e5e.tar.bz2 mpv-63e8a30682450ba39eb94cff94f030d00d266e5e.tar.xz |
Simplify track length calculation
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23881 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream/vcd_read_fbsd.h')
-rw-r--r-- | stream/vcd_read_fbsd.h | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/stream/vcd_read_fbsd.h b/stream/vcd_read_fbsd.h index 2075b23046..83afeb542d 100644 --- a/stream/vcd_read_fbsd.h +++ b/stream/vcd_read_fbsd.h @@ -135,7 +135,7 @@ vcd_read_toc(int fd) { struct ioc_toc_header tochdr; mp_vcd_priv_t* vcd; - int i, min = 0, sec = 0, frame = 0; + int i, last_startsect; if (ioctl(fd, CDIOREADTOCHEADER, &tochdr) == -1) { mp_msg(MSGT_OPEN,MSGL_ERR,"read CDROM toc header: %s\n",strerror(errno)); return NULL; @@ -170,26 +170,19 @@ vcd_read_toc(int fd) if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO)) { + int startsect = vcd_get_msf(vcd); if (i > tochdr.starting_track) { - min = TOCADDR(vcd->entry).msf.minute - min; - sec = TOCADDR(vcd->entry).msf.second - sec; - frame = TOCADDR(vcd->entry).msf.frame - frame; - if ( frame < 0 ) - { - frame += 75; - sec --; - } - if ( sec < 0 ) - { - sec += 60; - min --; - } - mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame); + // convert duraion to MSF + vcd_set_msf(vcd, startsect - last_startsect); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, + "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", + i - 1, + TOCADDR(vcd->entry).msf.minute, + TOCADDR(vcd->entry).msf.second, + TOCADDR(vcd->entry).msf.frame); } - min = TOCADDR(vcd->entry).msf.minute; - sec = TOCADDR(vcd->entry).msf.second; - frame = TOCADDR(vcd->entry).msf.frame; + last_startsect = startsect; } } return vcd; |