diff --git a/ChangeLog b/ChangeLog index 89ddbbe..982faaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2011-05-24 Thomas Vander Stichele + + * morituri/rip/Makefile.am: + * morituri/rip/main.py: + * morituri/rip/debug.py (added): + Add helper command to debug tasks. + * morituri/common/encode.py: + Add debug. + 2011-05-24 Thomas Vander Stichele * morituri/test/test_common_encode.py: diff --git a/morituri/common/encode.py b/morituri/common/encode.py index e5edbb3..17d0d0e 100644 --- a/morituri/common/encode.py +++ b/morituri/common/encode.py @@ -211,7 +211,9 @@ class EncodeTask(gstreamer.GstPipelineTask): # add a probe so we can track progress # we connect to level because this gives us offset in samples srcpad = self._level.get_static_pad('src') - srcpad.add_buffer_probe(self._probe_handler) + self.gst.debug('adding srcpad buffer probe to %r' % srcpad) + ret = srcpad.add_buffer_probe(self._probe_handler) + self.gst.debug('added srcpad buffer probe to %r: %r' % (srcpad, ret)) def _probe_handler(self, pad, buffer): # update progress based on buffer offset (expected to be in samples) diff --git a/morituri/rip/Makefile.am b/morituri/rip/Makefile.am index 82f6dcb..4beacde 100644 --- a/morituri/rip/Makefile.am +++ b/morituri/rip/Makefile.am @@ -6,6 +6,7 @@ morituri_PYTHON = \ __init__.py \ accurip.py \ cd.py \ + debug.py \ drive.py \ image.py \ main.py \ diff --git a/morituri/rip/debug.py b/morituri/rip/debug.py new file mode 100644 index 0000000..35b591e --- /dev/null +++ b/morituri/rip/debug.py @@ -0,0 +1,66 @@ +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 + +# Morituri - for those about to RIP + +# Copyright (C) 2009 Thomas Vander Stichele + +# This file is part of morituri. +# +# morituri is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# morituri is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with morituri. If not, see . + +from morituri.common import task, logcommand + +class Encode(logcommand.LogCommand): + + summary = "run an encode task" + + def addOptions(self): + # here to avoid import gst eating our options + from morituri.common import encode + + default = 'flac' + self.parser.add_option('', '--profile', + action="store", dest="profile", + help="profile for encoding (default '%s', choices '%s')" % ( + default, "', '".join(encode.PROFILES.keys())), + default=default) + + def do(self, args): + try: + fromPath = unicode(args[0]) + except IndexError: + self.stdout.write('Please specify an input file.\n') + return 3 + + try: + toPath = unicode(args[1]) + except IndexError: + toPath = fromPath + '.' + self.options.profile + + runner = task.SyncRunner() + + from morituri.common import encode + profile = encode.PROFILES[self.options.profile]() + encodetask = encode.EncodeTask(fromPath, toPath, profile) + + runner.run(encodetask) + + +class Debug(logcommand.LogCommand): + summary = "debug internals" + + subCommandClasses = [Encode, ] + + diff --git a/morituri/rip/main.py b/morituri/rip/main.py index 0754821..3822f3e 100644 --- a/morituri/rip/main.py +++ b/morituri/rip/main.py @@ -4,7 +4,7 @@ import sys from morituri.common import log, logcommand, common, task -from morituri.rip import cd, offset, drive, image, accurip +from morituri.rip import cd, offset, drive, image, accurip, debug def main(argv): c = Rip() @@ -53,7 +53,7 @@ You can get help on subcommands by using the -h option to the subcommand. """ subCommandClasses = [accurip.AccuRip, - cd.CD, drive.Drive, offset.Offset, image.Image, ] + cd.CD, debug.Debug, drive.Drive, offset.Offset, image.Image, ] def addOptions(self): # FIXME: is this the right place ?