From: yomguy Date: Mon, 8 Oct 2012 09:51:16 +0000 (+0200) Subject: update encoder pipelines X-Git-Tag: 0.4.2~11 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0348e8e69fd5fa654821853f3e40caf99a99283b;p=timeside.git update encoder pipelines --- diff --git a/timeside/encoder/flac.py b/timeside/encoder/flac.py index 07f0b33..cca90e3 100644 --- a/timeside/encoder/flac.py +++ b/timeside/encoder/flac.py @@ -55,12 +55,13 @@ class FlacEncoder(GstEncoder): ''' % self.filename elif self.filename : - self.pipe += '! filesink location=%s ' % self.filename + self.pipe += '! filesink location=%s async=False sync=False ' % self.filename else: - self.pipe += '! appsink name=app sync=False ' + self.pipe += '! queue ! appsink name=app sync=False ' self.start_pipeline(channels, samplerate) + @staticmethod @interfacedoc def id(): @@ -88,5 +89,4 @@ class FlacEncoder(GstEncoder): @interfacedoc def set_metadata(self, metadata): - #TODO: - pass + self.metadata = metadata diff --git a/timeside/encoder/m4a.py b/timeside/encoder/m4a.py index fdcc0aa..8151917 100644 --- a/timeside/encoder/m4a.py +++ b/timeside/encoder/m4a.py @@ -46,9 +46,20 @@ class AacEncoder(GstEncoder): ! faac ! filesink location=%s ''' % self.filename - # start pipeline + if self.filename and self.streaming: + self.pipe += ''' ! tee name=t + ! queue ! filesink location=%s + t. ! queue ! appsink name=app sync=False + ''' % self.filename + + elif self.filename : + self.pipe += '! filesink location=%s async=False sync=False ' % self.filename + else: + self.pipe += '! queue ! appsink name=app sync=False ' + self.start_pipeline(channels, samplerate) + @staticmethod @interfacedoc def id(): @@ -76,5 +87,4 @@ class AacEncoder(GstEncoder): @interfacedoc def set_metadata(self, metadata): - #TODO - pass + self.metadata = metadata diff --git a/timeside/encoder/mp3.py b/timeside/encoder/mp3.py index 7581a64..21c0b39 100644 --- a/timeside/encoder/mp3.py +++ b/timeside/encoder/mp3.py @@ -54,8 +54,10 @@ class Mp3Encoder(GstEncoder): self.pipe = '''appsrc name=src ! audioconvert - ! lamemp3enc target=quality quality=2 encoding-engine-quality=standard ! id3v2mux + ! lamemp3enc target=quality quality=2 encoding-engine-quality=standard + ! id3v2mux ''' + if self.filename and self.streaming: self.pipe += ''' ! tee name=t ! queue ! filesink location=%s diff --git a/timeside/encoder/ogg.py b/timeside/encoder/ogg.py index 4130d1b..0f9a545 100644 --- a/timeside/encoder/ogg.py +++ b/timeside/encoder/ogg.py @@ -56,13 +56,13 @@ class VorbisEncoder(GstEncoder): ''' % self.filename elif self.filename : - self.pipe += '! filesink async=True location=%s ' % self.filename + self.pipe += '! filesink location=%s async=False sync=False ' % self.filename else: - self.pipe += '! appsink name=app sync=False ' + self.pipe += '! queue ! appsink name=app sync=False ' - # start pipeline self.start_pipeline(channels, samplerate) + @staticmethod @interfacedoc def id(): @@ -90,5 +90,5 @@ class VorbisEncoder(GstEncoder): @interfacedoc def set_metadata(self, metadata): - #TODO: - pass + self.metadata = metadata + diff --git a/timeside/encoder/wav.py b/timeside/encoder/wav.py index 4d87b3b..94bc2cb 100644 --- a/timeside/encoder/wav.py +++ b/timeside/encoder/wav.py @@ -57,13 +57,13 @@ class WavEncoder(GstEncoder): ''' % self.filename elif self.filename : - self.pipe += '! filesink location=%s ' % self.filename + self.pipe += '! filesink location=%s async=False sync=False ' % self.filename else: - self.pipe += '! appsink name=app sync=False' + self.pipe += '! queue ! appsink name=app sync=False ' - # start pipeline self.start_pipeline(channels, samplerate) + @staticmethod @interfacedoc def id(): diff --git a/timeside/encoder/webm.py b/timeside/encoder/webm.py index 91cfd2e..b28ac05 100644 --- a/timeside/encoder/webm.py +++ b/timeside/encoder/webm.py @@ -64,13 +64,13 @@ class WebMEncoder(GstEncoder): ''' % self.filename elif self.filename : - self.pipe += '! filesink location=%s ' % self.filename + self.pipe += '! filesink location=%s async=False sync=False ' % self.filename else: - self.pipe += '! appsink name=app sync=False ' + self.pipe += '! queue ! appsink name=app sync=False ' - # start pipeline self.start_pipeline(channels, samplerate) + @staticmethod @interfacedoc def id(): @@ -84,7 +84,7 @@ class WebMEncoder(GstEncoder): @staticmethod @interfacedoc def format(): - return "WEBM" + return "WebM" @staticmethod @interfacedoc @@ -98,5 +98,4 @@ class WebMEncoder(GstEncoder): @interfacedoc def set_metadata(self, metadata): - #TODO: - pass + self.metadata = metadata