Ticket #10071: fixes_1.3.2012_for_git_1.3.2012.path

File fixes_1.3.2012_for_git_1.3.2012.path, 30.0 KB (added by t.brackertz@…, 14 years ago)

All fixes mentioned before except the ones concerning audio-formats

Line 
11a2
2> # -*- coding: utf-8 -*-
333c34
4< # ProjectX - 0.90.4.00
5---
6> # ProjectX - >=0.91
738a40,45
8>
9> # All strings in this file should be unicode, not byte string!! They get converted to utf-8 only
10>
11>
12>
13>
14258a266,267
15>
16> text = text.encode("utf-8", "replace")
17272a282
18> write("See mythburn.log for more information.")
19307c317
20< """return the number of CPU's"""
21---
22> """return the number of CPUs"""
23341c351
24< # Escape quotes in a filename
25---
26> # Escape quotes in a command line argument
27343,346c353,356
28< def quoteFilename(filename):
29< filename = filename.replace('"', '\\"')
30< filename = filename.replace('`', '\\`')
31< return '"%s"' % filename
32---
33> def quoteCmdArg(arg):
34> arg = arg.replace('"', '\\"')
35> arg = arg.replace('`', '\\`')
36> return '"%s"' % arg
37417a428,440
38> # Romoves all the objects from a directory
39>
40> def deleteEverythingInFolder(folder):
41> for root, dirs, files in os.walk(folder, topdown=False):
42> for name in files:
43> os.remove(os.path.join(root, name))
44> for name in dirs:
45> if os.path.islink(os.path.join(root, name)):
46> os.remove(os.path.join(root, name))
47> else:
48> os.rmdir(os.path.join(root, name))
49>
50> #############################################################
51436c459,466
52< result = os.system(command)
53---
54> # mytharchivehelper needes this locale to work correctly
55> try:
56> oldlocale = os.environ["LC_ALL"]
57> except:
58> oldlocale = ""
59> os.putenv("LC_ALL", "en_US.UTF-8")
60> result = os.system(command.encode('utf-8'))
61> os.putenv("LC_ALL", oldlocale)
62467,468c497,498
63< command = path_jpeg2yuv[0] + " -n %s -v0 -I p -f %s -j '%s' | %s -b 5000 -a %s -v 1 -f 8 -o '%s'" \
64< % (totalframes, framespersecond, background, path_mpeg2enc[0], aspectratio, tempvideo)
65---
66> command = quoteCmdArg(path_jpeg2yuv[0]) + " -n %s -v0 -I p -f %s -j %s | %s -b 5000 -a %s -v 1 -f 8 -o %s" \
67> % (totalframes, framespersecond, quoteCmdArg(background), quoteCmdArg(path_mpeg2enc[0]), aspectratio, quoteCmdArg(tempvideo))
68473c503
69< command = path_mplex[0] + " -f 8 -v 0 -o '%s' '%s' '%s'" % (tempmovie, tempvideo, music)
70---
71> command = quoteCmdArg(path_mplex[0]) + " -f 8 -v 0 -o %s %s %s" % (quoteCmdArg(tempmovie), quoteCmdArg(tempvideo), quoteCmdArg(music))
72479c509
73< command = path_spumux[0] + " -m dvd -s 0 '%s' < '%s' > '%s'" % (xmlfile, tempmovie, finaloutput)
74---
75> command = quoteCmdArg(path_spumux[0]) + " -m dvd -s 0 %s < %s > %s" % (quoteCmdArg(xmlfile), quoteCmdArg(tempmovie), quoteCmdArg(finaloutput))
761434c1464
77< print "Node = %s, Data = %s" % (k, v)
78---
79> write( "Node = %s, Data = %s" % (k, v))
801436c1466,1472
81< node.appendChild(infoDOM.createTextNode(str(v)))
82---
83> # v may be either an integer. Therefore we have to
84> # convert it to an unicode-string
85> # If it is already a string it is not encoded as all
86> # strings in this script are unicode. As no
87> # encoding-argument is supplied to unicode() it does
88> # nothing in this case.
89> node.appendChild(infoDOM.createTextNode(unicode(v)))
901500c1536
91< cmd += "-i '%s' -f ac3 -ab 192k -ar 48000 '%s'" % (sourcefile, destinationfile)
92---
93> cmd += "-i %s -f ac3 -ab 192k -ar 48000 %s" % (quoteCmdArg(sourcefile), quoteCmdArg(destinationfile))
941594c1630
95< command = os.path.join(scriptpath, "testsubtitlepngs.sh") + " %s/stream.d/spumux.xml" % (os.path.dirname(destination))
96---
97> command = quoteCmdArg(os.path.join(scriptpath, "testsubtitlepngs.sh")) + " " + quoteCmdArg(os.path.dirname(destination) + "/stream.d/spumux.xml")
981600c1636
99< command = path_spumux[0] + " -P %s/stream.d/spumux.xml <%s >%s" % (os.path.dirname(destination), destination, os.path.splitext(destination)[0] + "-sub.mpg")
100---
101> command = quoteCmdArg(path_spumux[0]) + " -P %s <%s >%s" % (quoteCmdArg(os.path.dirname(destination) + "/stream.d/spumux.xml"), quoteCmdArg(destination), quoteCmdArg(os.path.splitext(destination)[0] + "-sub.mpg"))
1021618,1619c1654,1656
103< filename = quoteFilename(filename)
104< command = "mytharchivehelper -q -q --getfileinfo --infile %s --outfile %s --method %d" % (filename, xmlFilename, lenMethod)
105---
106>
107> command = "mytharchivehelper -q -q --getfileinfo --infile %s --outfile %s --method %d" % (quoteCmdArg(filename), quoteCmdArg(xmlFilename), lenMethod)
108>
1091629c1666
110< write("streaminfo.xml :-\n" + infoDOM.toprettyxml(" ", ""), False)
111---
112> write(xmlFilename + ":-\n" + infoDOM.toprettyxml(" ", ""), False)
1131675c1712
114< command = "mythtranscode --mpeg2 --honorcutlist %s --infile %s --outfile %s" % (cutlist_s, localfile, destination)
115---
116> command = "mythtranscode --mpeg2 --honorcutlist %s --infile %s --outfile %s" % (cutlist_s, quoteCmdArg(localfile), quoteCmdArg(destination))
1171677c1714
118< command = "mythtranscode --mpeg2 -i %s -o %s" % (localfile, destination)
119---
120> command = "mythtranscode --mpeg2 --infile %s --outfile %s" % (quoteCmdArg(localfile), quoteCmdArg(destination))
1211680c1717
122< command = "mythtranscode --mpeg2 --honorcutlist --chanid %s --starttime %s --outfile %s" % (chanid, starttime, destination)
123---
124> command = "mythtranscode --mpeg2 --honorcutlist --chanid %s --starttime %s --outfile %s" % (chanid, starttime, quoteCmdArg(destination))
1251682c1719
126< command = "mythtranscode --mpeg2 --chanid %s --starttime %s --outfile %s" % (chanid, starttime, destination)
127---
128> command = "mythtranscode --mpeg2 --chanid %s --starttime %s --outfile %s" % (chanid, starttime, quoteCmdArg(destination))
1291739,1740d1775
130< pxbasename = os.path.splitext(os.path.basename(file))[0]
131<
1321745,1751c1780
133<
134< qdestdir = quoteFilename(folder)
135< qpxbasename = quoteFilename(pxbasename)
136< qfile = quoteFilename(file)
137< qcutlist = os.path.join(folder, "cutlist_x.txt")
138<
139< command = path_projectx[0] + " -id %s" % getStreamList(folder)
140---
141> command = quoteCmdArg(path_projectx[0]) + " %s -id '%s' -set ExternPanel.appendPidToFileName=1 -out %s -name stream" % (quoteCmdArg(file), getStreamList(folder), quoteCmdArg(folder))
1421753,1756c1782
143< command += " -cut %s -out %s -name %s %s" % (qcutlist, qdestdir, qpxbasename, qfile)
144< else:
145< command += " -out %s -name %s %s" % (qdestdir, qpxbasename, qfile)
146<
147---
148> command += " -cut %s" % quoteCmdArg(os.path.join(folder, "cutlist_x.txt"))
1491758d1783
150<
1511768c1793,1849
152< renameProjectXFiles(folder, pxbasename)
153---
154> video, audio1, audio2 = selectStreams(folder)
155> if addSubtitles:
156> subtitles = selectSubtitleStream(folder)
157>
158> videoID_hex = "0x%x" % video[VIDEO_ID]
159> if audio1[AUDIO_ID] != -1:
160> audio1ID_hex = "0x%x" % audio1[AUDIO_ID]
161> else:
162> audio1ID_hex = ""
163> if audio2[AUDIO_ID] != -1:
164> audio2ID_hex = "0x%x" % audio2[AUDIO_ID]
165> else:
166> audio2ID_hex = ""
167> if addSubtitles and subtitles[SUBTITLE_ID] != -1:
168> subtitlesID_hex = "0x%x" % subtitles[SUBTITLE_ID]
169> else:
170> subtitlesID_hex = ""
171>
172>
173> files = os.listdir(folder)
174> for file in files:
175> if file[0:9] == "stream{0x": # don't rename files that have already been renamed
176> PID = file[7:13]
177> SubID = file[19:23]
178> if PID == videoID_hex or SubID == videoID_hex:
179> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.mv2"))
180> elif PID == audio1ID_hex or SubID == audio1ID_hex:
181> os.rename(os.path.join(folder, file), os.path.join(folder, "stream0." + file[-3:]))
182> elif PID == audio2ID_hex or SubID == audio2ID_hex:
183> os.rename(os.path.join(folder, file), os.path.join(folder, "stream1." + file[-3:]))
184> elif PID == subtitlesID_hex or SubID == subtitlesID_hex:
185> if file[-3:] == "sup":
186> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.sup"))
187> else:
188> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.sup.IFO"))
189>
190>
191> # Fallback if assignment and renaming by ID failed
192>
193> files = os.listdir(folder)
194> for file in files:
195> if file[0:9] == "stream{0x": # don't rename files that have already been renamed
196> if not os.path.exists(os.path.join(folder, "stream.mv2")) and file[-3:] == "m2v":
197> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.mv2"))
198> elif not (os.path.exists(os.path.join(folder, "stream0.ac3")) or os.path.exists(os.path.join(folder, "stream0.mp2"))) and file[-3:] == "ac3":
199> os.rename(os.path.join(folder, file), os.path.join(folder, "stream0.ac3"))
200> elif not (os.path.exists(os.path.join(folder, "stream0.ac3")) or os.path.exists(os.path.join(folder, "stream0.mp2"))) and file[-3:] == "mp2":
201> os.rename(os.path.join(folder, file), os.path.join(folder, "stream0.mp2"))
202> elif not (os.path.exists(os.path.join(folder, "stream1.ac3")) or os.path.exists(os.path.join(folder, "stream1.mp2"))) and file[-3:] == "ac3":
203> os.rename(os.path.join(folder, file), os.path.join(folder, "stream1.ac3"))
204> elif not (os.path.exists(os.path.join(folder, "stream1.ac3")) or os.path.exists(os.path.join(folder, "stream1.mp2"))) and file[-3:] == "mp2":
205> os.rename(os.path.join(folder, file), os.path.join(folder, "stream1.mp2"))
206> elif not os.path.exists(os.path.join(folder, "stream.sup")) and file[-3:] == "sup":
207> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.sup"))
208> elif not os.path.exists(os.path.join(folder, "stream.sup.IFO")) and file[-3:] == "IFO":
209> os.rename(os.path.join(folder, file), os.path.join(folder, "stream.sup.IFO"))
210>
2111777c1858
212< command += " --infile %s --ifofile %s --delay 0" % (os.path.join(folder, "stream.sup"), os.path.join(folder, "stream.sup.IFO"))
213---
214> command += " --infile %s --ifofile %s --delay 0" % (quoteCmdArg(os.path.join(folder, "stream.sup")), quoteCmdArg(os.path.join(folder, "stream.sup.IFO")))
2151792,1912d1872
216< # find the required stream files and rename them
217<
218< def renameProjectXFiles(folder, pxbasename):
219<
220< write("renameProjectXFiles start -----------------------------------------", False)
221< logf = open(os.path.join(folder, pxbasename + "_log.txt"))
222< logdata = logf.readlines()
223< logf.close()
224<
225< # find stream PIDs and Files
226< streamIds = []
227< streamFiles = []
228< for line in logdata:
229< tokens = line.split()
230< if len(tokens) > 0:
231< if tokens[0] == "++>":
232< # From ProjectX/resources/pjxresources_en.properties:
233< if tokens[1] == "Mpg":
234< if tokens[2] == "Video:":
235< write("found MPEG video stream %s" % tokens[4], False)
236< streamIds.append(int(tokens[4], 16))
237< if tokens[2] == "Audio:":
238< write("found MPEG audio stream %s" % tokens[4], False)
239< streamIds.append(int(tokens[4], 16))
240< if tokens[1] == "AC3/DTS":
241< write("found AC3/DTS audio stream %s" % tokens[4], False)
242< streamIds.append(int(tokens[4], 16))
243< if tokens[1] == "LPCM":
244< write("found LPCM audio stream %s" % tokens[4], False)
245< streamIds.append(int(tokens[4], 16))
246< if tokens[1] == "Teletext:":
247< write("found Teletext stream %s" % tokens[3], False)
248< streamIds.append(int(tokens[3], 16))
249< if tokens[1] == "Subpicture:":
250< write("found Subpicture stream %s" % tokens[3], False)
251< streamIds.append(int(tokens[3], 16))
252< if tokens[1] == "Generic_VBI:":
253< write("found Generic_VBI stream %s" % tokens[3], False)
254< streamIds.append(int(tokens[3], 16))
255< if tokens[0] == "--->":
256< if tokens[1] == "new":
257< if tokens[2] == "File:":
258< write("found file for stream 0x%x, %s" % (streamIds[len(streamIds)-1], tokens[3]), False)
259< streamFiles.append(tokens[3].replace("'","")) # let's hope the path never has a space in it
260< if tokens[0] == "-->":
261< if tokens[1] == "stream":
262< if tokens[2] == "omitted":
263< write("stream 0x%x omitted" % streamIds[len(streamIds)-1], False)
264< streamFiles.append("")
265<
266< write("streadmIds=%s" % streamIds)
267< write("streamFiles=%s" % streamFiles)
268<
269< # choose which streams we need
270< video, audio1, audio2 = selectStreams(folder)
271<
272< if getFileType(folder) == "mpeg":
273< videoID = video[VIDEO_ID] & 255
274< audio1ID = audio1[AUDIO_ID] & 255
275< audio2ID = audio2[AUDIO_ID] & 255
276< else:
277< videoID = video[VIDEO_ID]
278< audio1ID = audio1[AUDIO_ID]
279< audio2ID = audio2[AUDIO_ID]
280<
281< # sanity check - we should have a file for each ID
282< if len(streamIds) == len(streamFiles):
283< # loop thought the available streams looking for the ones we want
284< for stream in streamIds:
285< write("got stream: %d" % stream, False)
286< if stream == videoID:
287< write("found video streamID", False)
288< if os.path.exists(streamFiles[streamIds.index(stream)]):
289< write("found video stream file", False)
290< os.rename(streamFiles[streamIds.index(stream)], os.path.join(folder, "stream.mv2"))
291<
292< if stream == audio1ID:
293< write("found audio1 streamID", False)
294< if os.path.exists(streamFiles[streamIds.index(stream)]):
295< write("found audio1 stream file", False)
296< if audio1[AUDIO_CODEC] == "AC3":
297< os.rename(streamFiles[streamIds.index(stream)], os.path.join(folder, "stream0.ac3"))
298< else:
299< os.rename(streamFiles[streamIds.index(stream)], os.path.join(folder, "stream0.mp2"))
300<
301< if stream == audio2ID:
302< write("found audio2 streamID", False)
303< if os.path.exists(streamFiles[streamIds.index(stream)]):
304< write("found audio2 stream file", False)
305< if audio2[AUDIO_CODEC] == "AC3":
306< os.rename(streamFiles[streamIds.index(stream)], os.path.join(folder, "stream1.ac3"))
307< else:
308< os.rename(streamFiles[streamIds.index(stream)], os.path.join(folder, "stream1.mp2"))
309<
310< # final chance to find the correct stream files
311< if not os.path.exists(os.path.join(folder, "stream.mv2")):
312< if os.path.exists(os.path.join(folder, pxbasename + ".m2v")):
313< os.rename(os.path.join(folder, pxbasename + ".m2v"), os.path.join(folder, "stream.mv2"))
314<
315< if not os.path.exists(os.path.join(folder, "stream0.mp2")) or not os.path.exists(os.path.join(folder, "stream0.ac3")):
316< if os.path.exists(os.path.join(folder, pxbasename + ".mp2")):
317< os.rename(os.path.join(folder, pxbasename + ".mp2"), os.path.join(folder, "stream0.mp2"))
318< if os.path.exists(os.path.join(folder, pxbasename + ".ac3")):
319< os.rename(os.path.join(folder, pxbasename + ".ac3"), os.path.join(folder, "stream0.ac3"))
320<
321< if not os.path.exists(os.path.join(folder, "stream1.mp2")) or not os.path.exists(os.path.join(folder, "stream1.ac3")):
322< if os.path.exists(os.path.join(folder, pxbasename + "[1].mp2")):
323< os.rename(os.path.join(folder, pxbasename + "[1].mp2"), os.path.join(folder, "stream1.mp2"))
324< if os.path.exists(os.path.join(folder, pxbasename + "[1].ac3")):
325< os.rename(os.path.join(folder, pxbasename + "[1].ac3"), os.path.join(folder, "stream1.ac3"))
326<
327< # do we have any subtitle files
328< if os.path.exists(os.path.join(folder, pxbasename + ".sup")):
329< os.rename(os.path.join(folder, pxbasename + ".sup"), os.path.join(folder, "stream.sup"))
330<
331< if os.path.exists(os.path.join(folder, pxbasename + ".sup.IFO")):
332< os.rename(os.path.join(folder, pxbasename + ".sup.IFO"), os.path.join(folder, "stream.sup.IFO"))
333<
334< write("renameProjectXFiles end -----------------------------------------", False)
335<
336< #############################################################
3371983,1985c1943
338< source = quoteFilename(source)
339<
340< command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile %s" % (source, seconds, destination)
341---
342> command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile %s" % (quoteCmdArg(source), seconds, quoteCmdArg(destination))
3432008,2010c1966,1967
344< source = quoteFilename(source)
345<
346< command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile %s" % (source, thumbList, destination)
347---
348> command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile %s" % (quoteCmdArg(source), thumbList, quoteCmdArg(destination))
349> write(command)
3502039c1996
351< value = quoteFilename(source)
352---
353> value = quoteCmdArg(source)
3542041c1998
355< value = quoteFilename(destvideofile)
356---
357> value = quoteCmdArg(destvideofile)
3582095c2052
359< pass1 = string.replace(pass1, "%passlogfile", passLog)
360---
361> pass1 = string.replace(pass1, "%passlogfile", quoteCmdArg(passLog))
3622217c2174
363< command += "-f s16le -ar %s -ac %s -i %s " % (samplerate, channels, os.path.join(folder, "audout"))
364---
365> command += "-f s16le -ar %s -ac %s -i %s " % (samplerate, channels, quoteCmdArg(os.path.join(folder, "audout")))
3662219c2176
367< command += "-i %s " % os.path.join(folder, "vidout")
368---
369> command += "-i %s " % quoteCmdArg(os.path.join(folder, "vidout"))
3702227c2184
371< command += "-f dvd %s" % quoteFilename(destvideofile)
372---
373> command += "-f dvd %s" % quoteCmdArg(destvideofile)
3742264,2267c2221,2224
375< command = path_mkisofs[0] + ' -dvd-video '
376< command += ' -V ' + quoteFilename(title)
377< command += ' -o ' + os.path.join(getTempPath(), 'mythburn.iso')
378< command += " " + os.path.join(getTempPath(),'dvd')
379---
380> command = quoteCmdArg(path_mkisofs[0]) + ' -dvd-video '
381> command += ' -V ' + quoteCmdArg(title)
382> command += ' -o ' + quoteCmdArg(os.path.join(getTempPath(), 'mythburn.iso'))
383> command += " " + quoteCmdArg(os.path.join(getTempPath(),'dvd'))
3842282d2238
385< checkCancelFlag()
3862284,2286c2240
387< finished = False
388< tries = 0
389< while not finished and tries < 10:
390---
391> def drivestatus():
3922288c2242
393< drivestatus = ioctl(f,CDROM.CDROM_DRIVE_STATUS, 0)
394---
395> return ioctl(f,CDROM.CDROM_DRIVE_STATUS, 0)
3962289a2244,2285
397> def displayneededdisktype():
398> if mediatype == DVD_SL:
399> write("Please insert an empty single-layer disc (DVD+R or DVD-R).")
400> if mediatype == DVD_DL:
401> write("Please insert an empty double-layer disc (DVD+R DL or DVD-R DL).")
402> if mediatype == DVD_RW:
403> write("Please insert a rewritable disc (DVD+RW or DVD-RW).")
404> def opendrive(drivepath):
405> # Open the Tray, if there is one.
406> result = runCommand('eject ' + quoteCmdArg(drivepath))
407> if result == 0:
408> return True
409> else:
410> # try another method
411> try:
412> f = os.open(drivepath, os.O_RDONLY | os.O_NONBLOCK)
413> r = ioctl(f,CDROM.CDROMEJECT, 0)
414> os.close(f)
415> return True
416> except:
417> write("Failed to eject the disc!")
418> return False
419> def waitForDrive():
420> tries = 0
421> while drivestatus() == CDROM.CDS_DRIVE_NOT_READY:
422> write("Waiting for drive")
423> time.sleep(5)
424> tries += 1
425> if tries > 6:
426> # Try a hard reset if the device is still not ready
427> write("Trying a hard-reset of the device")
428> f = os.open(dvddrivepath, os.O_RDONLY | os.O_NONBLOCK)
429> ioctl(f,CDROM.CDROMEJECT, 0)
430> os.close(f);
431> tries = 0
432> checkCancelFlag()
433>
434>
435> finished = False
436> while not finished:
437> # Maybe the user has no appropriate medium or something alike. Give her the chance to cancel.
438> checkCancelFlag()
4392291c2287,2290
440< if drivestatus == CDROM.CDS_DISC_OK or drivestatus == CDROM.CDS_NO_INFO:
441---
442> # If drive needs some time (for example to close the tray) give it to it
443> waitForDrive()
444>
445> if drivestatus() == CDROM.CDS_DISC_OK or drivestatus() == CDROM.CDS_NO_INFO:
4462295c2294
447< runCommand("pumount " + dvddrivepath);
448---
449> runCommand("pumount " + quoteCmdArg(dvddrivepath));
4502297,2309d2295
451< if mediatype == DVD_RW and erasedvdrw == True:
452< command = path_growisofs[0] + " -dvd-compat "
453< if drivespeed != 0:
454< command += "-speed=%d " % drivespeed
455< command += " -use-the-force-luke -Z " + dvddrivepath
456< command += " -dvd-video -V '" + title.replace("'", "'\\''") + "' "
457< command += os.path.join(getTempPath(),'dvd')
458< else:
459< command = path_growisofs[0] + " -dvd-compat "
460< if drivespeed != 0:
461< command += "-speed=%d " % drivespeed
462< command += " -Z " + dvddrivepath + " -dvd-video -V '" + title.replace("'", "'\\''") + "' "
463< command += os.path.join(getTempPath(),'dvd')
4642310a2297,2302
465> command = quoteCmdArg(path_growisofs[0]) + " -dvd-compat"
466> if drivespeed != 0:
467> command += " -speed=%d" % drivespeed
468> if mediatype == DVD_RW and erasedvdrw == True:
469> command += " -use-the-force-luke"
470> command += " -Z " + quoteCmdArg(dvddrivepath) + " -dvd-video -V " + quoteCmdArg(title) + " " + quoteCmdArg(os.path.join(getTempPath(),'dvd'))
4712315,2323c2307,2339
472< if result != 0:
473< write("-"*60)
474< write("ERROR: Failed while running growisofs.")
475< write("Result %d, Command was: %s" % (result, command))
476< write("Please check the troubleshooting section of the README for ways to fix this error")
477< write("-"*60)
478< write("")
479< sys.exit(1)
480< finished = True
481---
482> if result == 0:
483> finished = True
484> else:
485> if result == 252:
486> write("-"*60)
487> write("You probably inserted a medium of wrong type.")
488> elif (result == 156):
489> write("-"*60)
490> write("You probably inserted a non-empty, corrupt or too small medium.")
491> elif (result == 144):
492> write("-"*60)
493> write("You inserted a non-empty medium.")
494> else:
495> write("-"*60)
496> write("ERROR: Failed while running growisofs.")
497> write("Result %d, Command was: %s" % (result, command))
498> write("Please check mythburn.log for further information")
499> write("-"*60)
500> write("")
501> write("Going to try it again until canceled by user:")
502> write("-"*60)
503> write("")
504> displayneededdisktype()
505>
506> # eject the disc
507> waitForDrive()
508> if os.path.ismount(dvddrivepath):
509> try:
510> runCommand("pumount " + quoteCmdArg(dvddrivepath));
511> except:
512> write("Failed to unmount the disc! "
513> "Maybe the media monitor has mounted it")
514> opendrive(dvddrivepath)
5152325,2332d2340
516< try:
517< # eject the burned disc
518< f = os.open(dvddrivepath, os.O_RDONLY | os.O_NONBLOCK)
519< r = ioctl(f,CDROM.CDROMEJECT, 0)
520< os.close(f)
521< except:
522< write("Failed to eject the disc! "
523< "Maybe the media monitor has mounted it")
5242334,2335c2342,2343
525< elif drivestatus == CDROM.CDS_TRAY_OPEN:
526< # Give the user 10secs to close the Tray
527---
528> elif drivestatus() == CDROM.CDS_TRAY_OPEN:
529> displayneededdisktype()
5302337,2355c2345,2351
531< time.sleep(10)
532< elif drivestatus == CDROM.CDS_NO_DISC:
533< # Open the Tray, if there is one.
534< write("Opening tray to get it fed with a DVD.")
535< f = os.open(dvddrivepath, os.O_RDONLY | os.O_NONBLOCK)
536< ioctl(f,CDROM.CDROMEJECT, 0)
537< os.close(f);
538< elif drivestatus == CDROM.CDS_DRIVE_NOT_READY:
539< # Try a hard reset
540< write("Trying a hard-reset of the device")
541< f = os.open(dvddrivepath, os.O_RDONLY | os.O_NONBLOCK)
542< ioctl(f,CDROM.CDROMEJECT, 0)
543< os.close(f);
544<
545< time.sleep(1)
546< tries += 1
547<
548< if not finished:
549< fatalError("Tried 10 times to get a good status from DVD drive - Giving up!")
550---
551> # Wait until user closes tray or cancels
552> while drivestatus() == CDROM.CDS_TRAY_OPEN:
553> checkCancelFlag()
554> time.sleep(5)
555> elif drivestatus() == CDROM.CDS_NO_DISC:
556> displayneededdisktype()
557> opendrive(dvddrivepath)
5582366c2362
559< command = "mythreplex --demux --fix_sync -t TS -o %s " % (folder + "/stream")
560---
561> command = "mythreplex --demux --fix_sync -t TS -o %s " % quoteCmdArg(folder + "/stream")
5622386c2382
563< command = "mythreplex --demux --fix_sync -o %s " % (folder + "/stream")
564---
565> command = "mythreplex --demux --fix_sync -o %s " % quoteCmdArg(folder + "/stream")
5662406c2402
567< mediafile = quoteFilename(mediafile)
568---
569> mediafile = quoteCmdArg(mediafile)
5702423c2419
571< command = path_M2VRequantiser[0]
572---
573> command = quoteCmdArg(path_M2VRequantiser[0])
5742426,2427c2422,2423
575< command += " < %s " % source
576< command += " > %s " % destination
577---
578> command += " < %s " % quoteCmdArg(source)
579> command += " > %s " % quoteCmdArg(destination)
5802430a2427,2428
581> if result<>0:
582> fatalError("Failed while running M2VRequantiser. Command was %s" % command)
5832437,2439d2434
584<
585< if result<>0:
586< fatalError("Failed while running M2VRequantiser. Command was %s" % command)
5873198c3193
588< command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile '%s' --framecount %d" % (inputfile, starttime, outputfile, frames)
589---
590> command = "mytharchivehelper -q -q --createthumbnail --infile %s --thumblist '%s' --outfile %s --framecount %d" % (quoteCmdArg(inputfile), starttime, quoteCmdArg(outputfile), frames)
5914064c4059
592< # 5. if there are more that one stream with the chosen language we use the one with the lowest PID
593---
594> # 5. if there are more than one stream with the chosen language we use the one with the lowest PID
5954788c4783
596< res = runCommand("mytharchivehelper -q -q --isremote --infile " + quoteFilename(tmpfile))
597---
598> res = runCommand("mytharchivehelper -q -q --isremote --infile " + quoteCmdArg(tmpfile))
5994853,4855d4847
600< #Ensure the destination dvd folder is empty
601< if doesFileExist(os.path.join(getTempPath(),"dvd")):
602< deleteAllFilesInFolder(os.path.join(getTempPath(),"dvd"))
6034865c4857
604< deleteAllFilesInFolder(getTempPath())
605---
606> deleteEverythingInFolder(getTempPath())
6074871,4876d4862
608< #If it already exists destroy it to remove previous debris
609< if os.path.exists(localCopyFolder):
610< #Remove all the files first
611< deleteAllFilesInFolder(localCopyFolder)
612< #Remove the folder
613< os.rmdir (localCopyFolder)
6144890,4903d4875
615< #If it already exists destroy it to remove previous debris
616< if os.path.exists(folder):
617< #Remove all the files first
618< deleteAllFilesInFolder(folder)
619< subtitlefolder = os.path.join(folder, "stream.d")
620< if os.path.exists(subtitlefolder):
621< deleteAllFilesInFolder(subtitlefolder)
622< os.rmdir(subtitlefolder)
623< previewfolder = os.path.join(folder, "preview")
624< if os.path.exists(previewfolder):
625< deleteAllFilesInFolder(previewfolder)
626< os.rmdir(previewfolder)
627< #Remove the folder
628< os.rmdir (folder)
6294990,4992c4962,4976
630< # convert to ascii and truncate to 32 chars
631< title = unicodedata.normalize('NFKD', title).encode('ASCII', 'ignore')
632< title = title[:32]
633---
634> # replace all non-ascii-cahracters
635> title.encode('ascii', 'replace').decode('ascii', 'replace')
636> title.strip()
637> # replace not-allowed characters
638> index = 0
639> title_new = ''
640> while (index < len(title)) and (index<=7):
641> if title[index].isalnum and title[index] != ' ':
642> title_new += title[index]
643> else:
644> title_new += '_'
645> index = index + 1
646> title = title_new.upper()
647> if len(title) < 1:
648> title = 'UNNAMED'