1 | 1a2,4 |
---|
2 | > # -*- coding: utf-8 -*- |
---|
3 | > # This 'coding utf-8' line was suggested by the konqueror embedded editor |
---|
4 | > |
---|
5 | 27,28c30,32 |
---|
6 | < #Optional (only needed for tcrequant) |
---|
7 | < #transcode - v1.0.2 |
---|
8 | --- |
---|
9 | > #Optional for shrink-to-fit requantisation |
---|
10 | > #M2VRequantiser (from flexion, based on the newer code from Metakine) |
---|
11 | > #replaces the deprecated tcrequant from transcode - v1.0.2 |
---|
12 | 41c45,46 |
---|
13 | < VERSION="0.1.20090139-1" |
---|
14 | --- |
---|
15 | > VERSION="0.1.20090139-1_jp_for_mp2, bitrate-capped_requant" |
---|
16 | > |
---|
17 | 57c62,63 |
---|
18 | < defaultEncodingProfile = "SP" |
---|
19 | --- |
---|
20 | > # defaultEncodingProfile = "SP" |
---|
21 | > defaultEncodingProfile = "NONE" |
---|
22 | 96a103 |
---|
23 | > #dvdrsize=(400,8106) # for quicker tests |
---|
24 | 150,151c157,160 |
---|
25 | < docreateiso = False |
---|
26 | < doburn = True |
---|
27 | --- |
---|
28 | > # docreateiso = False |
---|
29 | > # doburn = True |
---|
30 | > docreateiso = True |
---|
31 | > doburn = False |
---|
32 | 246,247c255,260 |
---|
33 | < progressfile.write(time.strftime("%Y-%m-%d %H:%M:%S ") + text + "\n") |
---|
34 | < progressfile.flush() |
---|
35 | --- |
---|
36 | > if len(text)<30 : |
---|
37 | > progressfile.write(time.strftime("%H:%M:%S %Y-%m-%d ") + text + "\n") |
---|
38 | > else: |
---|
39 | > progressfile.write(time.strftime("%H:%M:%S ") + text + "\n") |
---|
40 | > |
---|
41 | > progressfile.flush() |
---|
42 | 464a478,484 |
---|
43 | > # Truncate to even value ( to silence 'odd y-coordinate' complaints) |
---|
44 | > |
---|
45 | > def even(num): |
---|
46 | > evennum = int(num / 2) * 2 |
---|
47 | > return evennum |
---|
48 | > |
---|
49 | > ############################################################# |
---|
50 | 488c508,509 |
---|
51 | < command = path_jpeg2yuv[0] + " -n %s -v0 -I p -f %s -j '%s' | %s -b 5000 -a %s -v 1 -f 8 -o '%s'" \ |
---|
52 | --- |
---|
53 | > command = "ionice -c3 " |
---|
54 | > command += path_jpeg2yuv[0] + " -n %s -v 0 -I p -f %s -j '%s' | %s -b 5000 -a %s -v 0 -f 8 -o '%s'" \ |
---|
55 | 492c513 |
---|
56 | < fatalError("Failed while running jpeg2yuv - %s" % command) |
---|
57 | --- |
---|
58 | > fatalError("Failed while running: %s" % command) |
---|
59 | 494c515,516 |
---|
60 | < command = path_mplex[0] + " -f 8 -v 0 -o '%s' '%s' '%s'" % (tempmovie, tempvideo, music) |
---|
61 | --- |
---|
62 | > command ="ionice -c3 " |
---|
63 | > command += path_mplex[0] + " -f 8 -v 0 -o '%s' '%s' '%s'" % (tempmovie, tempvideo, music) |
---|
64 | 497c519 |
---|
65 | < fatalError("Failed while running mplex - %s" % command) |
---|
66 | --- |
---|
67 | > fatalError("Failed while running: %s" % command) |
---|
68 | 500c522,523 |
---|
69 | < command = path_spumux[0] + " -m dvd -s 0 '%s' < '%s' > '%s'" % (xmlfile, tempmovie, finaloutput) |
---|
70 | --- |
---|
71 | > command ="ionice -c3 " |
---|
72 | > command += path_spumux[0] + " -m dvd -s 0 '%s' < '%s' > '%s'" % (xmlfile, tempmovie, finaloutput) |
---|
73 | 503c526 |
---|
74 | < fatalError("Failed while running spumux - %s" % command) |
---|
75 | --- |
---|
76 | > fatalError("Failed while running: %s" % command) |
---|
77 | 1878c1901,1902 |
---|
78 | < '-v', '0', |
---|
79 | --- |
---|
80 | > '-b', '500', '-r', '16000', |
---|
81 | > '-v', '1', |
---|
82 | 1900c1924 |
---|
83 | < fatalError("mplex failed with result %d" % result) |
---|
84 | --- |
---|
85 | > nonfatalError("mplex failed with result %d" % result) |
---|
86 | 1911c1935,1936 |
---|
87 | < command = path_spumux[0] + " -P %s/stream.d/spumux.xml <%s >%s" % (os.path.dirname(destination), destination, os.path.splitext(destination)[0] + "-sub.mpg") |
---|
88 | --- |
---|
89 | > command ="ionice -c3 " |
---|
90 | > command += path_spumux[0] + " -P %s/stream.d/spumux.xml <%s >%s" % (os.path.dirname(destination), destination, os.path.splitext(destination)[0] + "-sub.mpg") |
---|
91 | 2056c2081,2082 |
---|
92 | < command = path_projectx[0] + " -id %s" % getStreamList(folder) |
---|
93 | --- |
---|
94 | > command ="ionice -c3 " |
---|
95 | > command += path_projectx[0] + " -id %s" % getStreamList(folder) |
---|
96 | 2081c2107,2108 |
---|
97 | < command = "mytharchivehelper --sup2dast " |
---|
98 | --- |
---|
99 | > command ="ionice -c3 " |
---|
100 | > command += "mytharchivehelper --sup2dast " |
---|
101 | 2223,2228c2250,2255 |
---|
102 | < h = int(time[0:2]) * 3600 * 90000 |
---|
103 | < m = int(time[3:5]) * 60 * 90000 |
---|
104 | < s = int(time[6:8]) * 90000 |
---|
105 | < ms = int(time[9:11]) |
---|
106 | < |
---|
107 | < return h + m + s + ms |
---|
108 | --- |
---|
109 | > h = int(time[0:2]) |
---|
110 | > m = int(time[3:5]) + 60 * h |
---|
111 | > s = int(time[6:8]) + 60 * m |
---|
112 | > ms = int(time[9:11]) + 1000 * s |
---|
113 | > # original clumsy and did not convert ms JP |
---|
114 | > return ms * 90 |
---|
115 | 2292c2319,2320 |
---|
116 | < command = "mytharchivehelper -t %s '%s' %s" % (source, seconds, destination) |
---|
117 | --- |
---|
118 | > command ="ionice -c3 " |
---|
119 | > command += "mytharchivehelper -t %s '%s' %s" % (source, seconds, destination) |
---|
120 | 2558,2559c2586,2593 |
---|
121 | < checkCancelFlag() |
---|
122 | < result=os.spawnlp(os.P_WAIT, path_dvdauthor[0],path_dvdauthor[1],'-x',os.path.join(getTempPath(),'dvdauthor.xml')) |
---|
123 | --- |
---|
124 | > # checkCancelFlag() |
---|
125 | > # result=os.spawnlp(os.P_WAIT, path_dvdauthor[0],path_dvdauthor[1],'-x',os.path.join(getTempPath(),'dvdauthor.xml')) |
---|
126 | > command ="ionice -c3 " |
---|
127 | > command += path_dvdauthor[0] + ' -x ' + os.path.join(getTempPath(),'dvdauthor.xml') |
---|
128 | > |
---|
129 | > write("Command is %s " % command) |
---|
130 | > result = runCommand(command) |
---|
131 | > |
---|
132 | 2561c2595 |
---|
133 | < fatalError("Failed while running dvdauthor. Result: %d" % result) |
---|
134 | --- |
---|
135 | > nonfatalError("Failed while running dvdauthor. Result: %d" % result) |
---|
136 | 2570c2604,2606 |
---|
137 | < command = path_mkisofs[0] + ' -dvd-video ' |
---|
138 | --- |
---|
139 | > # command = path_mkisofs[0] + ' -dvd-video -quiet ' |
---|
140 | > command ="ionice -c3 " |
---|
141 | > command += path_mkisofs[0] + ' -dvd-video ' |
---|
142 | 2574a2611 |
---|
143 | > write("Command is %s " % command) |
---|
144 | 2581c2618,2621 |
---|
145 | < write("Finished creating ISO image") |
---|
146 | --- |
---|
147 | > vobsize = os.path.getsize(os.path.join(getTempPath(), 'mythburn.iso')) |
---|
148 | > write("Finished creating mythburn.iso, size %.2f Mb." % (float(vobsize)/(1024.0*1024.0)) ) |
---|
149 | > write("DVD capacities are %s, %s Mb " % ( dvdrsize[0], dvdrsize[1]) ) |
---|
150 | > |
---|
151 | 2589d2628 |
---|
152 | < |
---|
153 | 2672c2711,2712 |
---|
154 | < command = "mythreplex --demux --fix_sync -t TS -o %s " % (folder + "/stream") |
---|
155 | --- |
---|
156 | > command ="ionice -c3 " |
---|
157 | > command += "mythreplex --demux --fix_sync -t TS -o %s " % (folder + "/stream") |
---|
158 | 2688c2728,2729 |
---|
159 | < command = "mythreplex --demux --fix_sync -o %s " % (folder + "/stream") |
---|
160 | --- |
---|
161 | > command ="ionice -c3 " |
---|
162 | > command += "mythreplex --demux --fix_sync -o %s " % (folder + "/stream") |
---|
163 | 2710c2751 |
---|
164 | < fatalError("Failed while running mythreplex. Command was %s" % command) |
---|
165 | --- |
---|
166 | > fatalError("Failed while running: %s " % command) |
---|
167 | 2715,2716d2755 |
---|
168 | < def runTcrequant(source,destination,percentage): |
---|
169 | < checkCancelFlag() |
---|
170 | 2718,2725c2757,2783 |
---|
171 | < write (path_tcrequant[0] + " %s %s %s" % (source,destination,percentage)) |
---|
172 | < result=os.spawnlp(os.P_WAIT, path_tcrequant[0],path_tcrequant[1], |
---|
173 | < "-i",source, |
---|
174 | < "-o",destination, |
---|
175 | < "-d","2", |
---|
176 | < "-f","%s" % percentage) |
---|
177 | < if result<>0: |
---|
178 | < fatalError("Failed while running tcrequant") |
---|
179 | --- |
---|
180 | > def runTcrequant(source,destination,factor): |
---|
181 | > mega=1024.0*1024.0 |
---|
182 | > M2Vsize0 = os.path.getsize(source) |
---|
183 | > write("Initial M2Vsize is %.2f Mb , target is %.2f Mb" % ( (float(M2Vsize0)/mega), (float(M2Vsize0)/(factor*mega)) )) |
---|
184 | > |
---|
185 | > # path_tcrequant must be defined in frontend setup as eg M2VRequantiser, *NOT* tcrequant |
---|
186 | > # command = "M2VRequantiser %s " % factor |
---|
187 | > command ="ionice -c3 " |
---|
188 | > command += path_tcrequant[0] |
---|
189 | > command += " %.5f " % factor |
---|
190 | > command += " %s " % M2Vsize0 |
---|
191 | > command += " < %s " % source |
---|
192 | > command += " > %s " % destination |
---|
193 | > |
---|
194 | > write("Running: " + command) |
---|
195 | > result = runCommand(command) |
---|
196 | > |
---|
197 | > M2Vsize1 = os.path.getsize(destination) |
---|
198 | > |
---|
199 | > write("M2Vsize after requant is %.2f Mb " % (float(M2Vsize1)/mega)) |
---|
200 | > fac1=float(M2Vsize0) / float(M2Vsize1) |
---|
201 | > write("Factor demanded %.5f, achieved %.5f, ratio %.5f " % ( factor, fac1, fac1/factor)) |
---|
202 | > |
---|
203 | > if result<>0: |
---|
204 | > nonfatalError("Error reported from: %s " % command) |
---|
205 | > |
---|
206 | > |
---|
207 | 2743,2744c2801,2802 |
---|
208 | < #Get size of video in MBytes |
---|
209 | < totalvideosize+=os.path.getsize(file) / 1024 / 1024 |
---|
210 | --- |
---|
211 | > #Get size of vobfile in MBytes |
---|
212 | > totalvideosize+=os.path.getsize(file) |
---|
213 | 2748c2806 |
---|
214 | < totalaudiosize+=os.path.getsize(os.path.join(folder,"stream0.ac3")) / 1024 / 1024 |
---|
215 | --- |
---|
216 | > totalaudiosize+=os.path.getsize(os.path.join(folder,"stream0.ac3")) |
---|
217 | 2750c2808 |
---|
218 | < totalaudiosize+=os.path.getsize(os.path.join(folder,"stream0.mp2")) / 1024 / 1024 |
---|
219 | --- |
---|
220 | > totalaudiosize+=os.path.getsize(os.path.join(folder,"stream0.mp2")) |
---|
221 | 2754c2812 |
---|
222 | < totalaudiosize+=os.path.getsize(os.path.join(folder,"stream1.ac3")) / 1024 / 1024 |
---|
223 | --- |
---|
224 | > totalaudiosize+=os.path.getsize(os.path.join(folder,"stream1.ac3")) |
---|
225 | 2756c2814 |
---|
226 | < totalaudiosize+=os.path.getsize(os.path.join(folder,"stream1.mp2")) / 1024 / 1024 |
---|
227 | --- |
---|
228 | > totalaudiosize+=os.path.getsize(os.path.join(folder,"stream1.mp2")) |
---|
229 | 2760c2818 |
---|
230 | < totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"chaptermenu-%s.mpg" % filecount)) / 1024 / 1024 |
---|
231 | --- |
---|
232 | > totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"chaptermenu-%s.mpg" % filecount)) |
---|
233 | 2764c2822 |
---|
234 | < totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"details-%s.mpg" % filecount)) / 1024 / 1024 |
---|
235 | --- |
---|
236 | > totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"details-%s.mpg" % filecount)) |
---|
237 | 2768c2826 |
---|
238 | < totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"menu-%s.mpg" % filecount)) / 1024 / 1024 |
---|
239 | --- |
---|
240 | > totalmenusize+=os.path.getsize(os.path.join(getTempPath(),"menu-%s.mpg" % filecount)) |
---|
241 | 2773,2774c2831,2852 |
---|
242 | < ############################################################# |
---|
243 | < # Uses tcrequant if available to shrink the video streams so |
---|
244 | --- |
---|
245 | > ######################################## |
---|
246 | > def total_mv2_brl(files,rate): |
---|
247 | > #returns total size of bitrate-limited m2v files |
---|
248 | > tvsize=0 |
---|
249 | > filecount=0 |
---|
250 | > for node in files: |
---|
251 | > filecount+=1 |
---|
252 | > folder=getItemTempPath(filecount) |
---|
253 | > progduration=getLengthOfVideo(filecount) |
---|
254 | > file=os.path.join(folder,"stream.mv2") |
---|
255 | > progvsize=os.path.getsize(file) |
---|
256 | > progvbitrate=progvsize/progduration |
---|
257 | > if progvbitrate>rate : |
---|
258 | > tvsize+=progduration*rate |
---|
259 | > else: |
---|
260 | > tvsize+=progvsize |
---|
261 | > |
---|
262 | > return tvsize |
---|
263 | > |
---|
264 | > ######################################### |
---|
265 | > |
---|
266 | > # Uses requantiser if available to shrink the video streams so |
---|
267 | 2778a2857,2859 |
---|
268 | > mega=1024.0*1024.0 |
---|
269 | > fudge_pack=1.04 # for mpeg packing |
---|
270 | > fudge_requant=1.05 # for requant shrinkage uncertainty |
---|
271 | 2780a2862 |
---|
272 | > allfiles=totalvideosize+totalaudiosize+totalmenusize |
---|
273 | 2783,2790c2865 |
---|
274 | < write( "Total size of video files, before multiplexing, is %s Mbytes, audio is %s MBytes, menus are %s MBytes." % (totalvideosize,totalaudiosize,totalmenusize)) |
---|
275 | < |
---|
276 | < #Subtract the audio and menus from the size of the disk (we cannot shrink this further) |
---|
277 | < dvdrsize-=totalaudiosize |
---|
278 | < dvdrsize-=totalmenusize |
---|
279 | < |
---|
280 | < #Add a little bit for the multiplexing stream data |
---|
281 | < totalvideosize=totalvideosize*1.08 |
---|
282 | --- |
---|
283 | > write( "Total video %.2f Mb, audio %.2f Mb, menus %.2f Mb." % (totalvideosize/mega,totalaudiosize/mega,totalmenusize/mega)) |
---|
284 | 2792,2793c2867,2878 |
---|
285 | < if dvdrsize<0: |
---|
286 | < fatalError("Audio and menu files are greater than the size of a recordable DVD disk. Giving up!") |
---|
287 | --- |
---|
288 | > #Subtract the audio, menus and packaging overhead from the size of the disk (we cannot shrink this further) |
---|
289 | > mv2space=((dvdrsize*mega-totalmenusize)/fudge_pack)-totalaudiosize |
---|
290 | > |
---|
291 | > if mv2space<0: |
---|
292 | > fatalError("Audio and menu files are too big. No room for video. Giving up!") |
---|
293 | > |
---|
294 | > if totalvideosize>mv2space: |
---|
295 | > write( "Video files are %.1f Mb too big. Need to shrink." % ((totalvideosize - mv2space)/mega) ) |
---|
296 | > |
---|
297 | > #tcrequant (transcode) was an optional install that is now deprecated. |
---|
298 | > #this script requires that path_tcrequant, if not null, leads to M2VRequantiser |
---|
299 | > #it is defined, like the other 'path_ ' parameters, from the frontend media setup screens |
---|
300 | 2795,2803d2879 |
---|
301 | < if totalvideosize>dvdrsize: |
---|
302 | < write( "Need to shrink MPEG2 video files to fit onto recordable DVD, video is %s MBytes too big." % (totalvideosize - dvdrsize)) |
---|
303 | < scalepercentage=totalvideosize/dvdrsize |
---|
304 | < write( "Need to scale by %s" % scalepercentage) |
---|
305 | < |
---|
306 | < if scalepercentage>3: |
---|
307 | < write( "Large scale to shrink, may not work!") |
---|
308 | < |
---|
309 | < #tcrequant (transcode) is an optional install so may not be available |
---|
310 | 2805c2881 |
---|
311 | < fatalError("tcrequant is not available to resize the files. Giving up!") |
---|
312 | --- |
---|
313 | > fatalError("M2VRequantiser is not available to resize the files. Giving up!") |
---|
314 | 2806a2883,2884 |
---|
315 | > vsize=0 |
---|
316 | > duration=0 |
---|
317 | 2809,2816c2887,2936 |
---|
318 | < filecount+=1 |
---|
319 | < runTcrequant(os.path.join(getItemTempPath(filecount),"stream.mv2"),os.path.join(getItemTempPath(filecount),"video.small.m2v"),scalepercentage) |
---|
320 | < os.remove(os.path.join(getItemTempPath(filecount),"stream.mv2")) |
---|
321 | < os.rename(os.path.join(getItemTempPath(filecount),"video.small.m2v"),os.path.join(getItemTempPath(filecount),"stream.mv2")) |
---|
322 | < |
---|
323 | < totalvideosize,totalaudiosize,totalmenusize=calculateFileSizes(files) |
---|
324 | < write( "Total DVD size AFTER TCREQUANT is %s MBytes" % (totalaudiosize + totalmenusize + (totalvideosize*1.05))) |
---|
325 | < |
---|
326 | --- |
---|
327 | > filecount+=1 |
---|
328 | > folder=getItemTempPath(filecount) |
---|
329 | > file=os.path.join(folder,"stream.mv2") |
---|
330 | > vsize+=os.path.getsize(file) |
---|
331 | > duration+=getLengthOfVideo(filecount) |
---|
332 | > |
---|
333 | > #We need to shrink the video files to fit into the space available. It seems sensible |
---|
334 | > #to do this by imposing a common upper limit on the mean video bit-rate of each recording; |
---|
335 | > #this will not further reduce the visual quality of any that were transmitted at lower bit-rates. |
---|
336 | > |
---|
337 | > #Now find the bit-rate limit by iteration between initially defined upper and lower bounds. |
---|
338 | > #The code is based on 'rtbis' from Numerical Recipes by W H Press et al., CUP. |
---|
339 | > |
---|
340 | > #A small multiple of the average input bit-rate should be ok as the initial upper bound, |
---|
341 | > #(although a fixed value or one related to the max value could be used), and zero as the lower bound. |
---|
342 | > #The function relating bit-rate upper limit to total file size is smooth and monotonic, |
---|
343 | > #so there should be no convergence problem. |
---|
344 | > |
---|
345 | > vrLo=0.0 |
---|
346 | > vrHi=3.0*float(vsize)/duration |
---|
347 | > |
---|
348 | > vrate=vrLo |
---|
349 | > vrinc=vrHi-vrLo |
---|
350 | > count=0 |
---|
351 | > |
---|
352 | > while count<30 : |
---|
353 | > count+=1 |
---|
354 | > vrinc=vrinc*0.5 |
---|
355 | > vrtest=vrate+vrinc |
---|
356 | > testsize=total_mv2_brl(files,vrtest) |
---|
357 | > if (testsize<mv2space): |
---|
358 | > vrate=vrtest |
---|
359 | > |
---|
360 | > write("vrate %.3f kb/s, testsize %.4f , mv2space %.4f Mb " % ((vrate)/1000.0, (testsize)/mega, (mv2space)/mega) ) |
---|
361 | > filecount=0 |
---|
362 | > for node in files: |
---|
363 | > filecount+=1 |
---|
364 | > folder=getItemTempPath(filecount) |
---|
365 | > file=os.path.join(folder,"stream.mv2") |
---|
366 | > progvsize=os.path.getsize(file) |
---|
367 | > progduration=getLengthOfVideo(filecount) |
---|
368 | > progvbitrate=progvsize/progduration |
---|
369 | > write( "File %s, size %.2f Mb, rate %.2f, limit %.2f kb/s " %( filecount, float(progvsize)/mega, progvbitrate/1000.0, vrate/1000.0 )) |
---|
370 | > if progvbitrate>vrate : |
---|
371 | > scalefactor=1.0+(fudge_requant*float(progvbitrate-vrate)/float(vrate)) |
---|
372 | > if scalefactor>3.0 : |
---|
373 | > write( "Large shrink factor. You may not like the result! ") |
---|
374 | > runTcrequant(os.path.join(getItemTempPath(filecount),"stream.mv2"),os.path.join(getItemTempPath(filecount),"stream.small.mv2"),scalefactor) |
---|
375 | > os.remove(os.path.join(getItemTempPath(filecount),"stream.mv2")) |
---|
376 | > os.rename(os.path.join(getItemTempPath(filecount),"stream.small.mv2"),os.path.join(getItemTempPath(filecount),"stream.mv2")) |
---|
377 | 2818,2820c2938 |
---|
378 | < dvdrsize-=totalvideosize |
---|
379 | < write( "Video will fit onto DVD. %s MBytes of space remaining on recordable DVD." % dvdrsize) |
---|
380 | < |
---|
381 | --- |
---|
382 | > write( "Unpackaged total %.2f Mb. About %.0f Mb will be unused." % ((allfiles/mega),(mv2space-totalvideosize)/mega)) |
---|
383 | 3116c3234 |
---|
384 | < vob.setAttribute("file",os.path.join(getItemTempPath(itemnum),"final.mpg")) |
---|
385 | --- |
---|
386 | > vob.setAttribute("file",os.path.join(getItemTempPath(itemnum),"final.vob")) |
---|
387 | 3360c3478 |
---|
388 | < vob.setAttribute("file", os.path.join(getItemTempPath(itemNum), "final.mpg")) |
---|
389 | --- |
---|
390 | > vob.setAttribute("file", os.path.join(getItemTempPath(itemNum), "final.vob")) |
---|
391 | 3428c3546,3547 |
---|
392 | < command = "mytharchivehelper -t %s '%s' '%s' %d" % (inputfile, starttime, outputfile, frames) |
---|
393 | --- |
---|
394 | > command ="ionice -c3 " |
---|
395 | > command += "mytharchivehelper -t %s '%s' '%s' %d" % (inputfile, starttime, outputfile, frames) |
---|
396 | 3540c3659 |
---|
397 | < button.setAttribute("y0","%s" % getScaledAttribute(node, "y")) |
---|
398 | --- |
---|
399 | > button.setAttribute("y0","%s" % even(getScaledAttribute(node, "y"))) |
---|
400 | 3543c3662 |
---|
401 | < button.setAttribute("y1","%s" % (getScaledAttribute(node, "y") + |
---|
402 | --- |
---|
403 | > button.setAttribute("y1","%s" % even(getScaledAttribute(node, "y") + |
---|
404 | 3564c3683 |
---|
405 | < button.setAttribute("y0","%s" % getScaledAttribute(node, "y")) |
---|
406 | --- |
---|
407 | > button.setAttribute("y0","%s" % even(getScaledAttribute(node, "y"))) |
---|
408 | 3567c3686 |
---|
409 | < button.setAttribute("y1","%s" % (getScaledAttribute(node, "y") + |
---|
410 | --- |
---|
411 | > button.setAttribute("y1","%s" % even(getScaledAttribute(node, "y") + |
---|
412 | 3585c3704 |
---|
413 | < button.setAttribute("y0","%s" % getScaledAttribute(node, "y")) |
---|
414 | --- |
---|
415 | > button.setAttribute("y0","%s" % even(getScaledAttribute(node, "y"))) |
---|
416 | 3588c3707 |
---|
417 | < button.setAttribute("y1","%s" % (getScaledAttribute(node, "y") + |
---|
418 | --- |
---|
419 | > button.setAttribute("y1","%s" % even(getScaledAttribute(node, "y") + |
---|
420 | 3608c3727 |
---|
421 | < button.setAttribute("y0","%s" % getScaledAttribute(node, "y")) |
---|
422 | --- |
---|
423 | > button.setAttribute("y0","%s" % even(getScaledAttribute(node, "y"))) |
---|
424 | 3611c3730 |
---|
425 | < button.setAttribute("y1","%s" % (getScaledAttribute(node, "y") + |
---|
426 | --- |
---|
427 | > button.setAttribute("y1","%s" % even(getScaledAttribute(node, "y") + |
---|
428 | 3657c3776 |
---|
429 | < node.setAttribute("y0","%d" % int(boundarybox[1])) |
---|
430 | --- |
---|
431 | > node.setAttribute("y0","%d" % even(boundarybox[1])) |
---|
432 | 3659c3778 |
---|
433 | < node.setAttribute("y1","%d" % int(boundarybox[3] + 1)) |
---|
434 | --- |
---|
435 | > node.setAttribute("y1","%d" % even(boundarybox[3] + 2)) |
---|
436 | 3695,3697c3814,3816 |
---|
437 | < menumusic = "menumusic.ac3" |
---|
438 | < if menunode.hasAttribute("music"): |
---|
439 | < menumusic = menunode.attributes["music"].value |
---|
440 | --- |
---|
441 | > menumusic = "menumusic.mp2" |
---|
442 | > # if menunode.hasAttribute("music"): |
---|
443 | > # menumusic = menunode.attributes["music"].value |
---|
444 | 3907,3909c4026,4028 |
---|
445 | < menumusic = "menumusic.ac3" |
---|
446 | < if menunode.hasAttribute("music"): |
---|
447 | < menumusic = menunode.attributes["music"].value |
---|
448 | --- |
---|
449 | > menumusic = "menumusic.mp2" |
---|
450 | > # if menunode.hasAttribute("music"): |
---|
451 | > # menumusic = menunode.attributes["music"].value |
---|
452 | 4102,4104c4221,4223 |
---|
453 | < menumusic = "menumusic.ac3" |
---|
454 | < if detailnode.hasAttribute("music"): |
---|
455 | < menumusic = detailnode.attributes["music"].value |
---|
456 | --- |
---|
457 | > menumusic = "menumusic.mp2" |
---|
458 | > # if detailnode.hasAttribute("music"): |
---|
459 | > # menumusic = detailnode.attributes["music"].value |
---|
460 | 5171c5290 |
---|
461 | < #Check all the files will fit onto a recordable DVD |
---|
462 | --- |
---|
463 | > #Check all the files will fit onto a recordable DVD |
---|
464 | 5178a5298,5299 |
---|
465 | > |
---|
466 | > |
---|
467 | 5189c5310 |
---|
468 | < os.path.join(folder,'final.mpg'), |
---|
469 | --- |
---|
470 | > os.path.join(folder,'final.vob'), |
---|
471 | 5191a5313,5315 |
---|
472 | > |
---|
473 | > |
---|
474 | > |
---|
475 | 5444a5569 |
---|
476 | > |
---|