self.estimatedDiskspace = usedsize
self.length = accumulated_in / 90000
- def getChapterMarks(self):
+ def getChapterMarks(self, template="$h:$m:$s.$t"):
timestamps = [ ]
chapters = [ ]
minutes = self.properties.autochapter.getValue()
else:
chapters = self.chaptermarks
for p in chapters:
- h = p / (90000 * 3600)
- m = p % (90000 * 3600) / (90000 * 60)
- s = p % (90000 * 60) / 90000
- ms = (p % 90000) / 90
- timestamps.append("%d:%02d:%02d.%03d" % (h, m, s, ms))
- print "timestamps:", timestamps
+ timestring = template.replace("$h", str(p / (90000 * 3600)))
+ timestring = timestring.replace("$m", ("%02d" % (p % (90000 * 3600) / (90000 * 60))))
+ timestring = timestring.replace("$s", ("%02d" % (p % (90000 * 60) / 90000)))
+ timestring = timestring.replace("$t", ("%03d" % ((p % 90000) / 90)))
+ timestamps.append(timestring)
return timestamps
\ No newline at end of file
self.currentPID = str(int(line.rstrip()[-6:].rsplit('0x',1)[-1],16))
def haveNewFile(self, file):
- print "[DemuxTask] produced file:", file
+ print "[DemuxTask] produced file:", file, self.currentPID
self.generated_files.append(file)
if self.currentPID in self.relevantAudioPIDs or file.endswith("m2v"):
self.mplex_streamfiles.append(file)
self.t.properties.audiotracks = ConfigSubList()
for x in range(n):
i = audio.getTrackInfo(x)
- language = i.getLanguage()
+ DVB_lang = i.getLanguage()
description = i.getDescription()
pid = str(i.getPID())
if description == "MPEG":
description = "MP2"
- if not languageChoices.langdict.has_key(language):
- language="nolang"
- print "[audiotrack] pid:", pid, "description:", description, "language:", language
+ print "[audiotrack] pid:", pid, "description:", description, "language:", DVB_lang
self.t.properties.audiotracks.append(ConfigSubsection())
self.t.properties.audiotracks[-1].active = ConfigYesNo(default = True)
self.t.properties.audiotracks[-1].format = ConfigFixedText(description)
- self.t.properties.audiotracks[-1].language = ConfigSelection(choices = languageChoices.choices, default=language)
+ self.t.properties.audiotracks[-1].language = ConfigSelection(choices = languageChoices.choices, default=languageChoices.getLanguage(DVB_lang))
self.t.properties.audiotracks[-1].pid = ConfigFixedText(pid)
+ self.t.properties.audiotracks[-1].DVB_lang = ConfigFixedText(DVB_lang)
sAspect = service.info().getInfo(iServiceInformation.sAspect)
if sAspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ):
aspect = "4:3"
self.list.append(getConfigListEntry("DVD " + _("Title"), self.properties.menutitle))
self.list.append(getConfigListEntry("DVD " + _("Description"), self.properties.menusubtitle))
for audiotrack in self.properties.audiotracks:
- pid = audiotrack.pid.getValue()
- self.list.append(getConfigListEntry("burn audio track (%s)" % pid, audiotrack.active))
+ DVB_aud = audiotrack.DVB_lang.getValue() or audiotrack.pid.getValue()
+ self.list.append(getConfigListEntry("burn audio track (%s)" % DVB_aud, audiotrack.active))
if audiotrack.active.getValue():
- self.list.append(getConfigListEntry("audio track (%s) format" % pid, audiotrack.format))
- self.list.append(getConfigListEntry("audio track (%s) language" % pid, audiotrack.language))
+ self.list.append(getConfigListEntry("audio track (%s) format" % DVB_aud, audiotrack.format))
+ self.list.append(getConfigListEntry("audio track (%s) language" % DVB_aud, audiotrack.language))
self.list.append(getConfigListEntry("DVD " + _("Aspect Ratio"), self.properties.aspect))
if self.properties.aspect.getValue() == "16:9":
if len(title.chaptermarks) == 0:
self.list.append(getConfigListEntry(_("Auto chapter split every ? minutes (0=never)"), self.properties.autochapter))
infotext = _("Title") + ': ' + title.DVBname + "\n" + _("Description") + ': ' + title.DVBdescr + "\n" + _("Channel") + ': ' + title.DVBchannel
- chaptermarks = title.getChapterMarks()
+ chaptermarks = title.getChapterMarks(template="$h:$m:$s")
chapters_count = len(chaptermarks)
if chapters_count >= 1:
infotext += ', ' + str(chapters_count+1) + ' ' + _("chapters") + ' ('
def cancel(self):
self.close()
+from Tools.ISO639 import LanguageCodes
class LanguageChoices():
def __init__(self):
- from Tools.ISO639 import LanguageCodes
from Components.Language import language as syslanguage
syslang = syslanguage.getLanguage()[:2]
self.langdict = { }
self.choices.insert(1,(syslang, self.langdict[syslang]))
self.choices.insert(2,("en", self.langdict["en"]))
+ def getLanguage(self, DVB_lang):
+ DVB_lang = DVB_lang.lower()
+ isocodes = [ ]
+ stripwords = ["stereo", "audio", "description", "2ch"]
+ for word in stripwords:
+ DVB_lang = DVB_lang.replace(word,"").strip()
+ for key, val in LanguageCodes.iteritems():
+ if DVB_lang.find(key.lower()) == 0:
+ if len(key) == 2:
+ return key
+ else:
+ DVB_lang = (LanguageCodes[key])[0]
+ elif DVB_lang.find(val[0].lower()) > -1:
+ if len(key) == 2:
+ return key
+ else:
+ DVB_lang = (LanguageCodes[key])[0]
+ for key, val in self.langdict.iteritems():
+ if val == DVB_lang:
+ return key
+ return "nolang"
+
languageChoices = LanguageChoices()
\ No newline at end of file