コード例 #1
0
    def __init__(self, config, mixer):
        super(Audio, self).__init__()

        self._config = config
        self._target_state = Gst.State.NULL
        self._buffering = False
        self._tags = {}
        self._pending_uri = None

        self._playbin = None
        self._outputs = None
        self._queue = None
        self._about_to_finish_callback = None

        self._handler = _Handler(self)
        self._appsrc = _Appsrc()
        self._signals = utils.Signals()

        if mixer and self._config['audio']['mixer'] == 'software':
            self.mixer = SoftwareMixer(mixer)
コード例 #2
0
ファイル: scan.py プロジェクト: zvonimirfras/mopidy
def _setup_pipeline(uri, proxy_config=None):
    src = Gst.Element.make_from_uri(Gst.URIType.SRC, uri)
    if not src:
        raise exceptions.ScannerError('GStreamer can not open: %s' % uri)

    if proxy_config:
        utils.setup_proxy(src, proxy_config)

    signals = utils.Signals()
    pipeline = Gst.ElementFactory.make('pipeline')
    pipeline.add(src)

    if _has_src_pads(src):
        _setup_decodebin(src, src.get_static_pad('src'), pipeline, signals)
    elif _has_dynamic_src_pad(src):
        signals.connect(src, 'pad-added', _setup_decodebin, pipeline, signals)
    else:
        raise exceptions.ScannerError('No pads found in source element.')

    return pipeline, signals
コード例 #3
0
def _setup_pipeline(uri, proxy_config=None):
    src = Gst.Element.make_from_uri(Gst.URIType.SRC, uri)
    if not src:
        raise exceptions.ScannerError('GStreamer can not open: %s' % uri)

    typefind = Gst.ElementFactory.make('typefind')
    decodebin = Gst.ElementFactory.make('decodebin')

    pipeline = Gst.ElementFactory.make('pipeline')
    for e in (src, typefind, decodebin):
        pipeline.add(e)
    src.link(typefind)
    typefind.link(decodebin)

    if proxy_config:
        utils.setup_proxy(src, proxy_config)

    signals = utils.Signals()
    signals.connect(typefind, 'have-type', _have_type, decodebin)
    signals.connect(decodebin, 'pad-added', _pad_added, pipeline)
    signals.connect(decodebin, 'autoplug-select', _autoplug_select)

    return pipeline, signals
コード例 #4
0
    def __init__(self, config, mixer):
        super().__init__()

        self._config = config
        self._target_state = Gst.State.NULL
        self._buffering = False
        self._live_stream = False
        self._tags = {}
        self._pending_uri = None
        self._pending_tags = None
        self._pending_metadata = None

        self._playbin = None
        self._outputs = None
        self._queue = None
        self._about_to_finish_callback = None

        self._handler = _Handler(self)
        self._appsrc = _Appsrc()
        self._signals = utils.Signals()

        if mixer and self._config["audio"]["mixer"] == "software":
            self.mixer = pykka.traversable(SoftwareMixer(mixer))
コード例 #5
0
 def __init__(self):
     self._signals = utils.Signals()
     self.reset()
コード例 #6
0
 def __init__(self, mixer):
     self._mixer = mixer
     self._element = None
     self._last_volume = None
     self._last_mute = None
     self._signals = utils.Signals()