1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 from timeside.core import Processor, implements, interfacedoc
24 from timeside.encoder.core import GstEncoder
25 from timeside.api import IEncoder
26 from timeside.tools import *
30 """ gstreamer-based encoder """
31 implements(IEncoder)
32
33 @interfacedoc
34 - def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
35 super(WavEncoder, self).setup(channels, samplerate, blocksize, totalframes)
36
37 self.pipe = ''' appsrc name=src
38 ! audioconvert
39 ! wavenc
40 '''
41 if self.filename and self.streaming:
42 self.pipe += ''' ! tee name=t
43 ! queue ! filesink location=%s
44 t. ! queue ! appsink name=app sync=False
45 ''' % self.filename
46
47 elif self.filename :
48 self.pipe += '! filesink location=%s async=False sync=False ' % self.filename
49 else:
50 self.pipe += '! queue ! appsink name=app sync=False '
51
52 self.start_pipeline(channels, samplerate)
53
54
55 @staticmethod
56 @interfacedoc
59
60 @staticmethod
61 @interfacedoc
63 return "Wav GStreamer based encoder"
64
65 @staticmethod
66 @interfacedoc
69
70 @staticmethod
71 @interfacedoc
74
75 @staticmethod
76 @interfacedoc
79
80 @interfacedoc
84