[SCM] morituri/master: * morituri/common/gstreamer.py: Add a stop method and a stopped overridable handler. * morituri/common/checksum.py: * morituri/common/encode.py: Adapt to using stopped.
js at users.alioth.debian.org
js at users.alioth.debian.org
Sun Oct 19 20:09:26 UTC 2014
The following commit has been merged in the master branch:
commit 3482288750fb3d1a9601aad89d5490cedd85fb17
Author: Thomas Vander Stichele <thomas (at) apestaart (dot) org>
Date: Mon May 23 15:26:19 2011 +0000
* morituri/common/gstreamer.py:
Add a stop method and a stopped overridable handler.
* morituri/common/checksum.py:
* morituri/common/encode.py:
Adapt to using stopped.
diff --git a/ChangeLog b/ChangeLog
index 6763cab..be31a91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2011-05-23 Thomas Vander Stichele <thomas at apestaart dot org>
+ * morituri/common/gstreamer.py:
+ Add a stop method and a stopped overridable handler.
+ * morituri/common/checksum.py:
+ * morituri/common/encode.py:
+ Adapt to using stopped.
+
+2011-05-23 Thomas Vander Stichele <thomas at apestaart dot org>
+
* morituri/test/test_common_encode.py:
Generate an actual file by spawning gst-launch; otherwise
with proper error handling we get an error from wavparse that
diff --git a/morituri/common/checksum.py b/morituri/common/checksum.py
index 9163547..d2beaef 100644
--- a/morituri/common/checksum.py
+++ b/morituri/common/checksum.py
@@ -177,11 +177,7 @@ class ChecksumTask(gstreamer.GstPipelineTask):
self.debug('eos, scheduling stop')
self.runner.schedule(0, self.stop)
- def stop(self):
- self.debug('stopping')
- self.debug('setting state to NULL')
- self.pipeline.set_state(gst.STATE_NULL)
-
+ def stopped(self):
if not self._last:
# see http://bugzilla.gnome.org/show_bug.cgi?id=578612
print 'ERROR: checksum: not a single buffer gotten'
@@ -199,9 +195,7 @@ class ChecksumTask(gstreamer.GstPipelineTask):
print 'ERROR: did not get all frames, %d missing' % (
self._frameEnd - last)
- # publicize and stop
self.checksum = self._checksum
- task.Task.stop(self)
class CRC32Task(ChecksumTask):
"""
@@ -336,11 +330,5 @@ class TRMTask(gstreamer.GstPipelineTask):
position += buf.duration
self.setProgress(float(position) / self._length)
- def stop(self):
- gst.debug('stopping')
- gst.debug('setting state to NULL')
- self.pipeline.set_state(gst.STATE_NULL)
-
- # publicize and stop
+ def stopped(self):
self.trm = self._trm
- task.Task.stop(self)
diff --git a/morituri/common/encode.py b/morituri/common/encode.py
index b260917..e9a6a71 100644
--- a/morituri/common/encode.py
+++ b/morituri/common/encode.py
@@ -259,16 +259,7 @@ class EncodeTask(gstreamer.GstPipelineTask):
self.log('higher peakdB found, now %r', self._peakdB)
self._peakdB = p
- # FIXME: move to base class, have stopped handler ?
- def stop(self):
- self.debug('stopping')
- self.debug('setting state to NULL')
- self.pipeline.set_state(self.gst.STATE_NULL)
- self.debug('set state to NULL')
- # FIXME: maybe this should move lower ? If used by BaseMultiTask,
- # this starts the next task without showing us the peakdB
- task.Task.stop(self)
-
+ def stopped(self):
if self._peakdB is not None:
self.debug('peakdB %r', self._peakdB)
self.peak = math.sqrt(math.pow(10, self._peakdB / 10.0))
diff --git a/morituri/common/gstreamer.py b/morituri/common/gstreamer.py
index 8d752be..4975413 100644
--- a/morituri/common/gstreamer.py
+++ b/morituri/common/gstreamer.py
@@ -40,6 +40,7 @@ class GstPipelineTask(task.Task):
gst = None
+ ### task.Task implementations
def start(self, runner):
import gst
self.gst = gst
@@ -76,9 +77,25 @@ class GstPipelineTask(task.Task):
else:
raise self.exception
+ def stop(self):
+ self.debug('stopping')
+ self.debug('setting state to NULL')
+ self.pipeline.set_state(self.gst.STATE_NULL)
+ self.debug('set state to NULL')
+ self.stopped()
+ task.Task.stop(self)
+
+
+ ### subclass required implementations
def getPipelineDesc(self):
+ """
+ subclasses should implement this to provide a pipeline description.
+
+ @rtype: str
+ """
raise NotImplementedError
+ ### subclass optional implementations
def parsed(self):
"""
Called after parsing the pipeline but before setting it to paused.
@@ -91,6 +108,13 @@ class GstPipelineTask(task.Task):
"""
pass
+ def stopped(self):
+ """
+ Called after pipeline is set back to NULL but before chaining up to
+ stop()
+ """
+ pass
+
def bus_eos_cb(self, bus, message):
"""
Called synchronously (ie from messaging thread) on eos message.
--
morituri packaging
More information about the pkg-multimedia-commits
mailing list