Esempio n. 1
0
    def __init__(self, mediator, cfg_provider, eventManager):
        self.mediator = mediator
        self.eventManager = eventManager
        self.decoder = StreamDecoder(cfg_provider)
        self.playlist = []
        self.retrying = False

        self.log = logging.getLogger('radiotray')

        # init player
        self.log.debug("Initializing gstreamer...")
        self.souphttpsrc = Gst.ElementFactory.make("souphttpsrc", "source")
        self.souphttpsrc.set_property("user-agent", USER_AGENT)

        self.log.debug("Loading playbin...")
        self.player = Gst.ElementFactory.make("playbin", "player")
        fakesink = Gst.ElementFactory.make("fakesink", "fakesink")
        self.player.set_property("video-sink", fakesink)

        #buffer size
        if (cfg_provider._settingExists("buffer_size")):
            bufferSize = int(cfg_provider.getConfigValue("buffer_size"))
            if (bufferSize > 0):

                self.log.debug("Setting buffer size to " + str(bufferSize))
                self.player.set_property("buffer-size", bufferSize)

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

        self.log.debug("GStreamer initialized.")
Esempio n. 2
0
        else:
            return None

    def setConfigValue(self, s, v):
        self.cf[s] = v


logger = logging.getLogger('upmpdcli')
logger.setLevel(logging.ERROR)
handler = logging.StreamHandler()
#handler = logging.NullHandler()
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

decoder = StreamDecoder(myCfg())

urlInfo = decoder.getMediaStreamInfo(sys.argv[1])

while urlInfo is not None and urlInfo.isPlaylist():
    playlist = decoder.getPlaylist(urlInfo)
    if playlist is None or len(playlist) == 0:
        logger.error("Received empty stream from station")
        sys.exit(1)
    stream = playlist.pop(0)
    logger.info('Stream %s' % stream)
    urlInfo = decoder.getMediaStreamInfo(stream)

if urlInfo is not None:
    logger.info("Result: isplaylist %d content-type %s url %s",
                urlInfo.isPlaylist(), urlInfo.getContentType(),