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.
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