tag: Update for taglist/tag event API changes

This commit is contained in:
Sebastian Dröge 2012-07-28 00:28:27 +02:00
parent 707b14a2ef
commit 32857a7621
6 changed files with 35 additions and 31 deletions

View file

@ -128,13 +128,17 @@ gst_sid_memory_get_type (void)
static void gst_siddec_finalize (GObject * object);
static GstFlowReturn gst_siddec_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer);
static gboolean gst_siddec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event);
static GstFlowReturn gst_siddec_chain (GstPad * pad, GstObject * parent,
GstBuffer * buffer);
static gboolean gst_siddec_sink_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static gboolean gst_siddec_src_convert (GstPad * pad, GstFormat src_format,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
static gboolean gst_siddec_src_event (GstPad * pad, GstObject * parent, GstEvent * event);
static gboolean gst_siddec_src_query (GstPad * pad, GstObject * parent, GstQuery * query);
static gboolean gst_siddec_src_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static gboolean gst_siddec_src_query (GstPad * pad, GstObject * parent,
GstQuery * query);
static void gst_siddec_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
@ -160,37 +164,37 @@ gst_siddec_class_init (GstSidDecClass * klass)
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TUNE,
g_param_spec_int ("tune", "tune", "tune",
0, 100, DEFAULT_TUNE,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CLOCK,
g_param_spec_enum ("clock", "clock", "clock",
GST_TYPE_SID_CLOCK, DEFAULT_CLOCK,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MEMORY,
g_param_spec_enum ("memory", "memory", "memory", GST_TYPE_SID_MEMORY,
DEFAULT_MEMORY,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FILTER,
g_param_spec_boolean ("filter", "filter", "filter", DEFAULT_FILTER,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MEASURED_VOLUME,
g_param_spec_boolean ("measured-volume", "measured_volume",
"measured_volume", DEFAULT_MEASURED_VOLUME,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MOS8580,
g_param_spec_boolean ("mos8580", "mos8580", "mos8580", DEFAULT_MOS8580,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FORCE_SPEED,
g_param_spec_boolean ("force-speed", "force_speed", "force_speed",
DEFAULT_FORCE_SPEED,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BLOCKSIZE,
g_param_spec_uint ("blocksize", "Block size",
"Size in bytes to output per buffer", 1, G_MAXUINT,
DEFAULT_BLOCKSIZE,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (gobject_class, PROP_METADATA,
g_param_spec_boxed ("metadata", "Metadata", "Metadata", GST_TYPE_CAPS,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)));
(GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)));
gst_element_class_set_static_metadata (gstelement_class, "Sid decoder",
"Codec/Decoder/Audio", "Use libsidplay to decode SID audio tunes",
@ -272,7 +276,7 @@ update_tags (GstSidDec * siddec)
gst_tag_list_add (list, GST_TAG_MERGE_REPLACE,
GST_TAG_COPYRIGHT, info.copyrightString, (void *) NULL);
}
gst_pad_push_event (siddec->srcpad, gst_event_new_tag ("GstDecoder", list));
gst_pad_push_event (siddec->srcpad, gst_event_new_tag (list));
}
}
@ -418,7 +422,7 @@ pause:
if (ret == GST_FLOW_EOS) {
/* perform EOS logic, FIXME, segment seek? */
gst_pad_push_event (pad, gst_event_new_eos ());
} else if (ret < GST_FLOW_EOS || ret == GST_FLOW_NOT_LINKED) {
} else if (ret < GST_FLOW_EOS || ret == GST_FLOW_NOT_LINKED) {
/* for fatal errors we post an error message */
GST_ELEMENT_ERROR (siddec, STREAM, FAILED,
(NULL), ("streaming task paused, reason %s", reason));
@ -450,8 +454,7 @@ start_play_tune (GstSidDec * siddec)
goto could_not_init;
gst_segment_init (&segment, GST_FORMAT_TIME);
gst_pad_push_event (siddec->srcpad,
gst_event_new_segment (&segment));
gst_pad_push_event (siddec->srcpad, gst_event_new_segment (&segment));
res = gst_pad_start_task (siddec->srcpad,
(GstTaskFunction) play_loop, siddec->srcpad, NULL);

View file

@ -1560,14 +1560,11 @@ gst_x264_enc_sink_event (GstVideoEncoder * encoder, GstEvent * event)
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_TAG:{
GstTagList *tags = NULL;
const GstStructure *s;
gst_event_parse_tag (event, &tags);
tags = gst_tag_list_copy (tags);
s = gst_event_get_structure (event);
gst_event_take (&event, gst_event_new_tag (gst_structure_get_name (s),
tags));
gst_event_take (&event, gst_event_new_tag (tags));
/* drop codec/video-codec and replace encoder/encoder-version */
gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);

View file

@ -1432,15 +1432,17 @@ gst_asf_demux_push_complete_payloads (GstASFDemux * demux, gboolean force)
gst_event_new_segment (&demux->segment));
/* now post any global tags we may have found */
if (demux->taglist == NULL)
if (demux->taglist == NULL) {
demux->taglist = gst_tag_list_new_empty ();
gst_tag_list_set_scope (demux->taglist, GST_TAG_SCOPE_GLOBAL);
}
gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
GST_TAG_CONTAINER_FORMAT, "ASF", NULL);
GST_DEBUG_OBJECT (demux, "global tags: %" GST_PTR_FORMAT, demux->taglist);
gst_asf_demux_send_event_unlocked (demux,
gst_event_new_tag ("GstDemuxer", demux->taglist));
gst_event_new_tag (demux->taglist));
demux->taglist = NULL;
demux->need_newsegment = FALSE;
@ -1451,7 +1453,7 @@ gst_asf_demux_push_complete_payloads (GstASFDemux * demux, gboolean force)
if (G_UNLIKELY (stream->pending_tags)) {
GST_LOG_OBJECT (stream->pad, "%" 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;
}
@ -2586,6 +2588,7 @@ gst_asf_demux_add_global_tags (GstASFDemux * demux, GstTagList * taglist)
}
t = gst_tag_list_merge (demux->taglist, taglist, GST_TAG_MERGE_APPEND);
gst_tag_list_set_scope (t, GST_TAG_SCOPE_GLOBAL);
if (demux->taglist)
gst_tag_list_free (demux->taglist);
gst_tag_list_free (taglist);

View file

@ -209,8 +209,7 @@ gst_dvdlpcmdec_send_tags (GstDvdLpcmDec * dvdlpcmdec)
taglist = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "LPCM Audio",
GST_TAG_BITRATE, bitrate, NULL);
gst_pad_push_event (dvdlpcmdec->srcpad, gst_event_new_tag ("GstDecoder",
taglist));
gst_pad_push_event (dvdlpcmdec->srcpad, gst_event_new_tag (taglist));
}
static gboolean

View file

@ -364,6 +364,7 @@ gst_real_audio_demux_parse_header (GstRealAudioDemux * demux)
demux->fourcc = GST_READ_UINT32_LE (data + 56);
demux->pending_tags = gst_rm_utils_read_tags (data + 63,
demux->data_offset - 63, gst_rm_utils_read_string8);
gst_tag_list_set_scope (demux->pending_tags, GST_TAG_SCOPE_GLOBAL);
break;
default:
g_assert_not_reached ();
@ -470,8 +471,10 @@ gst_real_audio_demux_parse_header (GstRealAudioDemux * demux)
demux->need_newsegment = TRUE;
if (codec_name) {
if (demux->pending_tags == NULL)
if (demux->pending_tags == NULL) {
demux->pending_tags = gst_tag_list_new_empty ();
gst_tag_list_set_scope (demux->pending_tags, GST_TAG_SCOPE_GLOBAL);
}
gst_tag_list_add (demux->pending_tags, GST_TAG_MERGE_REPLACE,
GST_TAG_AUDIO_CODEC, codec_name, NULL);
@ -533,7 +536,7 @@ gst_real_audio_demux_parse_data (GstRealAudioDemux * demux)
if (demux->pending_tags) {
gst_pad_push_event (demux->srcpad,
gst_event_new_tag ("GstDemuxer", demux->pending_tags));
gst_event_new_tag (demux->pending_tags));
demux->pending_tags = NULL;
}

View file

@ -2622,15 +2622,14 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version)
if (rmdemux->pending_tags != NULL) {
gst_rmdemux_send_event (rmdemux,
gst_event_new_tag ("GstDemuxer", rmdemux->pending_tags));
gst_event_new_tag (rmdemux->pending_tags));
rmdemux->pending_tags = NULL;
}
}
if (stream->pending_tags != NULL) {
GST_LOG_OBJECT (stream->pad, "tags %" GST_PTR_FORMAT, stream->pending_tags);
gst_pad_push_event (stream->pad, gst_event_new_tag ("stream",
stream->pending_tags));
gst_pad_push_event (stream->pad, gst_event_new_tag (stream->pending_tags));
stream->pending_tags = NULL;
}