]> git.parisson.com Git - timeside.git/commitdiff
cleanup
authoryomguy <yomguy@parisson.com>
Sat, 6 Oct 2012 21:03:04 +0000 (23:03 +0200)
committeryomguy <yomguy@parisson.com>
Sat, 6 Oct 2012 21:03:04 +0000 (23:03 +0200)
timeside/encoder/__init__.py
timeside/encoder/flac.py
timeside/encoder/m4a.py
timeside/encoder/mp3.py
timeside/encoder/ogg.py
timeside/encoder/wav.py
timeside/encoder/webm.py
timeside/gstutils.py

index 5a09e942e35c1cc3eae6a79cebfe3a68be45f221..aa02c8fef9e2bab9671acee5bec05351b89610eb 100644 (file)
@@ -7,4 +7,3 @@ from mp3 import *
 from flac import *
 from m4a import *
 from webm import *
-
index 26eb82831d1e8f873454710103161c4c701f3859..07f0b33f7bd1b76b67369cbc4fc37a352d1dde38 100644 (file)
@@ -20,6 +20,7 @@
 # Author: Guillaume Pellerin <yomguy@parisson.com>
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
@@ -43,8 +44,7 @@ class FlacEncoder(GstEncoder):
     @interfacedoc
     def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
         super(FlacEncoder, self).setup(channels, samplerate, blocksize, totalframes)
-        # TODO open file for writing
-        # the output data format we want
+
         self.pipe = ''' appsrc name=src ! audioconvert
                         ! flacenc '''
 
index 9c04a7286815694506f056b8d52dce9cd3e7fba4..fdcc0aa8d8e6c9f9b3a93788b14ecce70b80fb45 100644 (file)
@@ -20,6 +20,7 @@
 
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
index 8271e910b52f3e7278de7acabd0e6e8d5d5c5c1d..7581a649ae539ec0d510332c2583e5c47ee8bfdf 100644 (file)
@@ -25,6 +25,7 @@
 #          Paul Brossier <piem@piem.org>
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
index 344e9c4b4a3195cbe4f599b8a46d02ca1b3cf9cb..4130d1b5aea9b0e866f2e4d4af55e75187e5c3ad 100644 (file)
@@ -20,6 +20,7 @@
 
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
@@ -42,8 +43,7 @@ class VorbisEncoder(GstEncoder):
     @interfacedoc
     def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
         super(VorbisEncoder, self).setup(channels, samplerate, blocksize, totalframes)
-        # TODO open file for writing
-        # the output data format we want
+
         self.pipe = ''' appsrc name=src
                   ! audioconvert
                   ! vorbisenc
index 04c7473a410dbbef28a51a6fe2f9dfed6301c1bd..4d87b3bae08400bdd5f893ad8e7bdf95ac64596d 100644 (file)
@@ -21,6 +21,7 @@
 # Author: Paul Brossier <piem@piem.org>
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
@@ -44,8 +45,7 @@ class WavEncoder(GstEncoder):
     @interfacedoc
     def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
         super(WavEncoder, self).setup(channels, samplerate, blocksize, totalframes)
-        # TODO open file for writing
-        # the output data format we want
+
         self.pipe = ''' appsrc name=src
                   ! audioconvert
                   ! wavenc
index 2888b5fb0c730082a013e462d50a0b09f564b0b6..91cfd2ed95136972a2ff52224d5f57b9847a19e8 100644 (file)
@@ -20,6 +20,7 @@
 
 
 from timeside.core import Processor, implements, interfacedoc
+from timeside.encoder.core import GstEncoder
 from timeside.api import IEncoder
 from timeside.gstutils import *
 
@@ -44,8 +45,7 @@ class WebMEncoder(GstEncoder):
     @interfacedoc
     def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
         super(WebMEncoder, self).setup(channels, samplerate, blocksize, totalframes)
-        # TODO open file for writing
-        # the output data format we want
+
         if self.video:
             self.pipe = '''videotestsrc pattern=black ! ffmpegcolorspace
                   ! queue ! vp8enc speed=2 threads=4 quality=9.0 ! queue ! mux.
index 5532f026c49596c008da232824aa16d7abc724dd..9be48d7b869fd49e81e3204e913e3d64af592842 100644 (file)
@@ -20,53 +20,3 @@ def gst_buffer_to_numpy_array(buf, chan):
     samples = frombuffer(buf.data, dtype='float32')
     samples.resize([len(samples)/chan, chan])
     return samples
-
-class GstEncoder(Processor):
-
-    def release(self):
-        while self.bus.have_pending():
-          self.bus.pop()
-
-    def __del__(self):
-        self.release()
-
-    def start_pipeline(self, channels, samplerate):
-        self.pipeline = gst.parse_launch(self.pipe)
-        # store a pointer to appsrc in our encoder object
-        self.src = self.pipeline.get_by_name('src')
-        # store a pointer to appsink in our encoder object
-        self.app = self.pipeline.get_by_name('app')
-
-        srccaps = gst.Caps("""audio/x-raw-float,
-            endianness=(int)1234,
-            channels=(int)%s,
-            width=(int)32,
-            rate=(int)%d""" % (int(channels), int(samplerate)))
-        self.src.set_property("caps", srccaps)
-        self.src.set_property('emit-signals', True)
-
-        self.bus = self.pipeline.get_bus()
-        self.bus.add_signal_watch()
-        self.bus.connect("message", self.on_message)
-
-        # start pipeline
-        self.pipeline.set_state(gst.STATE_PLAYING)
-
-    def on_message(self, bus, message):
-        t = message.type
-        if t == gst.MESSAGE_EOS:
-            self.pipeline.set_state(gst.STATE_NULL)
-        elif t == gst.MESSAGE_ERROR:
-            self.pipeline.set_state(gst.STATE_NULL)
-            err, debug = message.parse_error()
-            print "Error: %s" % err, debug
-
-    def process(self, frames, eod=False):
-        self.eod = eod
-        buf = numpy_array_to_gst_buffer(frames)
-        self.src.emit('push-buffer', buf)
-        if self.eod:
-            self.src.emit('end-of-stream')
-        if self.streaming:
-            self.chunk = self.app.emit('pull-buffer')
-        return frames, eod