mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
tag: Update for taglist/tag event API changes
This commit is contained in:
parent
707b14a2ef
commit
32857a7621
6 changed files with 35 additions and 31 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue