aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Plugins
diff options
context:
space:
mode:
authorAndreas Frisch <andreas.frisch@multimedia-labs.de>2008-09-11 19:31:46 +0000
committerAndreas Frisch <andreas.frisch@multimedia-labs.de>2008-09-11 19:31:46 +0000
commit17cd8cc301444bb2c81b50c9e57f15ef1de0987a (patch)
tree57aef366779eec7630b78feb11648e8f30a47f89 /lib/python/Plugins
parentcc8dceba41cdc3f1cb5a16c86bd3676101233c00 (diff)
downloadenigma2-17cd8cc301444bb2c81b50c9e57f15ef1de0987a.tar.gz
enigma2-17cd8cc301444bb2c81b50c9e57f15ef1de0987a.zip
read audio stream formats and descriptions from PMT and use them for DVD authoring
Diffstat (limited to 'lib/python/Plugins')
-rw-r--r--lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py1
-rw-r--r--lib/python/Plugins/Extensions/DVDBurn/Process.py2
-rw-r--r--lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py42
3 files changed, 37 insertions, 8 deletions
diff --git a/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py b/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py
index 3d19bc48..67b410ce 100644
--- a/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py
+++ b/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py
@@ -9,6 +9,7 @@ class DVDTitle:
self.inputfile = ""
self.cutlist = [ ]
self.chaptermarks = [ ]
+ self.audiotracks = [ ]
self.timeCreate = None
def addService(self, service):
diff --git a/lib/python/Plugins/Extensions/DVDBurn/Process.py b/lib/python/Plugins/Extensions/DVDBurn/Process.py
index 74de6aa7..12d85b45 100644
--- a/lib/python/Plugins/Extensions/DVDBurn/Process.py
+++ b/lib/python/Plugins/Extensions/DVDBurn/Process.py
@@ -523,6 +523,8 @@ def CreateAuthoringXML(job):
authorxml.append(' </menus>\n')
authorxml.append(' <titles>\n')
for i in range( nr_titles ):
+ for audiotrack in job.project.titles[i].audiotracks:
+ authorxml.append(' <audio format="'+audiotrack[0]+'" lang="'+audiotrack[1]+'" />\n')
chapters = ','.join(["%d:%02d:%02d.%03d" % (p / (90000 * 3600), p % (90000 * 3600) / (90000 * 60), p % (90000 * 60) / 90000, (p % 90000) / 90) for p in job.project.titles[i].chaptermarks])
title_no = i+1
title_filename = job.workspace + "/dvd_title_%d.mpg" % (title_no)
diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py b/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py
index d8ba5a41..8f1adf1a 100644
--- a/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py
+++ b/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py
@@ -1,17 +1,43 @@
from Plugins.Extensions.CutListEditor.plugin import CutListEditor
+from Components.ServiceEventTracker import ServiceEventTracker
class TitleCutter(CutListEditor):
- def __init__(self, session, title):
- CutListEditor.__init__(self, session, title.source)
- #, title.cutlist)
+ def __init__(self, session, t):
+ CutListEditor.__init__(self, session, t.source)
+ self.skin = CutListEditor.skin
+ self.session = session
+ self.t = t
+ self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
+ {
+ iPlayableService.evUpdatedInfo: self.getAudioTracks,
+ iPlayableService.evCuesheetChanged: self.refillList
+ })
+ self.onExecBegin.remove(self.showTutorial)
+
+ def getAudioTracks(self):
+ service = self.session.nav.getCurrentService()
+ audio = service and service.audioTracks()
+ n = audio and audio.getNumberOfTracks() or 0
+ print "self.t", self.t
+ print "self.t.audiotracks", self.t.audiotracks
+ if n > 0:
+ for x in range(n):
+ i = audio.getTrackInfo(x)
+ language = i.getLanguage()[:2]
+ description = i.getDescription()
+ if description == "MPEG":
+ description = "mp2"
+ self.t.audiotracks.append((description, language))
+ print "audiotracks", self.t.audiotracks
def exit(self):
self.session.nav.stopService()
self.close(self.cut_list[:])
class CutlistReader(TitleCutter):
- def __init__(self, session, title):
- TitleCutter.__init__(self, session, title)
- self.tutorial_seen = True
- self.session.nav.stopService()
- self.close(self.cut_list[:])
+ def __init__(self, session, t):
+ TitleCutter.__init__(self, session, t)
+
+ def getAudioTracks(self):
+ TitleCutter.getAudioTracks()
+ self.exit() \ No newline at end of file