Esempio n. 1
0
    def encode(self):
        import pygst
        pygst.require('0.10')
        import gst

        self.encoder = gst.Pipeline('encoder')

        decodebin = gst.element_factory_make('uridecodebin', 'uridecodebin')
        uri = yield self.song.get_uri()
        decodebin.set_property('uri', uri)
        decodebin.connect('pad-added', self.on_new_pad)

        audioconvert = gst.element_factory_make('audioconvert', 'audioconvert')

        lame = gst.element_factory_make('lamemp3enc', 'lame')
        lame.set_property('quality', 1)

        sink = gst.element_factory_make('appsink', 'appsink')
        sink.set_property('emit-signals', True)
        sink.connect('new-buffer', self.data_ready)

        self.encoder.add(decodebin, audioconvert, lame, sink)
        gst.element_link_many(audioconvert, lame, sink)

        self.encoder.set_state(gst.STATE_PAUSED)

        bus = self.encoder.get_bus()
        bus.add_signal_watch()
        bus.connect('message', self.on_message)

        result = yield self.done
        defer.returnValue(result)
Esempio n. 2
0
def checkTicket349():
    result = messages.Result()
    import pygst

    pygst.require("0.10")
    import gst

    if get_gst_version(gst) < (0, 10, 4, 1):
        major, minor, micro, nano = get_gst_version(gst)
        m = messages.Error(
            T_(N_("Version %d.%d.%d of the GStreamer library is too old.\n"), major, minor, micro), mid="ticket-349"
        )
        m.add(T_(N_("The '%s' component needs a newer version of '%s'.\n"), "looper", "gstreamer"))
        m.add(T_(N_("Please upgrade '%s' to version %s or later."), "gstreamer", "0.10.5"))
        result.add(m)

    if get_pygst_version(gst) < (0, 10, 3, 1):
        major, minor, micro, nano = get_pygst_version(gst)
        m = messages.Error(
            T_(N_("Version %d.%d.%d of the gst-python library is too old.\n"), major, minor, micro), mid="ticket-349"
        )
        m.add(T_(N_("The '%s' component needs a newer version of '%s'.\n"), "looper", "gst-python"))
        m.add(T_(N_("Please upgrade '%s' to version %s or later."), "gst-python", "0.10.4"))
        result.add(m)

    result.succeed(None)
    return defer.succeed(result)
Esempio n. 3
0
def cal2(m=list()):
    # m=islem_yapan(veri)

    for i in m:
        s = i + ".mp3"

        import pygst

        pygst.require("0.10")

        import gst

        player = gst.Pipeline("player")
        source = gst.element_factory_make("filesrc", "file-source")
        decoder = gst.element_factory_make(
            "mad", "decoder"
        )  # mp3 formatı için decoder "mad", örneğin flac için "flacdec"...

        conv = gst.element_factory_make("audioconvert", "converter")
        sink = gst.element_factory_make(
            "autoaudiosink", "audio-output"
        )  # autoaudiosink yerine sistemin kullandığı ses aygıtı, örneğin "alsasink", "alsa-output" yazılabilir

        player.add(source, decoder, conv, sink)

        gst.element_link_many(source, decoder, conv, sink)

        player.get_by_name("file-source").set_property("location", s)  # aynı dizinde değilse tam yol yazılmalı
        player.set_state(gst.STATE_PLAYING)

        time.sleep(0.35)
        player.set_state(gst.STATE_NULL)
Esempio n. 4
0
def import_gst0_10():
    global gst_version, pygst_version
    import pygst
    pygst.require("0.10")
    try:
        #initializing gstreamer parses sys.argv
        #which interferes with our own command line arguments
        #so we temporarily replace them:
        saved_args = sys.argv
        sys.argv = sys.argv[:1]
        #now do the import with stderr redirection
        #to avoid gobject warnings:
        oldfd = redirect_stderr()
        import gst
        gst_version = gst.gst_version
        pygst_version = gst.pygst_version
        gst.new_buffer = gst.Buffer
        if not hasattr(gst, 'MESSAGE_STREAM_START'):
            #a None value is better than nothing:
            #(our code can assume it exists - just never matches)
            gst.MESSAGE_STREAM_START = None
        return gst
    finally:
        unredirect_stderr(oldfd)
        sys.argv = saved_args
def _check_libs():
    try:
        import pygtk
        pygtk.require('2.0')
        import gtk
        import gnome
        import gnome.ui
        gnome.ui.authentication_manager_init()
        import gconf
        import gobject
        gobject.threads_init()
        import gnomevfs
    except ImportError:
        print '%s needs pygtk and gnome-python >= 2.12!' % NAME
        sys.exit(1)

    try:
        import pygst
        pygst.require('0.10')
        import gst
    except ImportError:
        print '%s needs python-gstreamer 0.10!' % NAME
        sys.exit(1)

    print '  using Gstreamer version: %s' % (
            '.'.join([str(s) for s in gst.gst_version]))
Esempio n. 6
0
File: webrtc.py Progetto: ddalex/p9
    def send_video(self, media, local_host, local_port, remote_host, remote_port):
        # inspired from http://blog.abourget.net/2009/6/14/gstreamer-rtp-and-live-streaming/
        # we send each stream on its own port pair


        import gobject, pygst
        pygst.require("0.10")
        import gst

        raise Exception("fixme: TODO send video on RTP/RTCP")
Esempio n. 7
0
 def __init__(self, usage, description, domain):
     self.domain = domain
     BaseOP.__init__(self, usage=usage, description=description)
     if use_gst:
         try:
             import pygst
             pygst.require('0.10')
             import gstoption
             self.add_option_group(gstoption.get_group())
         except ImportError:
             pass
Esempio n. 8
0
    def checkDependencies(self):
        print ('Checking dependencies')
        try:
            import pygst
            pygst.require('0.10')
            import gst
        except ImportError:
            self.close('IMPORT_ERROR: Could not found the GStreamer Pythonbindings.\n'
                'You can download the installers at:\n'
                'http://www.gstreamer-winbuild.ylatuya.es')
        else:
            print ('GStreamer... OK')
     
        try:
            import pygtk
            pygtk.require('2.0')
            import gtk
            import gtk.gdk
            import gobject
        except ImportError:
                self.close('IMPORT_ERROR: Could not find the Gtk Python bindings.\n'
                    'You can download the installers at:\n'
                    'http://www.pygtk.org/\n'
                    'http://www.gtk.org/')
        else:
            print ('Gtk... OK')

        try:
            import gtk.glade
        except ImportError:
            self.close('IMPORT_ERROR: Could not find libglade in the system.\n'
                    'You can download the installers at:\n'
                    'http://sourceforge.net/projects/gladewin32/files/libglade-win32'
                    '/2.4.0/libglade-2.4.0-bin.zip/download')
        else:
            print ('libglade... OK')

        try:
            import goocanvas
        except ImportError:
            self.close('IMPORT_ERROR: Could not find the Goocanvas Python bindings.\n'
                    'You can download the intallers at:\n'
                    'http://ftp.gnome.org/pub/GNOME/binaries/win32/goocanvas/\n'
                    'http://sqlkit.argolinux.org/download/goocanvas.pyd')
        else:
            print ('goocanvas... OK')

        try:
            import zope.interface
        except:
            self.close('ERROR: Could not found Zope.Interface')
        else:
            print ('zope.interface... OK')
Esempio n. 9
0
    def __init__(self, config):
        """Initialize the speech components"""
        global gst
        global gobject

        import gobject
        import pygst
        pygst.require('0.10')
        import gst

        sys.stdout = None
        sys.stderr = None

        self.config = config
        self.active_plugin = None
        self.plugins = []
        for epoint in pkg_resources.iter_entry_points("mattd.plugins"):
            log.info("Loading plugin %r" % epoint.name)
            try:
                self.plugins.append(epoint.load()(self))
            except Exception as e:
                log.warn("%r failed.  %r" % (epoint.name, e))

        log.info("Loaded %i plugins." % len(self.plugins))

        one_second_in_nanoseconds = 1000000000

        def dict2properties(d):
            return " ".join([
                "%s=%s" % (k, str(v)) for k, v in d.items()
            ])

        vader_properties = {
            'name': 'vader',
            'auto-threshold': 'true',
            'run-length': one_second_in_nanoseconds,
            'pre-length': one_second_in_nanoseconds,
        }
        self.pipeline = gst.parse_launch(
            'gconfaudiosrc ! audioconvert ! audioresample '
            + '! vader %s ' % dict2properties(vader_properties)
            + '! pocketsphinx name=asr ! fakesink')
        asr = self.pipeline.get_by_name('asr')
        asr.connect('partial_result', self.asr_partial_result)
        asr.connect('result', self.asr_result)
        asr.set_property('configured', True)

        bus = self.pipeline.get_bus()
        bus.add_signal_watch()
        bus.connect('message::application', self.application_message)

        self.pipeline.set_state(gst.STATE_PLAYING)
Esempio n. 10
0
    def __init__(self, options, tmp_dir):
        self.options = options
        self.tmp_dir = tmp_dir
        self.frame_capture_padding = 0.5 * 1000000000

        # Import python gstreamer libraries
        global pygst, gst, gobject, threading, time
        import pygst
        pygst.require("0.10")
        import gst
        import gobject
        import threading
        import time

        # Create gstreamer player object
        self.player = gst.Pipeline("player")

        # File source and universal decoder
        filesrc = gst.element_factory_make("filesrc", "file-source")
        decoder = gst.element_factory_make("decodebin", "decoder")
        decoder.connect("new-decoded-pad", self.decoder_callback)

        # PNG encoder, Multiple File sink and colorspace converter required by PNG encoder
        colorspace = gst.element_factory_make("ffmpegcolorspace", "video-sink")
        pngenc = gst.element_factory_make("pngenc", "png-encoder")
        pngenc.set_property("snapshot", True)
        multifilesink = gst.element_factory_make("multifilesink", "multi-file-sink")
        multifilesink.set_property("location",
            os.path.join(self.tmp_dir, "output-%05d.png"))
        multifilesink.set_property("post-messages", True)

        # Add elements to player pipeline
        self.player.add(filesrc, decoder, colorspace, pngenc, multifilesink)
        gst.element_link_many(filesrc, decoder)
        gst.element_link_many(colorspace, pngenc, multifilesink)

        bus = self.player.get_bus()
        bus.add_signal_watch()
        bus.connect("message", self.on_message)

        # Initialize gobject MainLoop in a new thread
        gobject.threads_init()
        self.main_loop = gobject.MainLoop()
        def main_loop_thread():
            self.main_loop.run()
        self.main_loop_thread = threading.Thread(target=main_loop_thread)
        self.main_loop_thread.daemon = True
        self.main_loop_thread.start()
Esempio n. 11
0
def _deferred_imports():
    # The GStreamer (or bulkio) modules may not be installed; defer imports
    # until creation of a SoundSink to report the error only when it's relevant
    try:
        import pygst
        pygst.require('0.10')
        import gst

        from bulkio.bulkioInterfaces import BULKIO__POA

        def _deferred_imports():
            pass

        globals().update(locals())
    except ImportError, e:
        raise RuntimeError("Missing required package for sandbox audio: '%s'" % e)
Esempio n. 12
0
	def activate (self, totem_object):
		"""Check for the availability of the flvdemux and souphttpsrc GStreamer plugins"""
		bvw_name = totem_object.get_video_widget_backend_name ()

		"""If the user's selected 1.5Mbps or greater as their connection speed, grab higher-quality videos
		   and drop the requirement for the flvdemux plugin."""
		self.gconf_client = gconf.client_get_default ()

		if bvw_name.find ("GStreamer") != -1:
			try:
				import pygst
				pygst.require ("0.10")
				import gst

				registry = gst.registry_get_default ()
				if registry.find_plugin ("soup") == None:
					"""This means an error will be displayed when they try to play anything"""
					self.gstreamer_plugins_present = False
			except ImportError:
				"""Do nothing; either it's using xine or python-gstreamer isn't installed"""

		"""Continue loading the plugin as before"""
		self.builder = self.load_interface ("youtube.ui", True, totem_object.get_main_window (), self)
		self.totem = totem_object

		self.search_entry = self.builder.get_object ("yt_search_entry")
		self.search_entry.connect ("activate", self.on_search_entry_activated)
		self.search_button = self.builder.get_object ("yt_search_button")
		self.search_button.connect ("clicked", self.on_search_button_clicked)
		self.progress_bar = self.builder.get_object ("yt_progress_bar")

		self.notebook = self.builder.get_object ("yt_notebook")
		self.notebook.connect ("switch-page", self.on_notebook_page_changed)

		self.notebook_pages = ["search", "related"]
		for page in self.notebook_pages:
			self.setup_treeview (page)
		self.current_treeview_name = "search"

		self.vbox = self.builder.get_object ("yt_vbox")
		self.vbox.show_all ()
		totem_object.add_sidebar_page ("youtube", _("YouTube"), self.vbox)

		"""Set up the service"""
		self.service = gdata.service.GDataService (account_type = "HOSTED_OR_GOOGLE", server = "gdata.youtube.com")
Esempio n. 13
0
def parse_arguments(args):
  regex = re.compile("^gstreamer\|([0-9])+\.([0-9]+)\|(.+)\|(.+)\|([a-z]+)-(.*)[|]?")
  requests = []
  xid = None
  gst_init = False
  major = 0
  minor = 0
  for arg in args:
    if arg[0:16] == "--transient-for=":
      try:
        xid = int(arg[16:])
      except:
        pass
      continue
    elif arg[0:2] == "--":
      continue

    match = regex.search(arg)
    if not match:
      continue
    try:
      r_major = int(match.group(1))
      r_minor = int(match.group(2))
      if not gst_init:
        import pygst
        pygst.require("%d.%d" % (r_major, r_minor))
        import gst
        gst_init = True
        major = r_major
        minor = r_minor
      elif r_major != major or r_minor != minor:
        return None
    except ValueError:
      continue

    if match.group(5) == "decoder" or match.group(5) == "encoder":
      try:
        requests.append(Request(major, minor, match.group(3), match.group(4), match.group(5), caps=gst.Caps(match.group(6))))
      except TypeError:
        continue
    elif match.group(5) == "urisource" or match.group(5) == "urisink" or match.group(5) == "element":
      requests.append(Request(major, minor, match.group(3), match.group(4), match.group(5), feature=match.group(6)))
    else:
      continue
  return (requests, xid)
Esempio n. 14
0
def load_pygtk():
    try:
        import pygst
        pygst.require('0.10')
        import gst
    except Exception:
        import struct
        is64bit = len(struct.pack(b'P', 0)) == 8
        logging.info("Python arch: %d-bit" % (64 if is64bit else 32))
        gstroot = os.environ.get('GSTREAMER_SDK_ROOT_X86_64', r'C:\gstreamer-sdk\0.10\x64') \
                if is64bit \
                else os.environ.get('GSTREAMER_SDK_ROOT_X86', r'C:\gstreamer-sdk\0.10\x86')
        if not os.path.exists(gstroot):
            error("GStreamer not found",
                    "GStreamer was not found. It can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                    "See README.Windows for more information.")
        os.environ['PATH'] = gstroot + r'\bin;' + os.environ['PATH']
        gstpypath = gstroot + r'\lib\python2.7\site-packages'
        sys.path.insert(1, gstpypath)
        os.environ['PYTHONPATH'] = gstpypath
        try:
            import pygst
            pygst.require('0.10')
            import gst
        except Exception:
            error("GStreamer Python bindings not found",
                    "The Python bindings for GStreamer could not be imported. Please re-run the GStreamer installer and ensure that \"GStreamer python bindings\" is selected for installation (it should be selected by default).\r\n\r\n" +
                    "GStreamer can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                    "See README.Windows for more information.")
        else:
            logging.info("GStreamer: %s" % gstroot)
    else:
        logging.info("GStreamer works out of the box")

    try:
        import pygtk
        pygtk.require('2.0')
        import gtk
    except Exception:
        error("GTK/PyGTK not found",
                "PyGTK 2.x could not be imported. Please re-run the GStreamer installer and ensure that \"Gtk toolkit\" and \"Gtk python bindings\" are selected (they should be selected by default). Note that the PyGTK library from pygtk.org is NOT compatible with the GStreamer library from gstreamer.com.\r\n\r\n" +
                "GStreamer can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                "See README.Windows for more information.")
    else:
        logging.info("PyGTK works")
Esempio n. 15
0
def _init_gst_version(gst_majorminor):

    def tup2version(tup):
        return '.'.join(map(str, tup))

    if gst_majorminor not in GST_REQ:
        raise SystemExit('ERROR: Invalid FLU_GST_VERSION: %r (expected '
                         'one of %r)' % (gst_majorminor, GST_REQ.keys()))

    pygst_req = GST_REQ[gst_majorminor]['gst-python']
    gst_req = GST_REQ[gst_majorminor]['gstreamer']

    try:
        import pygst
        pygst.require(gst_majorminor)
        import gst
    except ImportError:
        return False
    except AssertionError:
        return False

    try:
        gst_version = gst.get_gst_version()
        pygst_version = gst.get_pygst_version()
    except AttributeError:
        # get_foo_version() added in 0.10.4, fall back
        gst_version = gst.gst_version
        pygst_version = gst.pygst_version

    if gst_req[:2] != gst_version[:2]:
        raise SystemExit(
            'ERROR: Expected GStreamer %s, but got incompatible %s'
            % (gst_majorminor, tup2version(gst_version[:2])))

    if gst_version < gst_req:
        raise SystemExit(
            'ERROR: GStreamer %s too old; install %s or newer'
            % (tup2version(gst_version), tup2version(gst_req)))

    if pygst_version < pygst_req:
        raise SystemExit(
            'ERROR: gst-python %s too old; install %s or newer'
            % (tup2version(pygst_version), tup2version(pygst_req)))

    return True
Esempio n. 16
0
 def prepare(self):
     super(Daemon, self).prepare()
     # Late import pygst and gstreamer; they steals the `-h` switch
     import pygst
     pygst.require("0.10")
     import gobject
     gobject.threads_init()
     from evafm.sources.rpcserver import RPCServer
     from evafm.sources.source import Source
     # Late searching of checkers in order to have logging properly setup
     giblets.search.find_plugins_by_entry_point("evafm.sources.checkers")
     self.source = Source(self.mgr)
     self.source.activate()
     self.source.connect_signals()
     self.source.set_id(self.source_id)
     self.rpc_server = RPCServer(self.mgr)
     gobject.timeout_add_seconds(
         self.detach_process and 2 or 0, self.source.setup_heart
     )
     self.loop = gobject.MainLoop()
Esempio n. 17
0
def checkTicket348():
    result = messages.Result()
    import pygst
    pygst.require('0.10')
    import gst
    (major, minor, nano) = gst.pygst_version
    if (major, minor, nano) < (0, 10, 3):
        m = messages.Warning(T_(
            N_("Version %d.%d.%d of the gst-python library contains "
                "a large memory leak.\n"),
            major, minor, nano),
            mid='ticket-348')
        m.add(T_(N_("The Soundcard and Firewire sources may leak a lot of "
            "memory as a result, and need to be restarted frequently.\n")))
        m.add(T_(N_("Please upgrade '%s' to version %s or later."),
            'gst-python', '0.10.3'))
        result.add(m)

    result.succeed(None)
    return defer.succeed(result)
Esempio n. 18
0
    def do(self, args):
        import pygst
        pygst.require('0.10')
        import gobject
        gobject.threads_init()
        import gst

        from dadgst.task import level

        runner = task.SyncRunner()

        for path in filterFiles(self, args):

            t = level.LevellerTask(path)
            runner.run(t)

            if t.done:
                self.stdout.write('Successfully analyzed file %s.\n' %
                    path.encode('utf-8'))
                mixes = t.get_track_mixes()
                self.stdout.write('%d fragment(s)\n' % len(mixes))

                for i, m in enumerate(mixes):
                    self.stdout.write('- fragment %d: %s - %s\n' % (
                        i, gst.TIME_ARGS(m.start), gst.TIME_ARGS(m.end)))
                    self.stdout.write('  - peak              %02.3f dB (%03.3f %%)\n' % (
                        m.peak, common.decibelToRaw(m.peak) * 100.0))
                    self.stdout.write('  - rms               %r dB\n' % m.rms)
                    self.stdout.write('  - peak rms          %r dB\n' % m.rmsPeak)
                    self.stdout.write('  - 95 percentile rms %r dB\n' % m.rmsPercentile)
                    self.stdout.write('  - weighted rms      %r dB\n' % m.rmsWeighted)
                    start = m.attack.get(m.rmsPeak - 9)
                    end = m.decay.get(m.rmsPeak - 9)
                    self.stdout.write('  - weighted from %s to %s\n' % (
                        gst.TIME_ARGS(start), gst.TIME_ARGS(end)))
            else:
                self.stderr.write('Could not level %s\n' %
                    path.encode('utf-8'))

            t.clean()
Esempio n. 19
0
def import_gst0_10():
    log("import_gst0_10()")
    global gst_version, pygst_version
    import pygst
    log("import_gst0_10() pygst=%s", pygst)
    pygst.require("0.10")
    #initializing gstreamer parses sys.argv
    #which interferes with our own command line arguments
    #so we temporarily hide it,
    #also import with stderr redirection in place
    #to avoid gobject warnings:
    from xpra.os_util import HideStdErr, HideSysArgv
    with HideStdErr():
        with HideSysArgv():
            import gst
    gst_version = gst.gst_version
    pygst_version = gst.pygst_version
    gst.new_buffer = gst.Buffer
    if not hasattr(gst, 'MESSAGE_STREAM_START'):
        #a None value is better than nothing:
        #(our code can assume it exists - just never matches)
        gst.MESSAGE_STREAM_START = None
    return gst
#!/usr/bin/env python
  
import pygst
pygst.require("1.0")
import gst
import gtk
import time
#python script to pipe youtube video through v4l2loopback
#gst-launch-0.10 uridecodebin name=dec uri=$(/usr/bin/youtube-dl -g -f 18 $VID)  ! queue ! autoaudiosink dec. ! queue ! videoscale ! videorate ! videoconvert ! video/x-raw-yuv,width=$WIDTH,height=$HEIGHT,framerate=$FPS,format=\(fourcc\)YUY2 !  v4l2sink device=$DEV

class Pipeline(object):
    def __init__(self):
        self.pipeline = gst.Pipeline("pipe")

        self.webcam = gst.element_factory_make("uridecodebin", "webcam")
        self.webcam.set_property("name", "dec")
        self.webcam.set_property("uri", "https://r7---sn-uxa0n-t8ge.googlevideo.com/videoplayback?upn=NfyzW9GP_rI&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmime%2Cmm%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mt=1423607359&mv=m&initcwndbps=1680000&itag=18&ms=au&mm=31&ipbits=0&fexp=907263%2C927622%2C934954%2C9405957%2C9406352%2C9406653%2C943917%2C947225%2C948124%2C951703%2C952302%2C952605%2C952612%2C952901%2C955301%2C957201%2C959701&id=o-AKTOF81wFSr82qnYzE4MeBw61iMriU75FOhA9tHvlJca&sver=3&ip=207.34.141.22&requiressl=yes&signature=1E2427505D722028BBC73A7A6433E59C63AD7E21.B9BF9D4F68425C001182903082E6D1B3A4140502&key=yt5&source=youtube&ratebypass=yes&dur=64.760&expire=1423629184&mime=video%2Fmp4&pl=17")
        self.pipeline.add(self.webcam)

	self.queue = gst.element_factory_make("queue", "queue")
        self.pipeline.add(self.queue)
	
	self.audio = gst.element_factory_make("autoaudiosink", "audio")
        self.pipeline.add(self.audio)
	self.dec = gst.element_get_name(self.webcam)
	self.pipeline.add(self.dec)
	self.que = gst.element_factory_make("queue", "que")
        self.pipeline.add(self.que)

	self.videoscale = gst.element_factory_make("videoscale", "videoscale")
        self.pipeline.add(self.videoscale)
Esempio n. 21
0
File: app.py Progetto: UfSoft/afm
 def setup_gstreamer(self):
     import gobject
     gobject.threads_init()
     import pygst
     pygst.require("0.10")
     import gst
Esempio n. 22
0
#####################################################################
# G-Streamer control/playback Object
#
# By Rob Williams (jolouis) for the FlipClock project
# Provides a simple GStreamer interface for playing back mp3s/audio
# using the native gstreamer app.
#
# loosely based on post on Nokia Maemo forums:
# http://wiki.forum.nokia.com/index.php/How_to_create_a_mp3_player_in_maemo
######################################################################

# Import python g-streamer bindings

import pygst

pygst.require('0.10')  # uhh sure, why not...

# import gStreamer itself

import gst

# gobject, for setting up timeouts, etc

import gobject


class mediaPlayer(object):

    # ## Method to initialize the gstreamer instance

    def __init__(self, outputModule='mp3'):
Esempio n. 23
0

# Extract any command line arguments. This needs to be done before GStreamer is
# imported, so that GStreamer doesn't hijack e.g. ``--help``.
mopidy_args = sys.argv[1:]
sys.argv[1:] = []


# Add ../ to the path so we can run Mopidy from a Git checkout without
# installing it on the system.
sys.path.insert(
    0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../')))


import pygst
pygst.require('0.10')
import gst

from mopidy import config as config_lib, ext
from mopidy.models import Track, Artist, Album
from mopidy.utils import log, path, versioning


def main():
    args = parse_args()
    # TODO: support config files and overrides (shared from main?)
    config_files = [b'/etc/mopidy/mopidy.conf',
                    b'$XDG_CONFIG_DIR/mopidy/mopidy.conf']
    config_overrides = []

    # TODO: decide if we want to avoid this boilerplate some how.
Esempio n. 24
0
#!/usr/bin/env python

# Copyright (c) 2008 Carnegie Mellon University.
#
# You may modify and redistribute this file under the same terms as
# the CMU Sphinx system.  See
# http://cmusphinx.sourceforge.net/html/LICENSE for more information.

import pygtk
pygtk.require('2.0')
import gtk

import gobject
import pygst
pygst.require('1.0')
gobject.threads_init()
import gst


class DemoApp(object):
    """GStreamer/PocketSphinx Demo Application"""
    def __init__(self):
        """Initialize a DemoApp object"""
        self.init_gui()
        self.init_gst()

    def init_gui(self):
        """Initialize the GUI components"""
        self.window = gtk.Window()
        self.window.connect("delete-event", gtk.main_quit)
        self.window.set_default_size(400, 200)
Esempio n. 25
0
#
# Important notes: you must take care of glib event + python. If you connect()
# directly an event to a python object method, the object will be ref, and will
# be never unref.
# To prevent memory leak, you must connect() to a func, and you might want to
# pass the referenced object with weakref()
#

import pygst

if not hasattr(pygst, '_gst_already_checked'):
    found = False
    for version in ('1.0', '0.10'):
        try:
            pygst.require(version)
            found = True
            break

        except:
            continue

    if found:
        pygst._gst_already_checked = True
    else:
        raise Exception('Unable to find a valid Gstreamer version to use')

import gst
from functools import partial
from os import path
from threading import Lock
Esempio n. 26
0
    def run(self):
        print "Checking Python version >= 2.6:",
        print ".".join(map(str, sys.version_info[:2]))
        if sys.version_info < (2, 6):
            raise SystemExit("%s requires at least Python 2.6. "
                             "(http://www.python.org)" % self.__NAME)

        print "Checking for PyGTK >= 2.22:",
        try:
            import pygtk
            pygtk.require("2.0")
            import gtk
            if gtk.pygtk_version < (2, 22) or gtk.gtk_version < (2, 22):
                raise ImportError
        except ImportError:
            raise SystemExit("not found\n%s requires PyGTK 2.21. "
                             "(http://www.pygtk.org)" % self.__NAME)
        else:
            print "found"

        print "Checking for gst-python >= 0.10.21:",
        try:
            import pygst
            pygst.require("0.10")
            import gst
            if gst.pygst_version < (0, 10, 21):
                raise ImportError
        except ImportError:
            have_pygst = False
            print "not found"
        else:
            have_pygst = True
            print "found"

        print "Checking for Mutagen >= 1.19:",
        try:
            import mutagen
            if mutagen.version < (1, 19):
                raise ImportError
        except ImportError:
            raise SystemExit(
                "not found\n%s requires Mutagen 1.19.\n"
                "(http://code.google.com/p/mutagen/downloads/list)" %
                self.__NAME)
        else:
            print "found"

        print "Checking for PyGObject >= 2.21:",
        try:
            import gobject
            if gobject.pygobject_version < (2, 21):
                raise ImportError
        except ImportError:
            raise SystemExit(
                "not found\n%s requires PyGObject 2.21.\n"
                "(https://live.gnome.org/PyGObject)" %
                self.__NAME)
        else:
            print "found"

        print "Checking for Cython >= 0.15.1:",
        try:
            import Cython
            if Cython.__version__ < "0.15.1":
                raise ImportError
        except ImportError:
            raise SystemExit(
                "not found\n%s requires Cython 0.15.1.\n"
                "(http://http://www.cython.org/#download)" %
                self.__NAME)
        else:
            print "found"

        print "Checking for numpy >= 1.3:",
        try:
            import numpy.version
            if numpy.version.version < "1.3":
                raise ImportError
        except ImportError:
            raise SystemExit("not found\n%s requires python-numpy 1.3.\n" %
                             self.__NAME)
        else:
            print "found"
Esempio n. 27
0
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# For support, questions, suggestions or any other inquiries, visit:
# http://wiki.github.com/Freeseer/freeseer/

import pygst
pygst.require("0.10")  # required before import gst

from collections import defaultdict
from functools import partial
import gst
import os
import pytest
import re
import sys

from freeseer.framework.config import Config
from freeseer.framework.config.profile import ProfileManager
from freeseer.framework.plugin import IAudioInput
from freeseer.framework.plugin import PluginManager
from freeseer.framework.config import options
Esempio n. 28
0
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import blaconst

# FIXME: this module will get imported even if we won't finish the startup,
#        e.g. blaplay is already running.

try:
    import pygst
    try:
        pygst.require(blaconst.GST_REQUIRED_VERSION)
    except pygst.RequiredVersionError:
        raise ImportError
    from gst import *
    import gst.pbutils as pbutils
except ImportError:
    class gst(object):
        class ElementNotFoundError(Exception):
            pass

        @classmethod
        def element_factory_find(cls, element):
            return None

        @classmethod
        def element_factory_make(cls, element):
Esempio n. 29
0
def main():
    # The first time GStreamer is imported, it hijacks standard args like
    # '--help'. To prevent this, we hide non-gst args and restore them later.
    argv = sys.argv
    sys.argv = [argv[0]]
    sys.argv.extend(a for a in argv if a == '--help-gst' or a.startswith('--gst-'))
    try:
        import pygst
        pygst.require('0.10')
        import gst
    except Exception:
        import struct
        is64bit = len(struct.pack(b'P', 0)) == 8
        logging.info("Python arch: %d-bit" % (64 if is64bit else 32))
        gstroot = os.environ.get('GSTREAMER_SDK_ROOT_X86_64', r'C:\gstreamer-sdk\0.10\x86_64') \
                if is64bit \
                else os.environ.get('GSTREAMER_SDK_ROOT_X86', r'C:\gstreamer-sdk\0.10\x86')
        if not os.path.exists(gstroot):
            error("GStreamer not found",
                    "GStreamer was not found. It can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                    "See README.Windows for more information.")
        os.environ['PATH'] = gstroot + r'\bin;' + os.environ['PATH']
        gstpypath = gstroot + r'\lib\python2.7\site-packages'
        sys.path.insert(1, gstpypath)
        os.environ['PYTHONPATH'] = gstpypath
        try:
            import pygst
            pygst.require('0.10')
            import gst
        except Exception:
            error("GStreamer Python bindings not found",
                    "The Python bindings for GStreamer could not be imported. Please re-run the GStreamer installer and ensure that \"GStreamer python bindings\" is selected for installation (it should be selected by default).\r\n\r\n" +
                    "GStreamer can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                    "See README.Windows for more information.")
        else:
            logging.info("GStreamer: %s" % gstroot)
    else:
        logging.info("GStreamer works out of the box")
    finally:
        sys.argv = argv

    try:
        import pygtk
        pygtk.require('2.0')
        import gtk
    except Exception:
        error("GTK/PyGTK not found",
                "PyGTK 2.x could not be imported. Please re-run the GStreamer installer and ensure that \"Gtk toolkit\" and \"Gtk python bindings\" are selected (they should be selected by default). Note that the PyGTK library from pygtk.org is NOT compatible with the GStreamer library from gstreamer.com.\r\n\r\n" +
                "GStreamer can be downloaded from http://www.gstreamer.com/\r\n\r\n" +
                "See README.Windows for more information.")
    else:
        logging.info("PyGTK works")

    try:
        import mutagen
    except Exception:
        error("Mutagen not found",
                "The Python module Mutagen could not be imported. It can be downloaded from http://code.google.com/p/mutagen\r\n\r\n" +
                "See README.Windows for more information.")
    else:
        logging.info("Mutagen works")

    try:
        sys.argv[1:1] = ['--startgui', '--no-dbus', '--no-hal']
        import exaile
        exaile.main()
    except Exception:
        import traceback
        traceback.print_exc()
        raw_input()
#!/usr/bin/python
import gobject; gobject.threads_init()
import pygst; pygst.require("0.10")
import gst
from threading import Thread


class OSCController(Thread):

    def __init__(self, port):
        Thread.__init__(self)
        import liblo
        self.port = port
        try:
            self.server = liblo.Server(self.port)
        except liblo.ServerError, err:
            print str(err)

    def add_method(self, path, type, method):
        self.server.add_method(path, type, method)

    def run(self):
        while True:
            self.server.recv(100)


class GSTSrcVideo(object):

    def __init__(self, pipe=None, framerate='24/1', width=160, height=90, xpos=0, ypos=0):
        self.framerate = framerate
        self.width = width
Esempio n. 31
0
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# For support, questions, suggestions or any other inquiries, visit:
# http://wiki.github.com/Freeseer/freeseer/

import pygst
pygst.require("0.10")  # required before import gst

from collections import defaultdict
from functools import partial
import gst
import os
import pytest
import re
import sys

from freeseer.framework.config import Config
from freeseer.framework.config.profile import ProfileManager
from freeseer.framework.plugin import IAudioInput
from freeseer.framework.plugin import PluginManager
from freeseer.framework.config import options
Esempio n. 32
0
#!/usr/bin/env python

# Copyright (c) 2008 Carnegie Mellon University.
#
# You may modify and redistribute this file under the same terms as
# the CMU Sphinx system.  See
# http://cmusphinx.sourceforge.net/html/LICENSE for more information.

import pygtk
pygtk.require('2.0')
import gtk

import gobject
import pygst
pygst.require('1.0')
gobject.threads_init()
import gst

class DemoApp(object):
    """GStreamer/PocketSphinx Demo Application"""
    def __init__(self):
        """Initialize a DemoApp object"""
        self.init_gui()
        self.init_gst()

    def init_gui(self):
        """Initialize the GUI components"""
        self.window = gtk.Window()
        self.window.connect("delete-event", gtk.main_quit)
        self.window.set_default_size(400,200)
        self.window.set_border_width(10)
Esempio n. 33
0
"""A wrapper for the GStreamer Python bindings that exposes a simple
music player.
"""

from __future__ import division, absolute_import, print_function

import sys
import time
import gobject
import thread
import os
import copy
import urllib

import pygst
pygst.require('0.10')
import gst  # noqa


class GstPlayer(object):
    """A music player abstracting GStreamer's Playbin element.

    Create a player object, then call run() to start a thread with a
    runloop. Then call play_file to play music. Use player.playing
    to check whether music is currently playing.

    A basic play queue is also implemented (just a Python list,
    player.queue, whose last element is next to play). To use it,
    just call enqueue() and then play(). When a track finishes and
    another is available on the queue, it is played automatically.
    """
Esempio n. 34
0
#!/usr/bin/python

import pygst
pygst.require("0.10")
import gst
import sys
import time

# Audio delay code thanks to d53richar on Ubuntu Forums.
# http://ubuntuforums.org/showthread.php?t=1189559

class AudioDelay:
	def __init__(self):
		## ALSA
		self.delay_pipeline = gst.Pipeline("mypipeline")
		self.audiosrc = gst.element_factory_make("jackaudiosrc", "audio")
		self.delay_pipeline.add(self.audiosrc)
		
		## Queue
		self.audioqueue = gst.element_factory_make("queue", "queue1")
		self.audioqueue.set_property("max-size-time", 0)
		self.audioqueue.set_property("max-size-buffers", 0)
		self.audioqueue.set_property("max-size-bytes", 0)
		self.audioqueue.set_property("leaky", "no")
		self.delay_pipeline.add(self.audioqueue)
		
		## Volume
		self.volume = gst.element_factory_make("volume", "volume")
		self.delay_pipeline.add(self.volume)

		## Audio Output
Esempio n. 35
0
An output plugin which routes sound to the device's available
speakers.

@author: Thanh Ha
'''

# python-lib
try:  # Import using Python3 module name
    import configparser
except ImportError:
    import ConfigParser as configparser

# GStreamer
import pygst
pygst.require("0.10")
import gst

# PyQt
from PyQt4.QtCore import SIGNAL

# Freeseer
from freeseer.framework.plugin import IOutput

# .freeseer-plugin
import widget


class AudioFeedback(IOutput):
    name = "Audio Feedback"
    os = ["linux", "linux2", "win32", "cygwin", "darwin"]