summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThijs Vermeir <thijsvermeir@gmail.com>2008-01-02 13:54:10 +0000
committerThijs Vermeir <thijsvermeir@gmail.com>2008-01-02 13:54:10 +0000
commit311264bcf8df707de65e404aa5d66de150930bb2 (patch)
treead9187ec3cbc29e7bc15a5340d325f9d4f5f5eae
parenteb5e87944c1d2024463f96c475f5083af6522bce (diff)
gst/avi/gstavi.c: increase rank because no known issues anymore ...
Original commit message from CVS: * gst/avi/gstavi.c: increase rank because no known issues anymore ... * gst/avi/gstavisubtitle.c: send subtitle name to the srcpad
-rw-r--r--ChangeLog7
-rw-r--r--gst/avi/gstavi.c2
-rw-r--r--gst/avi/gstavisubtitle.c21
3 files changed, 28 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 018428be..44ffafee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-02 Thijs Vermeir <thijsvermeir@gmail.com>
+
+ * gst/avi/gstavi.c:
+ increase rank because no known issues anymore ...
+ * gst/avi/gstavisubtitle.c:
+ send subtitle name to the srcpad
+
2007-12-31 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open):
diff --git a/gst/avi/gstavi.c b/gst/avi/gstavi.c
index 57ddf440..48c81002 100644
--- a/gst/avi/gstavi.c
+++ b/gst/avi/gstavi.c
@@ -43,7 +43,7 @@ plugin_init (GstPlugin * plugin)
GST_TYPE_AVI_DEMUX) ||
!gst_element_register (plugin, "avimux", GST_RANK_NONE,
GST_TYPE_AVI_MUX) ||
- !gst_element_register (plugin, "avisubtitle", GST_RANK_NONE,
+ !gst_element_register (plugin, "avisubtitle", GST_RANK_PRIMARY,
GST_TYPE_AVI_SUBTITLE)) {
return FALSE;
}
diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c
index d8c45150..6fdf5fea 100644
--- a/gst/avi/gstavisubtitle.c
+++ b/gst/avi/gstavisubtitle.c
@@ -57,6 +57,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
GST_STATIC_CAPS ("application/x-subtitle")
);
+static void gst_avi_subtitle_title_tag (GstAviSubtitle * sub, gchar * title);
static GstFlowReturn gst_avi_subtitle_chain (GstPad * pad, GstBuffer * buffer);
static GstStateChangeReturn gst_avi_subtitle_change_state (GstElement * element,
GstStateChange transition);
@@ -134,6 +135,24 @@ gst_avi_subtitle_extract_file (GstAviSubtitle * sub, GstBuffer * buffer,
return ret;
}
+/**
+ * gst_avi_subtitle_title_tag:
+ * @sub: subtitle element
+ * @title: the title of this subtitle stream
+ *
+ * Send an event to the srcpad of the @sub element with the title
+ * of the subtitle stream as a GST_TAG_TITLE
+ */
+static void
+gst_avi_subtitle_title_tag (GstAviSubtitle * sub, gchar * title)
+{
+ GstTagList *temp_list = gst_tag_list_new ();
+
+ gst_tag_list_add (temp_list, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, title,
+ NULL);
+ gst_pad_push_event (sub->src, gst_event_new_tag (temp_list));
+}
+
static GstFlowReturn
gst_avi_subtitle_parse_gab2_chunk (GstAviSubtitle * sub, GstBuffer * buf)
{
@@ -160,8 +179,8 @@ gst_avi_subtitle_parse_gab2_chunk (GstAviSubtitle * sub, GstBuffer * buf)
NULL, NULL, NULL);
if (name_utf8) {
- /* FIXME: put in a taglist */
GST_LOG_OBJECT (sub, "subtitle name: %s", name_utf8);
+ gst_avi_subtitle_title_tag (sub, name_utf8);
g_free (name_utf8);
}