summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-05 18:33:27 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-06 14:05:28 +0200
commit1af5b5601d1fda63469204523873d66d9d81e0a9 (patch)
tree6007ada202c8c936ebfa38245ae62d782dfc0e2d
parent9b45987ef58b8c2b510203beca7566dfc2e84a72 (diff)
avdemux: Add stream-id to stream-start events
-rw-r--r--ext/ffmpeg/gstffmpegdemux.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c
index 221227a478..8e73992930 100644
--- a/ext/ffmpeg/gstffmpegdemux.c
+++ b/ext/ffmpeg/gstffmpegdemux.c
@@ -926,6 +926,7 @@ gst_ffmpegdemux_get_stream (GstFFMpegDemux * demux, AVStream * avstream)
const gchar *codec;
AVCodecContext *ctx;
GstFFStream *stream;
+ gchar *stream_id, *tmp;
ctx = avstream->codec;
@@ -976,8 +977,6 @@ gst_ffmpegdemux_get_stream (GstFFMpegDemux * demux, AVStream * avstream)
gst_pad_use_fixed_caps (pad);
gst_pad_set_active (pad, TRUE);
- gst_pad_set_caps (pad, caps);
- gst_caps_unref (caps);
gst_pad_set_query_function (pad, gst_ffmpegdemux_src_query);
gst_pad_set_event_function (pad, gst_ffmpegdemux_src_event);
@@ -1002,11 +1001,19 @@ gst_ffmpegdemux_get_stream (GstFFMpegDemux * demux, AVStream * avstream)
demux->streams[avstream->index] = stream;
+
+ stream_id =
+ gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (demux), "%u",
+ avstream->index);
+ gst_pad_push_event (pad, gst_event_new_stream_start (stream_id));
+ g_free (stream_id);
+
+ gst_pad_set_caps (pad, caps);
+ gst_caps_unref (caps);
+
/* activate and add */
gst_element_add_pad (GST_ELEMENT (demux), pad);
- gst_pad_push_event (pad, gst_event_new_stream_start ());
-
/* metadata */
if ((codec = gst_ffmpeg_get_codecid_longname (ctx->codec_id))) {
stream->tags = gst_tag_list_new_empty ();