On Thu, Jan 10, 2013 at 06:40:13AM -0500, Benjamin Deering wrote:
> This patch fixes the squealing at the start of certain podcasts (I think 
> it was trying to play the id3v* tag).  I sent it to the podboy author, 
> but I never heard back when  I sent the last patch.

I've enough confidence in you, so I've added this patch to shr branch
without testing it in runtime.

Thanks!

Cheers,

> 
> Ben

> Index: podboy/libplayer.py
> ===================================================================
> --- podboy/libplayer.py       (revision 221)
> +++ podboy/libplayer.py       (working copy)
> @@ -58,7 +58,8 @@
>  
>          # MP3
>          self.decoders.append(gst.element_factory_make("mad", "decode-mp3"))
> -        self.demuxers.append(None)
> +        self.demuxers.append(gst.element_factory_make("id3demux", 
> "demux-id3"))
> +        self.demuxers[MediaTypes.MP3].connect("pad-added", 
> self.mp3_pad_added_cb)
>  
>          # OGG
>          self.decoders.append(gst.element_factory_make("vorbisdec", 
> "decode-ogg"))
> @@ -103,12 +104,13 @@
>              if self.media_type == MediaTypes.OGG:
>                  self.pipeline.remove(self.decoders[MediaTypes.OGG], 
> self.demuxers[MediaTypes.OGG])
>              elif self.media_type == MediaTypes.MP3:
> -                self.pipeline.remove(self.decoders[MediaTypes.MP3])
> +                self.pipeline.remove(self.decoders[MediaTypes.MP3], 
> self.demuxers[MediaTypes.MP3])
>  
>          # Next, build the correct pipeline
>          if media_type == MediaTypes.MP3:
> -            self.pipeline.add(self.source, self.decoders[MediaTypes.MP3], 
> *self.elements[output_type])
> -            gst.element_link_many(self.source, 
> self.decoders[MediaTypes.MP3], *self.elements[output_type])
> +            self.pipeline.add(self.source, self.demuxers[MediaTypes.MP3], 
> self.decoders[MediaTypes.MP3], *self.elements[output_type])
> +            gst.element_link_many(self.source, self.demuxers[MediaTypes.MP3])
> +            gst.element_link_many(self.decoders[MediaTypes.MP3], 
> *self.elements[output_type])
>          elif media_type == MediaTypes.OGG:
>              self.pipeline.add(
>                  self.source, self.demuxers[MediaTypes.OGG], 
> self.decoders[MediaTypes.OGG], *self.elements[output_type])
> @@ -123,6 +125,11 @@
>          if adec_pad and not adec_pad.is_linked():
>              pad.link(adec_pad)
>  
> +    def mp3_pad_added_cb(self, demuxer, pad):                                
>    
> +        adec_pad = self.decoders[MediaTypes.MP3].get_pad("sink")             
>    
> +        if adec_pad and not adec_pad.is_linked():                            
>    
> +            pad.link(adec_pad)                                               
>    
> +
>      def get_bus(self):
>          """
>          Returns the GStreamer bus attached to the player.

> _______________________________________________
> Shr-devel mailing list
> Shr-devel@lists.shr-project.org
> http://lists.shr-project.org/mailman/listinfo/shr-devel


-- 
Martin 'JaMa' Jansa     jabber: martin.ja...@gmail.com

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Shr-devel mailing list
Shr-devel@lists.shr-project.org
http://lists.shr-project.org/mailman/listinfo/shr-devel

Reply via email to