gst_pad_push_event (pad, gst_event_new_segment (&dvdemux->time_segment));
if (no_more_pads) {
- gst_pad_push_event (pad,
- gst_event_new_tag ("GstDemuxer",
- gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "DV", NULL)));
+ GstTagList *tags;
+
+ tags = gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "DV", NULL);
+ gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
+ gst_pad_push_event (pad, gst_event_new_tag (tags));
}
return pad;
id_data, 4, NULL);
if (tag->tags != NULL) {
gst_pad_push_event (tag->srcpad,
- gst_event_new_tag ("GstFlacTag", gst_tag_list_copy (tag->tags)));
+ gst_event_new_tag (gst_tag_list_ref (tag->tags)));
}
gst_buffer_unref (tag->vorbiscomment);
if (!gst_tag_list_is_empty (tag_list)) {
GST_DEBUG_OBJECT (src,
"calling gst_element_found_tags with %" GST_PTR_FORMAT, tag_list);
- gst_pad_push_event (GST_BASE_SRC_PAD (src), gst_event_new_tag ("GstSrc",
- tag_list));
+ gst_pad_push_event (GST_BASE_SRC_PAD (src), gst_event_new_tag (tag_list));
} else {
gst_tag_list_free (tag_list);
}
bitrate = gst_util_uint64_scale (size, 8 * GST_SECOND, duration);
gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_BITRATE,
(guint) bitrate, NULL);
-
- gst_element_post_message (GST_ELEMENT (dec),
- gst_message_new_tag (GST_OBJECT (dec), list));
+ gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dec), list,
+ GST_TAG_MERGE_REPLACE);
}
}
/* Push tags */
if (flacparse->tags) {
gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse),
- gst_event_new_tag ("GstParser", flacparse->tags));
+ gst_event_new_tag (flacparse->tags));
flacparse->tags = NULL;
}
/* Push toc */
GST_TAG_NOMINAL_BITRATE, mp3parse->hdr_bitrate, NULL);
}
gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp3parse),
- gst_event_new_tag ("GstParser", taglist));
+ gst_event_new_tag (taglist));
g_free (codec);
/* also signals the end of first-frame processing */
/* if the taglist exists, we need to send it */
if (taglist) {
gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp3parse),
- gst_event_new_tag ("GstParser", taglist));
+ gst_event_new_tag (taglist));
}
/* usual clipping applies */
if (pad && tags) {
GST_DEBUG_OBJECT (pad, "Tags: %" GST_PTR_FORMAT, tags);
- gst_pad_push_event (pad, gst_event_new_tag ("GstDemuxer", tags));
+ gst_pad_push_event (pad, gst_event_new_tag (tags));
stream->taglist = NULL;
}
}
GST_TAG_CONTAINER_FORMAT, "AVI", NULL);
GST_DEBUG_OBJECT (avi, "Global tags: %" GST_PTR_FORMAT, tags);
- gst_avi_demux_push_event (avi, gst_event_new_tag ("GstDemuxer", tags));
+ gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
+ gst_avi_demux_push_event (avi, gst_event_new_tag (tags));
avi->globaltags = NULL;
avi->got_tags = FALSE;
}
gst_avi_subtitle_title_tag (GstAviSubtitle * sub, gchar * title)
{
gst_pad_push_event (sub->src,
- gst_event_new_tag ("GstParser", gst_tag_list_new (GST_TAG_TITLE, title,
- NULL)));
+ gst_event_new_tag (gst_tag_list_new (GST_TAG_TITLE, title, NULL)));
}
static GstFlowReturn
if (self->tags && !gst_tag_list_is_empty (self->tags)) {
GST_DEBUG ("tag event :%" GST_PTR_FORMAT, self->tags);
gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans),
- gst_event_new_tag ("GstTagInject", gst_tag_list_copy (self->tags)));
+ gst_event_new_tag (gst_tag_list_ref (self->tags)));
}
}
if (demux->taglist) {
GST_DEBUG_OBJECT (demux, "pushing tags out %" GST_PTR_FORMAT,
demux->taglist);
- gst_flv_demux_push_src_event (demux, gst_event_new_tag ("GstDemuxer",
- demux->taglist));
+ gst_tag_list_set_scope (demux->taglist, GST_TAG_SCOPE_GLOBAL);
+ gst_flv_demux_push_src_event (demux, gst_event_new_tag (demux->taglist));
demux->taglist = gst_tag_list_new_empty ();
demux->push_tags = FALSE;
}
{
GstEvent *event;
- gst_element_post_message (GST_ELEMENT (icydemux),
- gst_message_new_tag (GST_OBJECT (icydemux), gst_tag_list_copy (tags)));
-
- event = gst_event_new_tag ("GstDemuxer", tags);
+ event = gst_event_new_tag (tags);
GST_EVENT_TIMESTAMP (event) = 0;
GST_DEBUG_OBJECT (icydemux, "Sending tag event on src pad");
GST_DEBUG_OBJECT (qtdemux, "Sending tags %" GST_PTR_FORMAT,
stream->pending_tags);
gst_pad_push_event (stream->pad,
- gst_event_new_tag ("GstDemuxer", stream->pending_tags));
+ gst_event_new_tag (stream->pending_tags));
stream->pending_tags = NULL;
}
GST_DEBUG_OBJECT (qtdemux, "Sending global tags %" GST_PTR_FORMAT,
qtdemux->tag_list);
gst_pad_push_event (stream->pad,
- gst_event_new_tag ("GstDemuxer",
- gst_tag_list_copy (qtdemux->tag_list)));
+ gst_event_new_tag (gst_tag_list_ref (qtdemux->tag_list)));
stream->send_global_tags = FALSE;
}
}
}
static void
-qtdemux_post_global_tags (GstQTDemux * qtdemux)
-{
- if (qtdemux->tag_list) {
- /* all header tags ready and parsed, push them */
- GST_INFO_OBJECT (qtdemux, "posting global tags: %" GST_PTR_FORMAT,
- qtdemux->tag_list);
- /* post now, send event on pads later */
- gst_element_post_message (GST_ELEMENT (qtdemux),
- gst_message_new_tag (GST_OBJECT (qtdemux),
- gst_tag_list_copy (qtdemux->tag_list)));
- }
-}
-
-static void
qtdemux_parse_ftyp (GstQTDemux * qtdemux, const guint8 * buffer, gint length)
{
/* counts as header data */
/* digested all data, show what we have */
ret = qtdemux_expose_streams (qtdemux);
- /* Only post, event on pads is done after newsegment */
- qtdemux_post_global_tags (qtdemux);
-
qtdemux->state = QTDEMUX_STATE_MOVIE;
GST_DEBUG_OBJECT (qtdemux, "switching state to STATE_MOVIE (%d)",
qtdemux->state);
demux->state = QTDEMUX_STATE_MOVIE;
demux->neededbytes = next_entry_size (demux);
demux->mdatleft = size;
-
- /* Only post, event on pads is done after newsegment */
- qtdemux_post_global_tags (demux);
-
} else {
/* no headers yet, try to get them */
guint bs;
demux->neededbytes = next_entry_size (demux);
demux->state = QTDEMUX_STATE_MOVIE;
demux->mdatleft = gst_adapter_available (demux->adapter);
-
- /* Only post, event on pads is done after newsegment */
- qtdemux_post_global_tags (demux);
-
} else {
GST_DEBUG_OBJECT (demux, "Carrying on normally");
gst_adapter_flush (demux->adapter, demux->neededbytes);
if (qtdemux->n_streams == 1 && qtdemux->streams[0]->redirect_uri != NULL) {
GstMessage *m;
- qtdemux_post_global_tags (qtdemux);
-
GST_INFO_OBJECT (qtdemux, "Issuing a redirect due to a single track with "
"an external content");
m = gst_message_new_element (GST_OBJECT_CAST (qtdemux),
}
GST_DEBUG_OBJECT (qtdemux, "new tag list");
- if (!qtdemux->tag_list)
+ if (!qtdemux->tag_list) {
qtdemux->tag_list = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL);
+ }
i = 0;
while (i < G_N_ELEMENTS (add_funcs)) {
{
const gchar *fmt;
- if (tags == NULL)
+ if (tags == NULL) {
tags = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
+ }
if (qtdemux->major_brand == FOURCC_mjp2)
fmt = "Motion JPEG 2000";
}
}
if (datetime) {
- if (!qtdemux->tag_list)
+ if (!qtdemux->tag_list) {
qtdemux->tag_list = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL);
+ }
/* Use KEEP as explicit tags should have a higher priority than mvhd tag */
gst_tag_list_add (qtdemux->tag_list, GST_TAG_MERGE_KEEP, GST_TAG_DATE_TIME,
gst_tag_list_free (demux->common.global_tags);
}
demux->common.global_tags = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (demux->common.global_tags, GST_TAG_SCOPE_GLOBAL);
if (demux->common.cached_buffer) {
if (demux->common.cached_data) {
GST_PTR_FORMAT, stream->pending_tags,
GST_DEBUG_PAD_NAME (stream->pad), stream->pending_tags);
gst_pad_push_event (stream->pad,
- gst_event_new_tag ("GstDemuxer", stream->pending_tags));
+ gst_event_new_tag (stream->pending_tags));
stream->pending_tags = NULL;
}
}
GST_DEBUG_OBJECT (demux, "Sending global_tags %p : %" GST_PTR_FORMAT,
demux->common.global_tags, demux->common.global_tags);
- tag_event = gst_event_new_tag ("GstDemuxer", demux->common.global_tags);
+ tag_event = gst_event_new_tag (demux->common.global_tags);
for (i = 0; i < demux->common.src->len; i++) {
GstMatroskaTrackContext *stream;
gst_tag_list_insert (common->global_tags, taglist, GST_TAG_MERGE_APPEND);
gst_tag_list_free (taglist);
} else {
- GstEvent *tag_event = gst_event_new_tag ("GstDemuxer", taglist);
+ GstEvent *tag_event = gst_event_new_tag (taglist);
gint i;
/* hm, already sent, no need to cache and wait anymore */
}
taglist = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (taglist, GST_TAG_SCOPE_GLOBAL);
while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
GST_DEBUG_OBJECT (common, "Title: %s", GST_STR_NULL (text));
taglist = gst_tag_list_new (GST_TAG_TITLE, text, NULL);
+ gst_tag_list_set_scope (taglist, GST_TAG_SCOPE_GLOBAL);
gst_matroska_read_common_found_global_tag (common, el, taglist);
g_free (text);
break;
}
taglist = gst_tag_list_new_empty ();
+ gst_tag_list_set_scope (taglist, GST_TAG_SCOPE_GLOBAL);
common->toc_updated = FALSE;
while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
gst_pad_push_event (srcpad->pad, gst_event_new_segment (&segment));
tags = gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "Multipart", NULL);
- gst_pad_push_event (srcpad->pad, gst_event_new_tag ("GstDemuxer",
- tags));
+ gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
+ gst_pad_push_event (srcpad->pad, gst_event_new_tag (tags));
GST_BUFFER_TIMESTAMP (outbuf) = 0;
} else {
GST_TAG_REFERENCE_LEVEL, filter->reference_level, NULL);
/* This steals our reference to the list: */
gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (GST_BASE_TRANSFORM
- (filter)), gst_event_new_tag ("GstAnalysis",
- gst_tag_list_copy (tag_list)));
- /* special case element, also post here */
- gst_element_post_message (GST_ELEMENT_CAST (filter),
- gst_message_new_tag (GST_OBJECT (filter), tag_list));
+ (filter)), gst_event_new_tag (gst_tag_list_ref (tag_list)));
}
}
}
if (wav->tags) {
- gst_pad_push_event (wav->srcpad, gst_event_new_tag ("GstParser",
- wav->tags));
+ gst_pad_push_event (wav->srcpad, gst_event_new_tag (wav->tags));
wav->tags = NULL;
}
}
send_tag_event (GstElement * element, GstTagList * tag_list)
{
GstPad *pad = gst_element_get_static_pad (element, "sink");
- GstEvent *event = gst_event_new_tag ("test", tag_list);
+ GstEvent *event = gst_event_new_tag (tag_list);
fail_unless (gst_pad_send_event (pad, event),
"Cannot send TAG event: Not handled.");
GST_TAG_TRACK_GAIN, +4.95, GST_TAG_TRACK_PEAK, 0.59463,
GST_TAG_ALBUM_GAIN, -1.54, GST_TAG_ALBUM_PEAK, 0.693415,
GST_TAG_ARTIST, "Foobar", NULL);
- event = gst_event_new_tag ("test", tag_list);
+ event = gst_event_new_tag (tag_list);
new_event = send_tag_event (element, event);
gst_event_parse_tag (new_event, &tag_list);
fail_unless (gst_tag_list_get_string (tag_list, GST_TAG_ARTIST, &artist));
GST_TAG_TRACK_GAIN, +4.95, GST_TAG_TRACK_PEAK, 0.59463,
GST_TAG_ALBUM_GAIN, -1.54, GST_TAG_ALBUM_PEAK, 0.693415,
GST_TAG_ARTIST, "Foobar", NULL);
- event = gst_event_new_tag ("test", tag_list);
+ event = gst_event_new_tag (tag_list);
new_event = send_tag_event (element, event);
gst_event_parse_tag (new_event, &tag_list);
fail_unless (gst_tag_list_get_string (tag_list, GST_TAG_ARTIST, &artist));
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, -3.45, GST_TAG_TRACK_PEAK, 1.0,
GST_TAG_ALBUM_GAIN, +2.09, GST_TAG_ALBUM_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, -9.45); /* pre-amp + track gain */
send_eos_event (element);
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, -3.45, GST_TAG_TRACK_PEAK, 1.0,
GST_TAG_ALBUM_GAIN, +2.09, GST_TAG_ALBUM_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, -3.91); /* pre-amp + album gain */
/* Switching back to track mode in the middle of a stream: */
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, +3.5, GST_TAG_TRACK_PEAK, 1.0,
GST_TAG_ALBUM_GAIN, -0.5, GST_TAG_ALBUM_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, -2.50); /* pre-amp + track gain */
send_eos_event (element);
tag_list = gst_tag_list_new_empty ();
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, +2.11, GST_TAG_TRACK_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, -3.89); /* pre-amp + track gain */
send_eos_event (element);
tag_list = gst_tag_list_new_empty ();
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_ALBUM_GAIN, +3.73, GST_TAG_ALBUM_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, -2.27); /* pre-amp + album gain */
send_eos_event (element);
tag_list = gst_tag_list_new_empty ();
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, +3.50, GST_TAG_TRACK_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_target_gain (element, +3.50); /* pre-amp + track gain */
fail_unless_result_gain (element, +0.00);
send_eos_event (element);
tag_list = gst_tag_list_new_empty ();
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, +9.18, GST_TAG_TRACK_PEAK, 0.687149, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_target_gain (element, +9.18); /* pre-amp + track gain */
/* Result is 20. * log10 (1. / peak) + headroom. */
fail_unless_result_gain (element, 5.2589816238303335);
tag_list = gst_tag_list_new_empty ();
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_ALBUM_GAIN, +5.50, GST_TAG_ALBUM_PEAK, 1.0, NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_target_gain (element, +5.50); /* pre-amp + album gain */
fail_unless_result_gain (element, +2.00); /* headroom */
send_eos_event (element);
gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
GST_TAG_TRACK_GAIN, 0.00, GST_TAG_TRACK_PEAK, 0.2,
GST_TAG_REFERENCE_LEVEL, 83., NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
/* Because our authorative reference is 89 dB, we bump it up by +6 dB. */
fail_unless_gain (element, +6.00); /* pre-amp + track gain */
send_eos_event (element);
GST_TAG_TRACK_GAIN, 1.23, GST_TAG_TRACK_PEAK, 0.1,
GST_TAG_ALBUM_GAIN, 0.00, GST_TAG_ALBUM_PEAK, 0.2,
GST_TAG_REFERENCE_LEVEL, 83., NULL);
- fail_unless (send_tag_event (element, gst_event_new_tag ("test",
- tag_list)) == NULL);
+ fail_unless (send_tag_event (element, gst_event_new_tag (tag_list)) == NULL);
fail_unless_gain (element, +6.00); /* pre-amp + album gain */
cleanup_rgvolume (element);