summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2012-09-23 15:48:54 +0100
committerTim-Philipp Müller <tim@centricular.net>2012-09-23 16:33:35 +0100
commitea7f8a919c2e8bc06e68f23f164e92d93926386d (patch)
tree570140d6238eb061052a3e09b79997f33ea20cd5 /gst
parent1c3c8c64e622939503d57709aed0352487f342b4 (diff)
interleave: add a bunch of FIXMEs
Needs some more work, so stream-start, caps and tags are sent in the right order.
Diffstat (limited to 'gst')
-rw-r--r--gst/interleave/interleave.c17
-rw-r--r--gst/interleave/interleave.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 8a1e84a7d..547b2d254 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -511,6 +511,7 @@ gst_interleave_request_new_pad (GstElement * element, GstPadTemplate * templ,
gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL);
gst_interleave_set_channel_positions (self, s);
+ /* FIXME: send caps event after stream-start event */
gst_pad_set_active (self->src, TRUE);
gst_pad_set_caps (self->src, srccaps);
gst_caps_unref (srccaps);
@@ -603,6 +604,7 @@ gst_interleave_change_state (GstElement * element, GstStateChange transition)
self->timestamp = 0;
self->offset = 0;
gst_event_replace (&self->pending_segment, NULL);
+ self->send_stream_start = TRUE;
gst_collect_pads_start (self->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -849,6 +851,9 @@ gst_interleave_sink_event (GstCollectPads * pads, GstCollectData * data,
event = NULL;
break;
}
+ case GST_EVENT_TAG:
+ GST_FIXME_OBJECT (self, "FIXME: merge tags and send after stream-start");
+ break;
default:
break;
}
@@ -1178,6 +1183,18 @@ gst_interleave_collected (GstCollectPads * pads, GstInterleave * self)
GstMapInfo write_info;
GstClockTime timestamp = -1;
+ /* FIXME: send caps and tags after stream-start */
+#if 0
+ if (self->send_stream_start) {
+ gchar s_id[32];
+
+ /* stream-start (FIXME: create id based on input ids) */
+ g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ());
+ gst_pad_push_event (self->src, gst_event_new_stream_start (s_id));
+ self->send_stream_start = FALSE;
+ }
+#endif
+
size = gst_collect_pads_available (pads);
if (size == 0)
goto eos;
diff --git a/gst/interleave/interleave.h b/gst/interleave/interleave.h
index a11bb21bb..89d0e4c49 100644
--- a/gst/interleave/interleave.h
+++ b/gst/interleave/interleave.h
@@ -72,6 +72,8 @@ struct _GstInterleave
GstInterleaveFunc func;
GstPad *src;
+
+ gboolean send_stream_start;
};
struct _GstInterleaveClass