summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Dessina <alessandro@nnva.org>2008-08-23 15:19:59 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-08-23 15:19:59 +0000
commit4f9bfa6a03a1c1baea83bc35644b3d9dc9b74c3c (patch)
tree6dc264cdbcae43f92084e13f27f9a04ea0ad5265
parent096e77929f3620fd4954f70078da51cc0dcaec18 (diff)
ext/ogg/gstoggdemux.c: Don't add pads and activate them for skeleton streams. These are already handled inside oggdem...
Original commit message from CVS: Patch by: Alessandro Dessina <alessandro nnva org> * ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain), (gst_ogg_demux_activate_chain): Don't add pads and activate them for skeleton streams. These are already handled inside oggdemux. Fixes bug #537599.
-rw-r--r--ChangeLog9
-rw-r--r--ext/ogg/gstoggdemux.c7
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4897d5d8e..993599d5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-08-23 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ Patch by: Alessandro Dessina <alessandro nnva org>
+
+ * ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
+ (gst_ogg_demux_activate_chain):
+ Don't add pads and activate them for skeleton streams. These are already
+ handled inside oggdemux. Fixes bug #537599.
+
2008-08-22 Wim Taymans <wim.taymans@collabora.co.uk>
* ext/vorbis/vorbisdec.c: (vorbis_dec_change_state):
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index bb059e848..469a18a7a 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -1746,6 +1746,9 @@ gst_ogg_demux_deactivate_current_chain (GstOggDemux * ogg)
for (i = 0; i < chain->streams->len; i++) {
GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+ if (pad->is_skeleton)
+ continue;
+
gst_pad_push_event (GST_PAD_CAST (pad), gst_event_new_eos ());
GST_DEBUG_OBJECT (ogg, "removing pad %" GST_PTR_FORMAT, pad);
@@ -1786,6 +1789,10 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
GstOggPad *pad;
pad = g_array_index (chain->streams, GstOggPad *, i);
+
+ if (pad->is_skeleton)
+ continue;
+
GST_DEBUG_OBJECT (ogg, "adding pad %" GST_PTR_FORMAT, pad);
/* mark discont */