#!/usr/bin/python
# -*- coding: utf-8 -*-
#
-# Copyright (c) 2012 Paul Brossier <piem@piem.org>
+# Copyright (C) 2007-2014 Parisson SARL
+# Copyright (c) 2006-2014 Guillaume Pellerin <pellerin@parisson.com>
+# Copyright (c) 2010-2014 Paul Brossier <piem@piem.org>
+# Copyright (c) 2013-2014 Thomas Fillon <thomas@parisson.com>
# This file is part of TimeSide.
from timeside.core import Processor, implements, interfacedoc
-from timeside.component import implements, abstract
+from timeside.component import abstract
from timeside.api import IEncoder
-from timeside.tools import *
+from timeside.tools import numpy_array_to_gst_buffer
#from gst import _gst as gst
import pygst
# Run doctest from __main__ and unittest from test_analyzer_preprocessors
from tests import test_encoding, test_transcoding
from tests.unit_timeside import run_test_module
- run_test_module([test_encoding, test_transcoding])
\ No newline at end of file
+ run_test_module([test_encoding, test_transcoding])
# -*- coding: utf-8 -*-
#
-# Copyright (C) 2007-2012 Parisson SARL
-# Copyright (c) 2006-2012 Guillaume Pellerin <pellerin@parisson.com>
-# Copyright (c) 2010-2012 Paul Brossier <piem@piem.org>
+# Copyright (C) 2007-2014 Parisson SARL
+# Copyright (c) 2006-2014 Guillaume Pellerin <pellerin@parisson.com>
+# Copyright (c) 2010-2014 Paul Brossier <piem@piem.org>
# Copyright (c) 2009-2010 Olivier Guilyardi <olivier@samalyse.com>
-
+# Copyright (c) 2013-2014 Thomas Fillon <thomas@parisson.com>
# This file is part of TimeSide.
# Authors: Guillaume Pellerin <yomguy@parisson.com>
# Paul Brossier <piem@piem.org>
+# Thomas Fillon <thomas@parisson.com>
from timeside.core import implements, interfacedoc
from timeside.encoder.core import GstEncoder
from timeside.api import IEncoder
-from timeside.tools import *
import mutagen
+
class Mp3Encoder(GstEncoder):
""" gstreamer-based mp3 encoder """
implements(IEncoder)
@interfacedoc
- def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None):
- super(Mp3Encoder, self).setup(channels, samplerate, blocksize, totalframes)
+ def setup(self, channels=None, samplerate=None, blocksize=None,
+ totalframes=None):
+ super(Mp3Encoder, self).setup(channels, samplerate, blocksize,
+ totalframes)
self.pipe = '''appsrc name=src
! audioconvert ! audioresample
if self.filename and self.streaming:
self.pipe += ''' ! tee name=t
- ! queue2 ! filesink location=%s
- t. ! queue2 ! appsink name=app sync=False
+ ! queue ! filesink location=%s
+ t. ! queue! appsink name=app sync=False
''' % self.filename
- elif 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'
id3 = id3.ID3(self.filename)
for tag in self.metadata.keys():
value = self.metadata[tag]
- frame = mutagen.id3.Frames[tag](3,value)
+ frame = mutagen.id3.Frames[tag](3, value)
try:
id3.add(frame)
except:
id3.save()
except:
raise IOError('EncoderError: cannot write tags')
-