Ticket #123: frameworkd_Milestone2_gstreamer-decodebin-ringtone_20080906-gismo.diff

File frameworkd_Milestone2_gstreamer-decodebin-ringtone_20080906-gismo.diff, 1.6 KB (added by luca@…, 4 years ago)

[FSO-Milestone2] use GStreamer 'decodebin' plugin for ringtone

  • receiver.py

    old new  
    154154        self.player = pipeline = gst.Pipeline( "oeventd-pipeline" ) 
    155155        filesrc = gst.element_factory_make( "filesrc", "source" ) 
    156156        pipeline.add( filesrc ) 
    157         decoder = gst.element_factory_make( "siddec", "decoder" ) 
     157        decoder = gst.element_factory_make( "decodebin", "decoder" ) 
     158        decoder.connect( "new-decoded-pad", self.OnDynamicPad ) 
    158159        pipeline.add( decoder ) 
     160        self.converter = gst.element_factory_make( "audioconvert", "converter" ) 
     161        pipeline.add( self.converter ) 
    159162        sink = gst.element_factory_make( "alsasink", "sink" ) 
    160163        pipeline.add( sink ) 
    161164        filesrc.link( decoder ) 
    162         decoder.link( sink ) 
     165        self.converter.link( sink ) 
    163166        bus = self.player.get_bus() 
    164167        bus.add_signal_watch() 
    165168        bus.connect( "message", self._onMessage ) 
    166         filesrc.set_property( "location", "/usr/share/sounds/Arkanoid_PSID.sid" ) 
     169        filesrc.set_property( "location", "/root/Wes_Makepeace_-_War_Is_Hell.mp3" ) 
    167170        pipeline.set_state(gst.STATE_PLAYING) 
    168171        logger.info( 'playing ringtone' ) 
    169172        self.ringing = True 
     
    183186            else: 
    184187                self._stop() 
    185188 
     189    def OnDynamicPad( self, dbin, pad, islast ): 
     190        pad.link( self.converter.get_pad( "sink" ) ) 
     191 
    186192#----------------------------------------------------------------------------# 
    187193def factory( prefix, controller ): 
    188194#----------------------------------------------------------------------------#