Mercurial > mplayer.hg
view TOOLS/vobshift.py @ 32969:ad1a232df994
Make slabel work.
It is amazing that so far no skin is using a slabel (static label), but the
reason is quite simple. Former versions of the GUI crashed when rendering a
slabel.
The current GUI recognizes the malloc error but can't render the slabel
due to (probable) lack of memory.
An item that shall be fnt-rendered must have a valid item width.
Additionally, a break was missing which caused a slabel that would have been
already handled to erroneously run through the dlabel handling as well.
author | ib |
---|---|
date | Tue, 08 Mar 2011 15:29:19 +0000 |
parents | 0f1b5b68af32 |
children |
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()