gst/matroska/matroska-mux.*: Remove internal taglist and fully use tagsetter interface.

Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_reset),
(gst_matroska_mux_handle_sink_event), (gst_matroska_mux_finish):
* gst/matroska/matroska-mux.h:
Remove internal taglist and fully use tagsetter interface.
This commit is contained in:
Mark Nauwelaerts 2009-01-06 17:48:10 +00:00
parent b506ab9918
commit 85c6c25264
3 changed files with 15 additions and 17 deletions

View file

@ -1,3 +1,10 @@
2009-01-06 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_reset),
(gst_matroska_mux_handle_sink_event), (gst_matroska_mux_finish):
* gst/matroska/matroska-mux.h:
Remove internal taglist and fully use tagsetter interface.
2009-01-06 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> 2009-01-06 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
* gst/avi/gstavimux.c: (gst_avi_mux_reset), * gst/avi/gstavimux.c: (gst_avi_mux_reset),

View file

@ -463,10 +463,7 @@ gst_matroska_mux_reset (GstElement * element)
mux->cluster_pos = 0; mux->cluster_pos = 0;
/* reset tags */ /* reset tags */
if (mux->tags) { gst_tag_setter_reset_tags (GST_TAG_SETTER (mux));
gst_tag_list_free (mux->tags);
mux->tags = NULL;
}
} }
/** /**
@ -518,7 +515,9 @@ gst_matroska_mux_handle_sink_event (GstPad * pad, GstEvent * event)
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_TAG: case GST_EVENT_TAG:
GST_DEBUG_OBJECT (mux, "received tag event");
gst_event_parse_tag (event, &list); gst_event_parse_tag (event, &list);
collect_pad = (GstMatroskaPad *) gst_pad_get_element_private (pad); collect_pad = (GstMatroskaPad *) gst_pad_get_element_private (pad);
g_assert (collect_pad); g_assert (collect_pad);
context = collect_pad->track; context = collect_pad->track;
@ -528,12 +527,8 @@ gst_matroska_mux_handle_sink_event (GstPad * pad, GstEvent * event)
* 639-2 according to matroska specs, but it will have to do for now */ * 639-2 according to matroska specs, but it will have to do for now */
gst_tag_list_get_string (list, GST_TAG_LANGUAGE_CODE, &context->language); gst_tag_list_get_string (list, GST_TAG_LANGUAGE_CODE, &context->language);
if (mux->tags) { gst_tag_setter_merge_tags (GST_TAG_SETTER (mux), list,
gst_tag_list_insert (mux->tags, list, GST_TAG_MERGE_PREPEND); gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (mux)));
} else {
mux->tags = gst_tag_list_copy (list);
}
break; break;
case GST_EVENT_NEWSEGMENT: case GST_EVENT_NEWSEGMENT:
/* We don't support NEWSEGMENT events */ /* We don't support NEWSEGMENT events */
@ -1801,7 +1796,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
guint64 pos; guint64 pos;
guint64 duration = 0; guint64 duration = 0;
GSList *collected; GSList *collected;
GstTagList *tags; const GstTagList *tags;
/* finish last cluster */ /* finish last cluster */
if (mux->cluster) { if (mux->cluster) {
@ -1838,10 +1833,9 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
} }
/* tags */ /* tags */
tags = gst_tag_list_merge (gst_tag_setter_get_tag_list (GST_TAG_SETTER (mux)), tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (mux));
mux->tags, GST_TAG_MERGE_APPEND);
if (tags != NULL) { if (tags != NULL && !gst_tag_list_is_empty (tags)) {
guint64 master_tags, master_tag; guint64 master_tags, master_tag;
GST_DEBUG ("Writing tags"); GST_DEBUG ("Writing tags");
@ -1853,7 +1847,6 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
gst_tag_list_foreach (tags, gst_matroska_mux_write_simple_tag, ebml); gst_tag_list_foreach (tags, gst_matroska_mux_write_simple_tag, ebml);
gst_ebml_write_master_finish (ebml, master_tag); gst_ebml_write_master_finish (ebml, master_tag);
gst_ebml_write_master_finish (ebml, master_tags); gst_ebml_write_master_finish (ebml, master_tags);
gst_tag_list_free (tags);
} }
/* update seekhead. We know that: /* update seekhead. We know that:

View file

@ -131,8 +131,6 @@ typedef struct _GstMatroskaMux {
cluster_time, cluster_time,
cluster_pos; cluster_pos;
/* tags */
GstTagList *tags;
} GstMatroskaMux; } GstMatroskaMux;
typedef struct _GstMatroskaMuxClass { typedef struct _GstMatroskaMuxClass {