Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
authorFraxinas <andreas.frisch@multimedia-labs.de>
Thu, 13 Nov 2008 12:01:54 +0000 (13:01 +0100)
committerFraxinas <andreas.frisch@multimedia-labs.de>
Thu, 13 Nov 2008 12:01:54 +0000 (13:01 +0100)
lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py
lib/python/Plugins/Extensions/DVDBurn/Process.py
lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py
lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py

index 26f51e63c5e77dcfcf842a511de262dc22c42c09..94e5c0f5528bf31bbadd8856a58d27a3b6fd29cf 100644 (file)
@@ -136,7 +136,7 @@ class DVDTitle:
                        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()
@@ -148,10 +148,9 @@ class DVDTitle:
                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
index c1ba8632c610edba72d8533829628b4aad15ffca..89ca90fd3c1b0e249ccb3fe51f86b0ebda169343 100644 (file)
@@ -126,7 +126,7 @@ class DemuxTask(Task):
                        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)
index 5cbd5d52bbeb7ef10bbb134154456f9fc6c42289..210a3d58bac36a62ecb741af4146f5c83b370f8a 100644 (file)
@@ -26,19 +26,18 @@ class TitleCutter(CutListEditor):
                        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"
index fdd331d46e4034fe2c4159d51c678dfe9a43fe81..505dd09343ecbd4d7b7ac62990bca08dd2101f18 100644 (file)
@@ -71,11 +71,11 @@ class TitleProperties(Screen,ConfigListScreen):
                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":
@@ -89,7 +89,7 @@ class TitleProperties(Screen,ConfigListScreen):
                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") + ' ('
@@ -127,9 +127,9 @@ class TitleProperties(Screen,ConfigListScreen):
        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 = { }
@@ -146,4 +146,26 @@ class LanguageChoices():
                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