]> git.parisson.com Git - timeside.git/commitdiff
timeside/encoder/: factorise gst stuff
authorPaul Brossier <piem@piem.org>
Tue, 31 Jul 2012 04:13:24 +0000 (22:13 -0600)
committerPaul Brossier <piem@piem.org>
Tue, 31 Jul 2012 04:13:24 +0000 (22:13 -0600)
timeside/encoder/flac.py
timeside/encoder/gstutils.py [new file with mode: 0644]
timeside/encoder/m4a.py
timeside/encoder/mp3.py
timeside/encoder/ogg.py
timeside/encoder/wav.py
timeside/encoder/webm.py

index 0a1206687a5342d8b84be1658199029ed490520d..cb22a5551df47118ae3670f88ab9a724ea529473 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init()
+from timeside.encoder.gstutils import *
 
 class FlacEncoder(Processor):
     """ gstreamer-based FLAC encoder """
@@ -113,14 +107,8 @@ class FlacEncoder(Processor):
     @interfacedoc
     def process(self, frames, eod=False):
         self.eod = eod
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if self.streaming:
             self.chunk = self.app.emit('pull-buffer')
         return frames, eod
-
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf
-
diff --git a/timeside/encoder/gstutils.py b/timeside/encoder/gstutils.py
new file mode 100644 (file)
index 0000000..3183cfb
--- /dev/null
@@ -0,0 +1,13 @@
+from numpy import getbuffer
+
+import pygst
+pygst.require('0.10')
+import gst
+import gobject
+gobject.threads_init()
+
+def numpy_array_to_gst_buffer(frames):
+    """ gstreamer buffer to numpy array conversion """
+    buf = gst.Buffer(getbuffer(frames.astype("float32")))
+    return buf
+
index f3aa280987190b344a3474b67a1a956ffc6d3ef5..eb30bac6c4bef490acbde52f60337e497bf66bb6 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init ()
-
+from timeside.encoder.gstutils import *
 
 class AacEncoder(Processor):
     """ gstreamer-based AAC encoder """
@@ -95,15 +88,7 @@ class AacEncoder(Processor):
 
     @interfacedoc
     def process(self, frames, eod=False):
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if eod: self.src.emit('end-of-stream')
         return frames, eod
-
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf
-
-
-
index d254573fc0d00b1115251552c1ca4547dd3a2f17..9855648be2b9f47808a1618967be0f84ff16a8cd 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-from timeside.core import FixedSizeInputAdapter
+from timeside.encoder.gstutils import *
 
-import numpy
 import mutagen
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init()
-
 
 class Mp3Encoder(Processor):
     """ gstreamer-based mp3 encoder """
@@ -136,7 +128,7 @@ class Mp3Encoder(Processor):
     @interfacedoc
     def process(self, frames, eod=False):
         self.eod = eod
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if self.streaming:
             self.chunk = self.app.emit('pull-buffer')
@@ -144,12 +136,6 @@ class Mp3Encoder(Processor):
             self.write_metadata()
         return frames, eod
         
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf
-
-
 class Mp3EncoderSubprocess(object):
     """MP3 encoder in a subprocess pipe"""
 
index 477cf7941ce99d3dd19c37a787cfe6b8dfa4041d..699e5089d8949901e455ae6357158227c2890f57 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init()
-
+from timeside.encoder.gstutils import *
 
 class VorbisEncoder(Processor):
     """ gstreamer-based vorbis encoder """
@@ -116,14 +109,8 @@ class VorbisEncoder(Processor):
     @interfacedoc
     def process(self, frames, eod=False):
         self.eod = eod
-        
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if self.streaming:
             self.chunk = self.app.emit('pull-buffer')
         return frames, eod
-
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf
index 1cd50000518eff507cc5c3ca47750024cb3b1acf..b289210a939c49c4879870b82a68649c9a278b81 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init()
-
+from timeside.encoder.gstutils import *
 
 class WavEncoder(Processor):
     """ gstreamer-based encoder """
@@ -116,13 +109,8 @@ class WavEncoder(Processor):
     @interfacedoc
     def process(self, frames, eod=False):
         self.eod = eod
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if self.streaming:
             self.chunk = self.app.emit('pull-buffer')
         return frames, eod
-        
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf
index d0ea812941c2341b5f069c3ff7707b545b913ff5..5a138cd72958fe7bb215ceacf10e4a46e68b12b1 100644 (file)
 
 from timeside.core import Processor, implements, interfacedoc
 from timeside.api import IEncoder
-from numpy import array, frombuffer, getbuffer, float32
-
-import pygst
-pygst.require('0.10')
-import gst
-import gobject
-gobject.threads_init()
-
+from timeside.encoder.gstutils import *
 
 class WebMEncoder(Processor):
     """ gstreamer-based webm encoder and muxer """
@@ -123,14 +116,8 @@ class WebMEncoder(Processor):
     @interfacedoc
     def process(self, frames, eod=False):
         self.eod = eod
-
-        buf = self.numpy_array_to_gst_buffer(frames)
+        buf = numpy_array_to_gst_buffer(frames)
         self.src.emit('push-buffer', buf)
         if self.streaming:
             self.chunk = self.app.emit('pull-buffer')
         return frames, eod
-
-    def numpy_array_to_gst_buffer(self, frames):
-        """ gstreamer buffer to numpy array conversion """
-        buf = gst.Buffer(getbuffer(frames))
-        return buf