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
> [email protected]
> http://lists.shr-project.org/mailman/listinfo/shr-devel
--
Martin 'JaMa' Jansa jabber: [email protected]
signature.asc
Description: Digital signature
_______________________________________________ Shr-devel mailing list [email protected] http://lists.shr-project.org/mailman/listinfo/shr-devel
