Mercurial > mplayer.hg
view TOOLS/vobshift.py @ 16524:83d101e1bedb
Prints the number of tracks and MSF length for each track of an audio CD,
prints ID_CDDA_TRACK=N output showing the currently played track number
when -identify is given.
Patch by kiriuja < mplayer TIRET patches CHEZ en TIRET directo POIS net >
Doxygen comments by Guillaume POIRIER
Original thread:
Date: Sep 11, 2005 10:49 PM
Subject: Re: [MPlayer-dev-eng] [PATCH] -identify audio CD tracks
author | gpoirier |
---|---|
date | Mon, 19 Sep 2005 18:22:09 +0000 |
parents | 96b84e3a0d96 |
children | 0f1b5b68af32 |
line wrap: on
line source
#!/usr/bin/env python #usage: # # vobshift.py in.idx out.idx -8.45 # # this will read in in.idx,shift it by 8.45 seconds back, # and save it as out.idx # # license: i don't care ;) # import datetime import sys def tripletize(line): begin = line[:11] middle = line[11:23] end = line[23:] return (begin,middle,end) def text2delta(t): h = int( t[0:2] ) m = int( t[3:5] ) s = int( t[6:8] ) milli = int( t[9:12] ) return datetime.timedelta(hours=h,minutes=m,seconds=s,milliseconds=milli) def delta2text(d): t = str(d) milli = t[8:11] if len(milli) == 0: #fix for .000 seconds milli = '000' return '0'+t[:7]+':'+milli def shift(line,seconds): triplet = tripletize(line) base = text2delta(triplet[1]) base = base + datetime.timedelta(seconds=seconds) base = delta2text(base) return triplet[0]+base+triplet[2] INFILE =sys.argv[1] OUTFILE =sys.argv[2] DIFF =float(sys.argv[3]) o = open(OUTFILE,'wt') for line in open(INFILE): if line.startswith('timestamp'): line = shift(line,DIFF) o.write(line) o.close()